Patents by Inventor Lik Wong
Lik Wong has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20150269215Abstract: Techniques are provided for dependency-aware transaction batching for data replication. A plurality of change records corresponding to a plurality of transactions is read. Inter-transaction dependency data is generated, the inter-transaction dependency data including at least one inter-transaction dependency relationship between a plurality of pending transactions. Each inter-transaction dependency relationship indicates that a first transaction is dependent on a second transaction. A batch transaction is generated based on the inter-transaction dependency data. The batch transaction includes at least one pending transaction of the plurality of pending transactions. The batch transaction is assigned to an apply process of a plurality of apply processes configured to apply batch transactions in parallel.Type: ApplicationFiled: March 21, 2014Publication date: September 24, 2015Applicant: Oracle International CorporationInventors: Sean Lehouillier, Hung V. Tran, Vasanth Rajamani, Nimar S. Arora, Lik Wong
-
Publication number: 20150205850Abstract: Techniques are provided for eager replication of uncommitted transactions. A first plurality of change records is received, corresponding to database changes applied to a source database in a first transaction. First transaction dependency data is computed based on the first transaction. At least a portion of the first plurality of change records is applied to the target database before processing a commit record indicating that has been committed on the source database. Target dependency data is updated after processing the first commit record to reflect completion of the first transaction, the target dependency data including dependency data for a plurality of transactions applied or scheduled to be applied on a target database.Type: ApplicationFiled: January 23, 2014Publication date: July 23, 2015Applicant: Oracle International CorporationInventors: Edwina Ming-Yue Lu, Nimar Singh Arora, Lik Wong
-
Patent number: 9063773Abstract: Techniques are provided for automatic parallelism tuning. At least one batch of change records is assigned to one or more apply processes in a set of active apply processes. A first throughput value is periodically determined based on a number of processed change records in a first time interval. An increment adjustment is periodically performed, including adding an additional apply process, determining a second throughput value, and removing the additional apply process from the set of active apply processes if the second throughput value is not greater than a previous first throughput value by at least an increment threshold. A decrement adjustment is periodically performed, including removing an apply process, determining a third throughput value, and replacing the removed apply process in the set of active apply processes if the third throughput value is not greater than the previous first throughput value by at least a decrement threshold.Type: GrantFiled: July 24, 2013Date of Patent: June 23, 2015Assignee: Oracle International CorporationInventors: Edwina Ming-Yue Lu, Nimar Singh Arora, Lik Wong
-
Patent number: 9009104Abstract: Techniques for replicating data between database systems without taking checkpoints are provided. In an embodiment, a capture process restarts. Upon restarting, the capture process reestablishes an association with an apply process. A particular logical time maintained by the apply process is then communicated to the capture process. Upon receiving the particular logical time, the capture process restarts mining from this particular logical time.Type: GrantFiled: August 10, 2010Date of Patent: April 14, 2015Assignee: Oracle International CorporationInventors: Lik Wong, Nimar S. Arora, Cristina Schmidt, Lei Gao, Thuyan Hoang
-
Publication number: 20150032694Abstract: Parallel logical replication involves multiple apply threads running on a destination database server applying, in parallel, changes made by source transactions, where the changes of a single source transaction may be applied in parallel by multiple apply threads. An apply transaction for a source transaction may be committed by an apply thread independently of the commitment of any other apply transaction of the source transaction, that is, without coordinating the committing of another apply transaction executed by another apply thread for the source transaction. A configuration language is used to configure parallel logical replication. The language facilitates the configuration of various aspects of parallel logical replication, including the number of apply threads, partitioning schemes for the apply threads for partitioning change records between the apply threads, and various other aspects of parallel logical replication.Type: ApplicationFiled: July 24, 2013Publication date: January 29, 2015Inventors: Vasanth Rajamani, Lik Wong, Nimar S. Arora, Sean Lehouillier
-
Publication number: 20150032695Abstract: Techniques are provided for client and server integration for scalable replication. A replication client transmits change records to a database server over a stream. The database server determines at least one batch comprising change records for at least one transaction. The database server generates dependency data for at least one change record in a batch based on at least one constraint identifier for at least one column. The database server determines an ordered grouping of the change records based on an operation type of each change record and the dependency data of each change record, wherein change records sharing operation types are grouped together unless a division based on the dependency data is determined. The database server generates a reordered transaction comprising a plurality of reordered operations based on the ordered grouping of the change records of the particular batch.Type: ApplicationFiled: July 25, 2013Publication date: January 29, 2015Applicant: Oracle International CorporationInventors: Hung V. Tran, Lik Wong, Nimar Singh Arora, Thuvan Hoang, Edwina Ming-Yue Lu, Tianshu Li
-
Publication number: 20150032689Abstract: Techniques are provided for data definition language (DDL) expression annotation. DDL expression text is captured. The DDL expression text corresponds to a DDL change in a source database. A component set is determined. The component set includes at least one component in the DDL expression text. An annotation set is generated. The annotation set includes at least one annotation for at least one component of the component set. Each annotation includes hierarchical data describing at least one hierarchical relationship in the component set. For example, an annotation may include a component ID, a component position, a component length, a component type, and a parent component ID. The annotation set and a change record comprising the DDL expression text are transmitted to a replication client.Type: ApplicationFiled: July 24, 2013Publication date: January 29, 2015Applicant: Oracle International CorporationInventors: Parthasarathy Raghunathan, Lik Wong
-
Publication number: 20150033232Abstract: Techniques are provided for automatic parallelism tuning. At least one batch of change records is assigned to one or more apply processes in a set of active apply processes. A first throughput value is periodically determined based on a number of processed change records in a first time interval. An increment adjustment is periodically performed, including adding an additional apply process, determining a second throughput value, and removing the additional apply process from the set of active apply processes if the second throughput value is not greater than a previous first throughput value by at least an increment threshold. A decrement adjustment is periodically performed, including removing an apply process, determining a third throughput value, and replacing the removed apply process in the set of active apply processes if the third throughput value is not greater than the previous first throughput value by at least a decrement threshold.Type: ApplicationFiled: July 24, 2013Publication date: January 29, 2015Applicant: Oracle International CorporationInventors: Edwina Ming-Yue Lu, Nimar Singh Arora, Lik Wong
-
Patent number: 8879636Abstract: Methods and apparatus for adaptive encoding of data such as for example video data. In one exemplary embodiment, a real-time video encoder is disclosed that changes video encoding processes to produce the best quality encoded video while maintaining a target encoding frame rate, according to one or more operating constraints.Type: GrantFiled: May 27, 2008Date of Patent: November 4, 2014Assignee: Synopsys, Inc.Inventors: Carl Norman Graham, Seow Chuan Lim, Aris Aristodemou, John R. M. Mason, Tim Hall, Yazid Nemouchi, Kar-Lik Wong
-
Patent number: 8838615Abstract: Computer-implemented methods and computer systems for automatically managing stored checkpoint data are described. The method includes accessing a first user defined time period. The first user defined time period is related to a plurality of stored checkpoint data, and each checkpoint data of the plurality of stored checkpoint data has an associated storage time. Further, the method includes identifying a first set of checkpoint data having storage times that are within the first user defined time period. Moreover, the method includes identifying a second set of checkpoint data having storage times that are older than the first user defined time period. In addition, the method includes pruning the second set of checkpoint data according to a user specified process in proportion to storage time of each checkpoint data of the second set of checkpoint data. The older stored checkpoint data is more heavily pruned over recent stored checkpoint data.Type: GrantFiled: February 2, 2006Date of Patent: September 16, 2014Assignee: Oracle International CorporationInventors: Neeraj Shodhan, Qinqin Wang, Lik Wong, Joydip Kundu
-
Patent number: 8799213Abstract: In accordance with an embodiment of the present invention, an information sharing mechanism comprising a memory structure may be provided in a database system. In an embodiment, mined information transferred by a capture process to an associated apply process can be written into the memory structure without taking any latch. Similarly, the mined information can be read by the apply process from the memory structure without taking any latch. The capture and apply processes may work cooperatively to establish a safe point in log mining under various circumstances such as in an initial startup state, in a steady state, in a process restart scenario in the middle of information sharing. In some embodiments, the information sharing mechanism supports both checkpoint-free and checkpoint modes of log mining by the capture process. In addition, both the capture process and the apply process may employ an eager apply approach to increase processing capacity.Type: GrantFiled: July 31, 2007Date of Patent: August 5, 2014Assignee: Oracle International CorporationInventors: Lik Wong, Nimar S. Arora, Anand Lakshminath, Jingwei Wu, Lei Gao, Thuvan Hoang
-
Publication number: 20140081907Abstract: Transient duplicate key violations of unique key constraints are handled during row updates. Row changes are buffered until a point is reached that those changes are safe to execute. Row changes are effectively reordered to avoid constraint violations during execution of updates. In response to receiving a constraint key violation from a server after an attempted update, a client locally stores a record containing information regarding the failed update. Later, in response to the lack of receipt of an error in response to another update to the same column of the same table, the client uses the information in this record to instruct the server to attempt to repeat a failed update that previously attempted to change the value of a row to a value that was present in a uniqueness-constrained column at the time of the failure, but is no longer present due to the successful update.Type: ApplicationFiled: September 18, 2012Publication date: March 20, 2014Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Hung V. Tran, Lik Wong, Edwina Ming-Yue Lu
-
Publication number: 20140040203Abstract: Techniques for replicating data in database systems are described. In an example embodiment, a set of changes is received at a destination database, where the set of changes has been applied at a source database and is being replicated from the source database to the destination database. The set of changes is analyzed and it is determined that the set of changes includes two or more of: a subset of row-level changes, a subset of statement-level changes, and a subset of procedure-level changes. A set of dependencies is determined at least between the changes that are included in the subsets of changes. The changes, in the subsets of changes, are assigned to two or more processing elements. The set of changes is applied to the destination database by executing the two or more processing elements in parallel to each other and based on the set of dependencies.Type: ApplicationFiled: October 11, 2013Publication date: February 6, 2014Applicant: Oracle International CorporationInventors: Edwina M. Lu, James W. Stamos, Nimar S. Arora, Lik Wong, Haobo Xu, Thuvan Hoang, Byron Wang, Lakshminarayanan Chidambaran
-
Patent number: 8589346Abstract: Techniques for replicating data in database systems are described. In an example embodiment, a set of changes is received at a destination database, where the set of changes has been applied at a source database and is being replicated from the source database to the destination database. The set of changes is analyzed and it is determined that the set of changes includes two or more of: a subset of row-level changes, a subset of statement-level changes, and a subset of procedure-level changes. A set of dependencies is determined at least between the changes that are included in the subsets of changes. The changes, in the subsets of changes, are assigned to two or more processing elements. The set of changes is applied to the destination database by executing the two or more processing elements in parallel to each other and based on the set of dependencies.Type: GrantFiled: April 26, 2011Date of Patent: November 19, 2013Assignee: Oracle International CorporationInventors: Edwina Lu, James Stamos, Nimar Arora, Lik Wong, Haobo Xu, Thuvan Hoang, Byron Wang, Lakshminaray Chidambaran
-
Patent number: 8504522Abstract: A computer is programmed to parse a network that interconnects databases in a distributed database system, into a number of paths, wherein each path starts in a source database that is a source of changes and ends in a destination database that uses the changes to replicate the source database. The computer identifies databases that occur within each path in the network, and queries the identified databases to obtain statistics for each path. Statistics along each path are analyzed automatically, to identify a component in each path as a candidate for further investigation. The identified component may be marked as a bottleneck e.g. if there are no other paths connected to it. Alternatively the identified component may be a source of changes for another path that has a bottleneck or that has another candidate for further investigation. The identified bottleneck is displayed to the user with recommendations for improvement.Type: GrantFiled: January 9, 2012Date of Patent: August 6, 2013Assignee: Oracle International CorporationInventors: Jingwei Wu, Nimar S. Arora, Lik Wong
-
Publication number: 20120278282Abstract: Techniques for replicating data in database systems are described. In an example embodiment, a set of changes is received at a destination database, where the set of changes has been applied at a source database and is being replicated from the source database to the destination database. The set of changes is analyzed and it is determined that the set of changes includes two or more of: a subset of row-level changes, a subset of statement-level changes, and a subset of procedure-level changes. A set of dependencies is determined at least between the changes that are included in the subsets of changes. The changes, in the subsets of changes, are assigned to two or more processing elements. The set of changes is applied to the destination database by executing the two or more processing elements in parallel to each other and based on the set of dependencies.Type: ApplicationFiled: April 26, 2011Publication date: November 1, 2012Inventors: Edwina Lu, James Stamos, Nimar Arora, Lik Wong, Haobo Xu, Thuvan Hoang, Byron Wang, Lakshminaray Chidambaran
-
Patent number: 8212823Abstract: A data path for a SIMD-based microprocessor is used to perform different simultaneous filter sub-operations in parallel data lanes of the SIMD-based microprocessor. Filter operations for sub-pixel interpolation are performed simultaneously on separate lanes of the SIMD processor's data path. Using a dedicated internal data path, precision higher than the native precision of the SIMD unit may be achieved. Through the data path according to this invention, a single instruction may be used to generate the value of two adjacent sub-pixels located diagonally with respect to integer pixel positions.Type: GrantFiled: September 28, 2006Date of Patent: July 3, 2012Assignee: Synopsys, Inc.Inventors: Carl Norman Graham, Kar-Lik Wong, Simon Jones, Aris Aristodemou
-
Publication number: 20120109889Abstract: A computer is programmed to parse a network that interconnects databases in a distributed database system, into a number of paths, wherein each path starts in a source database that is a source of changes and ends in a destination database that uses the changes to replicate the source database. The computer identifies databases that occur within each path in the network, and queries the identified databases to obtain statistics for each path. Statistics along each path are analyzed automatically, to identify a component in each path as a candidate for further investigation. The identified component may be marked as a bottleneck e.g. if there are no other paths connected to it. Alternatively the identified component may be a source of changes for another path that has a bottleneck or that has another candidate for further investigation. The identified bottleneck is displayed to the user with recommendations for improvement.Type: ApplicationFiled: January 9, 2012Publication date: May 3, 2012Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Jingwei Wu, Nimar S. Arora, Lik Wong
-
Patent number: 8161085Abstract: Approaches described herein may be used for provisioning of databases that requires a bulk transfer of data within a distributed computing environment, such as a grid. The approaches do not require the manual intervention of a DBA to, for example, transfer a tablespace between the file systems of operating systems. Instead, the tablespaces may be provisioned automatically and dynamically by a grid computing system whenever it determines the need to dynamically provision a database. In addition, as copies of tablespaces are provisioned, synchronization mechanisms can also be automatically provisioned to keep the tablespaces and their copies in sync.Type: GrantFiled: October 14, 2010Date of Patent: April 17, 2012Assignee: Oracle International CorporationInventors: Benny Souder, James Stamos, Lik Wong, John Ciminski, Anand Lakshminath, Alan Downing
-
Patent number: 8095507Abstract: A computer is programmed to parse a network that interconnects databases in a distributed database system, into a number of paths, wherein each path starts in a source database that is a source of changes and ends in a destination database that uses the changes to replicate the source database. The computer identifies databases that occur within each path in the network, and queries the identified databases to obtain statistics for each path. Statistics along each path are analyzed automatically, to identify a component in each path as a candidate for further investigation. The identified component may be marked as a bottleneck e.g. if there are no other paths connected to it. Alternatively the identified component may be a source of changes for another path that has a bottleneck or that has another candidate for further investigation. The identified bottleneck is displayed to the user with recommendations for improvement.Type: GrantFiled: August 8, 2008Date of Patent: January 10, 2012Assignee: Oracle International CorporationInventors: Jingwei Wu, Nimar S Arora, Lik Wong