IP Library Granted Patent US 10,560,544
Granted Patent B2
US 10,560,544 · App. 14/835,606 · Granted Feb 11, 2020

Data caching in a collaborative file sharing system

Inventor: Denis Grenader (Sunnyvale, CA)
Assignee: Box, Inc.
H04L67/2842G06F9/00G06F11/00G06F12/0813G06F16/172G06F16/20H04L41/0273H04L67/06H04L67/22G06F2212/154
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 10,560,544
App. No.
14/835,606
Granted
Feb 11, 2020
Kind
B2
Abstract

A system and method for facilitating cache alignment in a cross-enterprise file collaboration system. The example method includes maintaining a plurality of messages in a cache, each message associated with a message offset; determining a message batch size; receiving a first request for a message characterized by a first offset; responding to the first request at least in part by sending an amount of data equal to the batch size starting at the first offset; receiving a second request for a second message of characterized by a second offset; and if the second offset plus the data batch size spans across a boundary determined by the first offset plus the data batch size, then responding to the second request by sending an amount of data equal to the first offset plus the data batch size minus the second offset. In a more specific embodiment, the first and second requests are received from different committers.

Claims (26)

1. An apparatus for maintaining alignment in a cache, the cache used for distributing log information from a message broker of a server of a plurality of servers in a cross-enterprise file collaboration system to a committer of the server, the apparatus comprising:

one or more digital processors coupled to a display and to a non-transitory processor-readable storage device including one or more instructions executable by the one or more digital processors for:

maintaining a plurality of messages in the cache, each message comprising a message offset and log information from one of the plurality of servers and associated with a topic partition for message topics to which the cache relates;

determining a message batch size;

receiving a first request for a message characterized by a first offset;

responding to the first request at least in part by sending an amount of data equal to the batch size starting at the first offset;

receiving a second request for a second message characterized by a second offset; and

if the second offset plus the data batch size spans across a boundary determined by the first offset plus the data batch size then responding to the second request by sending an amount of data equal to the first offset plus the data batch size minus the second offset, where the data starts from the second offset, thereby allowing at least one subsequent delivery without creating cache region overlap.

2. The apparatus of claim 1 , the non-transitory processor-readable storage device further including one or more instructions for:

receiving a request for a message batch identified by an offset of a message of the message batch; and

using the offset, with reference to a map of batch offsets occurring in a cache, to determine if a cached message batch corresponding to a requested message batch exists in a cache.

3. The apparatus of claim 2 , the non-transitory processor-readable storage device further including one or more instructions for:

checking whether the offset of the requested message batch does not exist om the map of batch offsets; and

further checking if the offset of the requested message batch falls within minimum and maximum batch offset values characterizing the cache.

4. The apparatus of claim 3 , the non-transitory processor-readable storage device further including one or more instructions for:

checking whether the message offset of the message batch falls within the minimum and maximum batch offset values; and

extracting messages from the cache that represent a portion of messages in the requested message batch, such that a subsequently requested message batch will be characterized by a batch offset that matches a batch offset in the map of batch offsets.

5. The apparatus of claim 4 , the non-transitory processor-readable storage device further including one or more instructions for:

checking whether the offset of the requested message batch exists in the map of batch offsets; and

using the offset of the requested message batch to retrieve a cached message batch from the cache, the cached message batch representing the requested message batch.

6. The apparatus of claim 4 , the non-transitory processor-readable storage device further including one or more instructions for:

loading a new message offset and associated message batch into the cache only when the new message offset to be added to the cache is greater than a maximum offset that is currently in the cache.

7. The apparatus of claim 6 , the non-transitory processor-readable storage device including one or more instructions for:

updating a key in the map of batch offsets when the new message offset and associated message batch is loaded into the cache, the key corresponding to the new message offset and representing a batch offset for the message batch loaded into the cache.

8. The apparatus of claim 6 , the non-transitory processor-readable storage device further including one or more instructions for:

discarding an oldest message in the cache and updating the minimum and maximum batch offset values when the new message offset and associated message batch is loaded into the cache.

Assignments (2)
SECURITY INTEREST Recorded Jul 26, 2023
From: BOX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 064389/0686 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2015
From: GRENADER, DENIS
To: BOX, INC
Reel/Frame 036418/0957 →
Continuity (1)
Related Publication 20170064027A1 · Mar 2, 2017