Dictionary synchronization over a transport with guaranteed ordering
AssigneeEMC IP Holding Company LLC
InventorIvan Andreyev
Life of this patent
Estimating the term…
Abstract
Systems and methods of dictionary synchronization between applications over a network are provided. The dictionary synchronization can be performed with guaranteed packet ordering. With guaranteed packet ordering, operations such as data de-duplication can be performed over the wire or network.
Claims16
A method for transporting chunks over a transport using guaranteed ordering, the method comprising:
- storing an index on a transmitter side and storing a dictionary on a receiver side;
- receiving a chunk for transmission from a transmitter to a receiver;
- accessing the index to determine whether the chunk is known to the receiver;
- when the chunk is known to the receiver:
- transmitting the address of the chunk to the receiver without transmitting the chunk;
- updating the index to reflect that the chunk has been used recently and is not stale for eviction purposes, wherein the receiver receives the address and updates the dictionary for eviction purposes;
- evicting stale entries in the index by the transmitter;
- and
- evicting stale entries in the dictionary by the receiver;
- when the chunk is not known to the receiver:
- deterministically determining by the transmitter, when the chunk is not known to the receiver, an address of the chunk;
- storing the address in the index;
- updating the index to reflect that the chunk is not stale for eviction purposes;
- evicting stale entries in the index by the transmitter;
- transmitting the chunk that is not known to the receiver to the receiver without conveying the address of the chunk over the transport;
- deterministically determining a dictionary address of the chunk by the receiver;
- storing the chunk in the dictionary at the deterministically determined dictionary address, wherein the dictionary address is the same as the address in the index;
- and
- updating the dictionary by the receiver to reflect that the chunk is not stale for eviction purposes;
- and
- evicting stale entries in the dictionary by the receiver.
A method for a transmitter and a receiver to transmit data between a first application and a second application using guaranteed ordering, wherein the transmitter is associated with an index and the receiver is associated with a dictionary, the method comprising:
- transmitting, for each data chunk processed by the transmitter, either the data chunk itself or its address to the receiver;
- updating the index, for each data chunk or address transmitted to the receiver, for eviction purposes;
- receiving the data chunks or addresses of data chunks as entries in an input queue at the receiver;
- accessing the input queue to obtain an entry;
- determining that the entry contains a new data chunk from the first application;
- calculating a dictionary address, by the receiver, for the new data chunk;
- updating the dictionary at the transmitter with the dictionary address, by the transmitter, for eviction purposes such that the new data chunk is not stale;
- evicting stale entries from the index by the receiver;
- entering the new data chunk into the dictionary at the calculated dictionary address, wherein the transmitter deterministically calculates the same dictionary address such that the dictionary address is entered into the index without requiring the receiver to communicate the dictionary address to the transmitter;
- updating the dictionary to reflect that the new data chunk is not stale for eviction purposes;
- when the input queue contains a second entry that only includes an address of a second chunk, updating the dictionary to reflect that that second chunk has been recently used and is not stale for eviction purposes;
- and
- outputting the new data chunk to the second application.
Dependencies are inferred from the claim text.