Efficient production and consumption for data changes in a database under high concurrency

US11860847B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11860847-B2
Application numberUS-202017111039-A
CountryUS
Kind codeB2
Filing dateDec 3, 2020
Priority dateSep 25, 2018
Publication dateJan 2, 2024
Grant dateJan 2, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A seed value assigned to a database table is determined. Numerically ordered invocation numbers are determined. Unordered pseudorandom numbers are generated based on the seed value and the invocation numbers to index temporally ordered data changes to the database table. It is determined whether the total number of yet-to-be-saved pseudorandom numbers reaches a maximum total number threshold. If so, the yet-to-be-saved pseudorandom numbers and a sequence of corresponding invocation numbers are saved in a sync table.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, comprising: detecting that a sequence of data changes was made to data values of a database table, wherein the sequence of data changes is indexed in a data change index based on pseudorandom numbers; determining a first invocation number and a second invocation number greater than the first invocation number; generating a sequence of pseudorandom numbers for all invocation numbers ranging between the first invocation number and the second invocation number, wherein the sequence of pseudorandom numbers begins with a first pseudorandom number generated based on a seed value assigned to the database table and the first invocation number, and wherein the sequence of pseudorandom numbers ends with a second pseudorandom number generated based on the seed value and the second invocation number; and retrieving, via entries of the data change index that are accessed using the sequence of pseudorandom numbers, the sequence of data changes made to the data values of the database table. 2. The method of claim 1 , wherein all the invocation numbers ranging between the first invocation number and the second invocation number form a numerically ordered sequence; wherein the sequence of pseudorandom numbers form a numerically unordered sequence. 3. The method of claim 1 , wherein a pseudorandom number in the sequence of pseudorandom numbers is used by a data change consumer to retrieve a respective data change in the sequence of data changes to the database table. 4. The method of claim 1 , wherein the sequence of data changes are applied by one or more data change producers to the database table over time in a time sequential order corresponding to a numeric order of the invocation numbers ranging between the first invocation number and the second invocation number. 5. The method of claim 1 , wherein each data change in the sequence of data changes corresponds to a respective invocation number in the invocation numbers ranging between the first invocation number and the second invocation number; wherein the data change is indexed based on a pseudorandom number generated based on the seed value and the respective invocation number. 6. The method of claim 1 , wherein the database table comprises a plurality of table columns; wherein the plurality of table columns of the database table comprises an indexed table column used to store pseudorandom numbers. 7. The method of claim 1 , wherein the sequence of data changes to the database table is retrieved by a data change consumer while the database table is concurrently accessed by at least one of a data change producer or another data change consumer. 8. One or more non-transitory computer readable media storing a program of instructions that is executable by a device to perform: detecting that a sequence of data changes was made to data values of a database table, wherein the sequence of data changes is indexed in a data change index based on pseudorandom numbers; determining a first invocation number and a second invocation number greater than the first invocation number; generating a sequence of pseudorandom numbers for all invocation numbers ranging between the first invocation number and the second invocation number, wherein the sequence of pseudorandom numbers begins with a first pseudorandom number generated based on a seed value assigned to the database table and the first invocation number, and wherein the sequence of pseudorandom numbers ends with a second pseudorandom number generated based on the seed value and the second invocation number; and retrieving, via entries of the data change index that are accessed using the sequence of pseudorandom numbers, the sequence of data changes made to the data values of the database table. 9. The media of claim 8 , wherein all the invocation numbers ranging between the first invocation number and the second invocation number form a numerically ordered sequence; wherein the sequence of pseudorandom numbers form a numerically unordered sequence. 10. The media of claim 8 , wherein a pseudorandom number in the sequence of pseudorandom numbers is used by a data change consumer to retrieve a respective data change in the sequence of data changes to the database table. 11. The media of claim 8 , wherein the sequence of data changes are applied by one or more data change producers to the database table over time in a time sequential order corresponding to a numeric order of the invocation numbers ranging between the first invocation number and the second invocation number. 12. The media of claim 8 , wherein each data change in the sequence of data changes corresponds to a respective invocation number in the invocation numbers ranging between the first invocation number and the second invocation number; wherein the data change is indexed based on a pseudorandom number generated based on the seed value and the respective invocation number. 13. The media of claim 8 , wherein the database table comprises a plurality of table columns; wherein the plurality of table columns of the database table comprises an indexed table column used to store pseudorandom numbers. 14. The media of claim 8 , wherein the sequence of data changes to the database table is retrieved by a data change consumer while the database table is concurrently accessed by at least one of a data change producer or another data change consumer. 15. A system, comprising: one or more computing processors; one or more non-transitory computer readable media storing a program of instructions that is executable by the one or more computing processors to perform: detecting that a sequence of data changes was made to data values of a database table, wherein the sequence of data changes is indexed in a data change index based on pseudorandom numbers; determining a first invocation number and a second invocation number greater than the first invocation number; generating a sequence of pseudorandom numbers for all invocation numbers ranging between the first invocation number and the second invocation number, wherein the sequence of pseudorandom numbers begins with a first pseudorandom number generated based on a seed value assigned to the database table and the first invocation number, and wherein the sequence of pseudorandom numbers ends with a second pseudorandom number generated based on the seed value and the second invocation number; and retrieving, via entries of the data change index that are accessed using the sequence of pseudorandom numbers, the sequence of data changes made to the data values of the database table. 16. The system of claim 15 , wherein all the invocation numbers ranging between the first invocation number and the second invocation number form a numerically ordered sequence; wherein the sequence of pseudorandom numbers form a numerically unordered sequence. 17. The system of claim 15 , wherein a pseudorandom number in the sequence of pseudorandom numbers is used by a data change consumer to retrieve a respective data change in the sequence of data changes to the database table. 18. The system of claim 15 , wherein the sequence of data changes are applied by one or more data change producers to the database table over time in a time sequential order corresponding to a numeric order of the invocation numbers ranging between the first invocation number and the second invocation number. 19. The system of claim 15 , wherein each data change in the sequence of data changes corresponds to a respective invocation number in the invocation num

Assignees

Inventors

Classifications

  • Tablespace storage structures; Management thereof · CPC title

  • Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator · CPC title

  • Change logging, detection, and notification (replication G06F16/27) · CPC title

  • Concurrency control (transaction processing G06F9/466) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11860847B2 cover?
A seed value assigned to a database table is determined. Numerically ordered invocation numbers are determined. Unordered pseudorandom numbers are generated based on the seed value and the invocation numbers to index temporally ordered data changes to the database table. It is determined whether the total number of yet-to-be-saved pseudorandom numbers reaches a maximum total number threshold. I…
Who is the assignee on this patent?
Salesforce Com Inc, Salesforce Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/2282. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 02 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).