Reducing contention by slaves for free lists when modifying data in a table partition
First Claim
Patent Images
1. A method for executing transactions, the method comprising the steps of:
- assigning a plurality of slaves to participate in execution of a transaction that involves modifications to a plurality of table partitions in at least one table;
wherein data for each partition of said plurality of table partitions is stored in data blocks;
wherein each partition of said plurality of table partitions is associated with a corresponding plurality of lists, wherein each list of said plurality of lists;
identifies data blocks within said corresponding partition that satisfy one or more criteria,are used, by processes modifying data blocks, to identify a particular data block that satisfies said one or more criteria; and
dividing said plurality of slaves into a plurality of groups such that the number of slaves in each group of said plurality of groups does not exceed a threshold number based on how many lists there are in the corresponding plurality of lists of any partition;
assigning at least a portion of the plurality of table partitions to the plurality of groups; and
for each group of said plurality of groups, slaves in said each group modifying data in the partitions assigned to said each group.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided herein are techniques that may be used to dramatically increase parallism for distributed DML operations. The work of distributed DML operations are distributed in a way that reduces or eliminates contention for free lists. Scalability is improved because a greater number of slaves may be used to modify data stored in partitions without increasing contention for the free lists.
40 Citations
22 Claims
-
1. A method for executing transactions, the method comprising the steps of:
-
assigning a plurality of slaves to participate in execution of a transaction that involves modifications to a plurality of table partitions in at least one table; wherein data for each partition of said plurality of table partitions is stored in data blocks; wherein each partition of said plurality of table partitions is associated with a corresponding plurality of lists, wherein each list of said plurality of lists; identifies data blocks within said corresponding partition that satisfy one or more criteria, are used, by processes modifying data blocks, to identify a particular data block that satisfies said one or more criteria; and dividing said plurality of slaves into a plurality of groups such that the number of slaves in each group of said plurality of groups does not exceed a threshold number based on how many lists there are in the corresponding plurality of lists of any partition; assigning at least a portion of the plurality of table partitions to the plurality of groups; and for each group of said plurality of groups, slaves in said each group modifying data in the partitions assigned to said each group. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-readable storage medium carrying one or more sequences of instructions for executing transactions, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
assigning a plurality of slaves to participate in execution of a transaction that involves modifications to a plurality of table partitions in at least one table; wherein data for each partition of said plurality of table partitions is stored in data blocks; wherein each partition of said plurality of table partitions is associated with a corresponding plurality of lists, wherein each list of said plurality of lists; identifies data blocks within said corresponding partition that satisfy one or more criteria, are used, by processes modifying data blocks, to identify a particular data block that satisfies said one or more criteria; and dividing said plurality of slaves into a plurality of groups such that the number of slaves in each group of said plurality of groups does not exceed a threshold number based on how many lists there are in the corresponding plurality of lists of any partition; assigning at least a portion of the plurality of table partitions to the plurality of groups; and for each group of said plurality of groups, slaves in said each group modifying data in the partitions assigned to said each group. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A database system for executing transactions, said database system configured to perform the steps of:
-
assigning a plurality of slaves to participate in execution of a transaction that involves modifications to a plurality of table partitions in at least one table; wherein data for each partition of said plurality of table partitions is stored in data blocks; wherein each partition of said plurality of table partitions is associated with a corresponding plurality of lists, wherein each list of said plurality of lists; identifies data blocks within said corresponding partition that satisfy one or more criteria, are used, by processes modifying data blocks, to identify a particular data block that satisfies said one or more criteria; and dividing said plurality of slaves into a plurality of groups such that the number of slaves in each group of said plurality of groups does not exceed a threshold number based on how many lists there are in the corresponding plurality of lists of any partition; assigning at least a portion of the plurality of table partitions to the plurality of groups; and for each group of said plurality of groups, slaves in said each group modifying data in the partitions assigned to said each group. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A computer system for executing transactions, said computer system including:
-
means for assigning a plurality of slaves to participate in execution of a transaction that involves modifications to a plurality of table partitions in at least one table; wherein data for each partition of said plurality of table partitions is stored in data blocks; wherein each partition of said plurality of table partitions is associated with a corresponding plurality of lists, wherein each list of said plurality of lists; identifies data blocks within said corresponding partition that satisfy one or more criteria, are used, by processes modifying data blocks, to identify a particular data block that satisfies said one or more criteria; and means for dividing said plurality of slaves into a plurality of groups such that the number of slaves in each group of said plurality of groups does not exceed a threshold number based on how many lists there are in the corresponding plurality of lists of any partition; means for assigning at least a portion of the plurality of table partitions to the plurality of groups; and for each group of said plurality of groups, means for slaves in said each group modifying data in the partitions assigned to said each group.
-
Specification