Coherent distributed logging
Assigneesalesforce.com, inc.
InventorsVenkateswararao Jujjuri, Sameer Tiwari, James John Seeger, JR., Patrick James Helland
Life of this patent
Estimating the term…
Abstract
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.
Claims21
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;
- 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.
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;
- and
- transmit the acknowledgement of the second log entry subsequent to the acknowledgement of the first log entry.
A client device that includes a client library for authorizing transmission of log entries to one or more of a plurality of servers in a network, the client library configured 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 a 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;
- and
- transmit the acknowledgement of the second log entry subsequent to the acknowledgement of the first log entry.
Dependencies are inferred from the claim text.