Coherent distributed logging

US10158642B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10158642-B2
Application numberUS-201615148516-A
CountryUS
Kind codeB2
Filing dateMay 6, 2016
Priority dateMay 6, 2016
Publication dateDec 18, 2018
Grant dateDec 18, 2018

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.

Log entries are provided with unique entry identifiers, which may be sequenced in an incremental or decremental order, to create or to update a distributed log which may be replicated and distributed to multiple servers in a network. The entry identifiers may be appended to their respective log entries. Files, records or data which are identified by their respective log entries may be transmitted regardless of the sequence of the entry identifiers.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of generating coherent log entries in a distributed log in a network comprising a plurality of servers and a plurality of client devices, wherein the client devices access a client library, the method comprising: allocating, by the client library, a first entry identifier corresponding to a first log entry of a plurality of log entries created by a first client process of a plurality of client processes, wherein the first client process runs on a first client device of the plurality of client devices; allocating, by the client library, a second entry identifier corresponding to a second log entry of the plurality of log entries created by a second client process of the plurality of client processes, wherein the second client process runs on a second client device of the plurality client devices concurrently with running of the first client process on the first client device, and wherein the second entry identifier is allocated subsequent to the first entry identifier being allocated; authorizing, by the client library, transmission of the first log entry by the first client device and the second log entry by the second client device to one or more of the plurality of servers in the network, wherein the authorizing comprises authorizing transmission of the second log entry prior to transmission of the first log entry; receiving, by the client library, acknowledgement of the first log entry and acknowledgement of the second log entry from one or more of the plurality of servers that replicate the first log entry and the second log entry in a journal that includes a background thread checkpoint, maintain a copy of the journal in cache memory, update the journal by flushing at least the first log entry and the second log entry up until a predetermined checkpoint, and delete one or more other journals older than the predetermined checkpoint; and transmitting, by the client library to the client devices, the acknowledgement of the second log entry subsequent to the acknowledgement of the first log entry. 2. The method of claim 1 , wherein the first client device is the client device that includes the client library. 3. The method of claim 1 , wherein the second client device is the client device that includes the client library. 4. The method of claim 1 , wherein the first client device and the second client device are separate from the client device that includes the client library. 5. The method of claim 1 , further comprising batching a plurality of log entries including the first log entry and the second log entry by one of the client devices. 6. The method of claim 1 , further comprising: allocating, by the client library, a third entry identifier corresponding to a third log entry of the plurality of log entries created by a third client process of the plurality of client processes, wherein the third client process runs on a third client device of the plurality client devices concurrently with running of the first client process on the first client device and running of the second client process on the second client device, and wherein the third entry identifier is allocated subsequent to the second entry identifier being allocated; authorizing, by the client library, transmission of the third log entry by the third client device to one or more of the plurality of servers in the network prior to transmission of the first log entry; receiving, by the client library, acknowledgement of the third log from one or more of the plurality of servers; and transmitting, by the client library to the client devices, the acknowledgement of the third log entry subsequent to the acknowledgement of the second log entry. 7. The method of claim 6 , wherein the authorizing, by the client library, transmission of the third log entry comprises authorizing transmission of the third log entry prior to transmission of the second log entry. 8. The method of claim 6 , further comprising batching a plurality of log entries including the second log entry and the third log entry by the second client device and transmitting the second log entry and the third log entry prior to transmission of the first log entry to one or more of the plurality of servers in the network. 9. The method of claim 1 , wherein the second entry identifier is a sequential increment of the first entry identifier. 10. A client device in a network that comprises a plurality of servers and a plurality of client devices, the client device comprising: a processor; and a memory communicably coupled to the processor, the memory including computer instructions configured to cause the processor to: allocate a first entry identifier corresponding to a first log entry of a plurality of log entries created by a first client process of a plurality of client processes, wherein the first client process runs on a first client device of the plurality of client devices; allocate a second entry identifier corresponding to a second log entry of the plurality of log entries created by a second client process of the plurality of client processes, wherein the second client process runs on a second client device of the plurality client devices concurrently with running of the first client process on the first client device, and wherein the second entry identifier is allocated subsequent to the first entry identifier being allocated; authorize transmission of the first log entry by the first client device and the second log entry by the second client device to one or more of the plurality of servers in the network, wherein the authorizing comprises authorizing transmission of the second log entry prior to transmission of the first log entry; receive acknowledgement of the first log entry and acknowledgement of the second log entry from one or more of the plurality of servers that replicate the first log entry and the second log entry in a journal that includes a background thread checkpoint, maintain a copy of the journal in cache memory, update the journal by flushing at least the first log entry and the second log entry up until a predetermined checkpoint, and delete one or more other journals older than the predetermined checkpoint; and transmit the acknowledgement of the second log entry subsequent to the acknowledgement of the first log entry. 11. The client device of claim 10 , wherein the computer instructions further comprise computer instructions to cause the processor to batch a plurality of log entries including the first log entry and the second log entry by one of the client devices. 12. The client device of claim 10 , wherein the computer instructions further comprise computer instructions configured to cause the processor to: allocate a third entry identifier corresponding to a third log entry of the plurality of log entries created by a third client process of the plurality of client processes, wherein the third client process runs on a third client device of the plurality client devices concurrently with running of the first client process on the first client device and running of the second client process on the second client device, and wherein the third entry identifier is allocated subsequent to the second entry identifier being allocated; authorize transmission of the third log entry by the third client device to one or more of the plurality of servers in the network prior to transmission of the first log entry; receive acknowledgement of the third log from one or more of the plurality of servers; and transmit the acknowledgement of the third log entry subsequent to the acknowledgement of the second log entry. 13. The client device of claim 12 , wherein transmissio

Assignees

Inventors

Classifications

  • Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title

  • Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes · CPC title

  • Electricity · mapped topic

  • H04L63/102Primary

    Entity profiles · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · 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 US10158642B2 cover?
Log entries are provided with unique entry identifiers, which may be sequenced in an incremental or decremental order, to create or to update a distributed log which may be replicated and distributed to multiple servers in a network. The entry identifiers may be appended to their respective log entries. Files, records or data which are identified by their respective log entries may be transmitt…
Who is the assignee on this patent?
Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification H04L63/102. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 18 2018 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).