IP Library Granted Patent US 9,769,274
Granted Patent B2
US 9,769,274 · App. 14/492,800 · Granted Sep 19, 2017

Data transfer, synchronising applications, and low latency networks

Inventors: Glenford Ezra Mapp (Cambridge, GB); Stephen John Hodges (Kensington, GB); Derek Edward Roberts (Cambridge, GB); Steven Leslie Pope (Cambridge, GB)
Assignee: AT&T INVESTMENTS UK LLC
H04L67/2842G06F13/385H04L49/90H04L49/901H04L67/2823
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,769,274
App. No.
14/492,800
Granted
Sep 19, 2017
Kind
B2
Abstract

Data transfer, synchronizing applications, and low latency networks are disclosed. An example method includes maintaining a first buffer in a first computing device, the first buffer to receive discrete units of data from a second computing device; maintaining a second buffer in the first computing device, the second buffer to store size data identifying a size of respective ones of the discrete units of data received from the second computing device; and reading from the first buffer according to a first value of a first pointer and a corresponding one of the sizes stored in the second buffer.

Claims (34)

1. A method, comprising:

storing in a first buffer of a first computing device discrete units of data received from a second computing device;

storing in a second buffer of the first computing device size data identifying sizes of respective ones of the discrete units of data received from the second computing device, the first computing device and the second computing device operating on different parts of the first buffer simultaneously;

storing on the first computing device, a read pointer representing a start position of a first one of the discrete units of data available for reading in the first buffer;

storing on the second computing device a copy of the read pointer;

reading the first discrete unit from the first buffer based on a value of the read pointer and a corresponding one of the sizes stored in the second buffer;

updating the value of the read pointer on the first computing device; and

updating the value of the copy of the read pointer on the second computing device.

2. The method as defined in claim 1 , wherein the updating of the value of the copy of the read pointer includes the first computing device communicating with the second computing device via a network.

3. The method as defined in claim 1 , wherein the updating of the value of the copy of the read pointer includes the first computing device conveying a last-read section of the first buffer to the second computing device.

4. The method as defined in claim 1 , further including a write pointer stored on the second computing device and a copy of the write pointer stored on the first computing device, a value of the write pointer and a value of the copy of the write pointer updated by the second computing device after the first buffer receives the discrete units of data.

5. The method as defined in claim 1 , further including configuring the first and second buffers as circular buffers.

6. A first computing device comprising:

a first buffer to received discrete units of data from a second computing device;

a second buffer to store size data identifying sizes of respective ones of the discrete units of data received from the second computing device;

a read pointer, the read pointer representing a starting position of a first one of the discrete units available for reading from the first buffer;

a memory including machine readable instructions; and

a processor to execute the instructions to perform operations including:

reading the first discrete unit from the first buffer based on the read pointer and a corresponding one of the sizes identified by the size data stored in the second buffer, the second computing device able to operate on different locations within the first buffer while the first discrete unit is being read from the first buffer; and

updating the read pointer and a copy of the read pointer on the second computing device.

7. The first computing device as defined in claim 6 , wherein the updating of the copy of the read pointer includes communicating with the second computing device via a network.

8. The first computing device as defined in claim 6 , wherein the updating of the copy of the read pointer includes conveying a last-read section of the first buffer to the second computing device.

9. The first computing device as defined in claim 6 , further including a write pointer stored on the second computing device and a copy of the write pointer stored on the first computing device, the write pointer and the copy of the write pointer to be updated by the second computing device after the first buffer receives the discrete units of data.

10. The first computing device as defined in claim 6 , further including configuring the first and second buffers as circular buffers.

11. A tangible machine readable storage device including instructions that, when executed, cause a first computing device to perform operations comprising:

storing discrete units of data from a second computing device in a first buffer;

storing metadata identifying sizes of respective ones of the discrete units of data received from the second computing device in a second buffer;

storing a read pointer representing a starting position from which to begin reading from in the first buffer;

storing a copy of the read pointer on the second computing device;

reading data from the first buffer to based on the read pointer stored on the first computing device and a corresponding one of the sizes stored in the second buffer, the second computing device able to operate on different locations within the first buffer while the data is being read from the first buffer; and

updating the read pointer on the first computing device and the copy of the read pointer on the second computing device.

12. The storage device as defined in claim 11 , wherein the updating of the copy of the read pointer includes communicating with the second computing device via a network.

13. The storage device as defined in claim 11 , wherein the updating of the copy of the read pointer includes conveying a last-read section of the first buffer from the first computing device to the second computing device.

14. The storage device as defined in claim 11 , further including a write pointer stored on the second computing device and a copy of the write pointer stored on the first computing device, and further including updating the write pointer and the copy of the write pointer after the first buffer receives the discrete units of data.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2014
From: ROBERTS, DEREK EDWARD; MAPP, GLENFORD EZRA; POPE, STEVEN LESLIE; HODGES, STEPHEN JOHN
To: AT&T LABORATORIES-CAMBRIDGE LTD.
Reel/Frame 033790/0331 →
CHANGE OF NAME Recorded Sep 22, 2014
From: AT&T INVESTMENTS UK INC.
To: AT&T INVESTMENTS UK LLC
Reel/Frame 033793/0515 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2014
From: AT&T LABORATORIES-CAMBRIDGE LIMITED
To: AT&T INVESTMENTS UK INC.
Reel/Frame 033793/0518 →
Priority Claims (1)
GB 9910280.8 · May 4, 1999 · national
Continuity (5)
Continuation 13802400 · Mar 13, 2013
Continuation 12105412 · Apr 18, 2008
Division 11198043 · Aug 5, 2005
Division 09980539
Related Publication 20150081925A1 · Mar 19, 2015