US9576013B2ActiveUtilityA1

Optimizing update operations in in-memory database systems

76
Assignee: LEGLER THOMASPriority: Apr 3, 2014Filed: Apr 3, 2014Granted: Feb 21, 2017
Est. expiryApr 3, 2034(~7.7 yrs left)· nominal 20-yr term from priority
Inventors:Thomas Legler
G06F 16/2282G06F 16/23G06F 16/2379G06F 17/30345G06F 17/30377
76
PatentIndex Score
4
Cited by
4
References
18
Claims

Abstract

Performing optimized update operations in in-memory database systems. Update values corresponding to a source table of values stored on an in-memory database are identified by an in-memory database computer system based on information from a computer system implementing a software application. The update values are distributed across a plurality of rows, each row including a plurality of column attributes. At least some column attributes of the plurality of column attributes include values updated relative to corresponding column attributes in the source table of values. A row of the update values is identified. The row includes a plurality of column attributes, each column attribute having a respective value. Each value of each column attribute of the row of the update values is the same as a corresponding value of a corresponding attribute of a corresponding row of the source table is determined. Upon such a determination, a corresponding row of the source table stored on the in-memory database is written into the in-memory database by the in-memory database computer system.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. A computer-implemented method comprising:
 identifying, by an in-memory database computer system based on information from a computer system implementing a software application, update values corresponding to a source table of values stored on an in-memory database, the update values distributed across a plurality of rows, each row including a plurality of column attributes, at least some column attributes of the plurality of column attributes including values updated relative to corresponding column attributes in the source table of values; 
 identifying a first number of column attributes of the update values that include values updated relative to the corresponding column attributes in the source table of values; 
 identifying a second total number of column attributes in the source table; 
 determining that the first number satisfies a first threshold number of column attributes; 
 determining that a difference between the second number and the first number satisfies a second threshold difference in a number of column attributes; and 
 in response to determining that the first number satisfies the first threshold and that the difference satisfies the second threshold difference:
 identifying, by the in-memory database computer system, a row of the update values, the row including a plurality of column attributes, each column attribute having a respective value; 
 determining, by the in-memory database computer system, that each value of each column attribute of the row of the update values is the same as a corresponding value of a corresponding attribute of a corresponding row of the source table; and 
 writing, by the in-memory database computer system, dictionary compressed identifiers of a corresponding row of the source table stored on the in-memory database into the in-memory database, in response to determining that each value of each column attribute of the row of the update values is the same as the corresponding value of the corresponding attribute of the corresponding row of the source table. 
 
 
     
     
       2. The method of  claim 1 , wherein writing dictionary compressed identifiers of the corresponding row of the source table to the in-memory database comprises performing optimized update operations, the optimized update operations comprising:
 determining a dictionary compressed identifier of each value of each column attribute of the row of the update values to be the same as a dictionary compressed identifier of the corresponding value of the corresponding attribute of the corresponding row of the source table; 
 generating a new row that includes the dictionary compressed identifier of each value of each column attribute in the corresponding row of the source table; and 
 inserting the new row into a delta table of the in-memory database. 
 
     
     
       3. The method of  claim 2 , further comprising, in response to determining that each value of each column attribute of the row of the update values is the same as the corresponding value of the corresponding attribute of the corresponding row of the source table, increasing a likelihood for performing the optimized update operation. 
     
     
       4. The method of  claim 2 , wherein the row of the update values is a first row of the update values and the corresponding row in the source table is a corresponding first row in the source table, and wherein the method further comprises:
 determining that a value of a column attribute of a second row of the update values is different from a corresponding value of a corresponding attribute of a corresponding second row of the source table; and 
 in response to determining that the value of the column attribute of the second row of the update values is different from the corresponding value of the corresponding attribute of the corresponding second row of the source table, decreasing a likelihood for performing the optimized update operation. 
 
     
     
       5. The method of  claim 4 , wherein the method further comprises, for each of a threshold number of rows of the update values, the threshold number being less than a total number of rows of the update values:
 determining that a value of a column attribute of a respective row of the update values is different from a corresponding value of a corresponding attribute of a corresponding respective row of the source table; and 
 in response to determining that the value of the column attribute of the respective row of the update values is different from the corresponding value of the corresponding attribute of the corresponding respective row of the source table, determining that the update values do not qualify for performing the optimized update operation. 
 
     
     
       6. The method of  claim 5 , further comprising, in response to determining that the update values do not qualify for performing the optimized update operation:
 performing dictionary compression or lookup to identify a dictionary compressed identifier of each value of each column attribute of the row of the update values; 
 generating a new row that includes the dictionary compressed identifier of each value of each column attribute; and 
 inserting the new row into a delta table of the in-memory database. 
 
     
     
       7. The method of  claim 5 , wherein the threshold number of rows is five rows. 
     
     
       8. The method of  claim 1 , wherein writing dictionary compressed identifiers of the corresponding row of the source table to the in-memory database comprises writing dictionary compressed identifiers of the corresponding row of the source table to the in-memory database instead of performing dictionary compression or lookup of each value of each column attribute of the row of the update values. 
     
     
       9. A non-transitory computer-readable medium storing instructions executable by an in-memory database computer system to perform operations comprising:
 identifying, by an in-memory database computer system based on information from a computer system implementing a software application, update values corresponding to a source table of values stored on an in-memory database, the update values of values distributed across a plurality of rows, each row including a plurality of column attributes, at least some column attributes of the plurality of column attributes including values updated relative to corresponding column attributes in the source table of values; 
 identifying a first number of column attributes of the update values that include values updated relative to the corresponding column attributes in the source table of values; 
 identifying a second total number of column attributes in the source table; 
 determining that the first number satisfies a first threshold number of column attributes; 
 determining that a difference between the second number and the first number satisfies a second threshold difference in a number of column attributes; and 
 in response to determining that the first number satisfies the first threshold and that the difference satisfies the second threshold difference:
 identifying, by the in-memory database computer system, a row of the update values, the row including a plurality of column attributes, each column attribute having a respective value; 
 determining, by the in-memory database computer system, that each value of each column attribute of the row of the update values is the same as a corresponding value of a corresponding attribute of a corresponding row of the source table; and 
 writing, by the in-memory database computer system, dictionary compressed identifiers of a corresponding row of the source table stored on the in-memory database into the in-memory database, in response to determining that each value of each column attribute of the row of the update values is the same as the corresponding value of the corresponding attribute of the corresponding row of the source table. 
 
 
     
     
       10. The medium of  claim 9 , wherein writing dictionary compressed identifiers of the corresponding row of the source table to the in-memory database comprises performing optimized update operations, the optimized update operations comprising:
 determining a dictionary compressed identifier of each value of each column attribute of the row of the update values to be the same as a dictionary compressed identifier of the corresponding value of the corresponding attribute of the corresponding row of the source table; 
 generating a new row that includes the dictionary compressed identifier of each value of each column attribute in the corresponding row of the source table; and 
 inserting the new row into a delta table of the in-memory database. 
 
     
     
       11. The medium of  claim 10 , the operations further comprising, in response to determining that each value of each column attribute of the row of the update values is the same as the corresponding value of the corresponding attribute of the corresponding row of the source table, increasing a likelihood for performing the optimized update operation. 
     
     
       12. The medium of  claim 10 , wherein the row of the update values is a first row of the update values and the corresponding row in the source table is a corresponding first row in the source table, and wherein the operations further comprises:
 determining that a value of a column attribute of a second row of the update values is different from a corresponding value of a corresponding attribute of a corresponding second row of the source table; and 
 in response to determining that the value of the column attribute of the second row of the update values is different from the corresponding value of the corresponding attribute of the corresponding second row of the source table, decreasing a likelihood for performing the optimized update operation. 
 
     
     
       13. The medium of  claim 12 , the operations further comprises, for each of a threshold number of rows of the update values, the threshold number being less than a total number of rows of the update values:
 determining that a value of a column attribute of a respective row of the update values is different from a corresponding value of a corresponding attribute of a corresponding respective row of the source table; and 
 in response to determining that the value of the column attribute of the respective row of the update values is different from the corresponding value of the corresponding attribute of the corresponding respective row of the source table, determining that the update values do not qualify for performing the optimized update operation. 
 
     
     
       14. The medium of  claim 13 , the operations further comprising, in response to determining that the update values do not qualify for performing the optimized update operation:
 performing dictionary compression or lookup to identify a dictionary compressed identifier of each value of each column attribute of the row of the update values; 
 generating a new row that includes the dictionary compressed identifier of each value of each column attribute; and 
 inserting the new row into a delta table of the in-memory database. 
 
     
     
       15. The medium of  claim 9 , wherein writing dictionary compressed identifiers of the corresponding row of the source table to the in-memory database comprises writing dictionary compressed identifiers of the corresponding row of the source table to the in-memory database instead of performing dictionary compression or lookup of each value of each column attribute of the row of the update values. 
     
     
       16. A system comprising:
 at least one processor; 
 a non-transitory computer-readable storage medium coupled to the at least one processor and storing an in-memory database and programming instructions for execution by the at least one processor, wherein the programming instructions instruct the at least one processor to:
 identify, based on information from a computer system implementing a software application, update values corresponding to a source table of values stored on the in-memory database, the update values distributed across a plurality of rows, each row including a plurality of column attributes, at least some column attributes of the plurality of column attributes including values updated relative to corresponding column attributes in the source table of values; 
 identifying a first number of column attributes of the update values that include values updated relative to the corresponding column attributes in the source table of values; 
 identify a second total number of column attributes in the source table; 
 determine that the first number satisfies a first threshold number of column attributes; 
 determine that a difference between the second number and the first number satisfies a second threshold difference in a number of column attributes; 
 performing an attribute-by-attribute comparison of a column attribute of a row of the update values with a corresponding column attribute of a corresponding row in the source table, in response to determining that the first number satisfies the first threshold and that the difference satisfies the second threshold difference; and 
 write dictionary compressed identifiers of the updated values to the in-memory database based on the attribute-by-attribute comparison. 
 
 
     
     
       17. The system of  claim 16 , wherein writing the dictionary compressed identifiers of the updated values to the in-memory database based on the attribute-by-attribute comparison comprises:
 in response to determining that each value of each column attribute of the row of the update values is the same as the corresponding value of the corresponding attribute of the corresponding row of the source table, performing optimized update operations comprising:
 determining a dictionary compressed identifier of each value of each column attribute of the row of the update values to be the same as a dictionary compressed identifier of the corresponding value of the corresponding attribute of the corresponding row of the source table; 
 generating a new row that includes the dictionary compressed identifier of each value of each column attribute in the corresponding row of the source table; and 
 inserting the new row into a delta table of the in-memory database. 
 
 
     
     
       18. The system of  claim 16 , wherein writing the dictionary compressed identifiers of the updated values to the in-memory database based on the attribute-by-attribute comparison comprises:
 in response to determining a value of a column attribute of the row of the update values is the different from the corresponding value of the corresponding attribute of the corresponding row of the source table, performing dictionary compression or lookup of each value of each column attribute of the row of the update values.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.