# US 8,788,458 B2 · Data caching for mobile applications

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,458 B2
- Document ID: US8788458B2
- Status: Granted
- Kind: B2
- Application number: 12/760,233
- Filed: 2010-04-14
- Published: 2011-06-30
- Granted: 2014-07-22
- Earliest claimed: 2009-12-30
- Assignees: Sybase, Inc.
- Applicants: Lance Waterman; Michael Ho; Brian Keith Lorenz; Evan Peter Ireland; Hemal Pandya
- Inventors: Lance Waterman; Michael Ho; Brian Keith Lorenz; Evan Peter Ireland; Hemal Pandya
- Web page: https://patentgrep.com/patent/US8788458B2

## CPC

- G06F 16/278: {Data partitioning, e.g. horizontal or vertical partitioning}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/9574: {of access to content, e.g. by caching}
- Y10S 707/9994: Distributed or remote access
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

Systems, methods, computer program product embodiments and combinations and sub-combinations thereof for data caching and cache synchronization are described herein. An embodiment includes comparing data in a cache with data stored at a data source and determining database operations needed to synchronize one or more partitions of the cache with the data source. Each cache partition is associated with mobile business object (MBO) metadata of a distinct mobile device and the determined database operations are executed to synchronize the partitions with the data source. By refreshing only those partitions which are pertinent to a given device, embodiments of the invention may increase parallelism by allowing multiple partitions to refresh concurrently. The embodiment further comprises reviewing a caching policy associated with the cache. The caching policy may be selected in a manner that reduces data traffic and redundant requests on the data source.

## Claims

### Claim 1

A computer implemented method for cache synchronization, comprising:
responsive to a request received at a device from a mobile device for content stored at a data source server, performing operations comprising:
comparing data in a cache of said device with data stored at said data source server, wherein the cache includes a plurality of partitions, each partition being configured to include information from a plurality of data source servers; and
synchronizing one or more partitions of said plurality of partitions with said data source server independently of other partitions of the plurality of partitions, wherein each partition of said one or more partitions contains at least a portion of a mobile business object (MBO) metadata of a particular data-requesting mobile device;
reviewing a caching policy associated with said cache; and
changing the caching policy based on the reviewing, comprising:
assigning data in said cache to a coherence window, wherein the coherence window indicates whether the data has expired;
reviewing said coherence window when said data in said cache is accessed; and
updating data in said cache based on said coherence window, comprising:
updating a row in a cache table in said cache;
updating a timestamp associated with said row; and
updating a marker identifying the updating of the row in the cache table in said cache;
wherein said device, said mobile device, and said data source server are different devices.

### Claim 2 (depends on 1)

The method of claim 1, wherein said changing further comprises:
reviewing a pre-defined caching schedule
where said updating said data in said cache occurs based on said caching schedule.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
receiving an event notification
wherein said updating said data in said cache occurs based on said event notification,
wherein said event notification is generated based on manipulation of data in said data source server.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining key-sorted contents of said cache;
determining key-sorted contents of said data source server;
comparing key-sorted contents of said cache and said data source server; and
determining modified contents of said cache.

### Claim 5 (depends on 1)

The method Of claim 1, further comprising:
invoking a data request to said data source server; and
retrieving a plurality of data rows from said data source server.

### Claim 6

A computer-based system for caching of data, comprising:
a processor; and
a memory in communication with said processor, said memory storing a plurality of processing instructions that are configured to direct said processor to:
responsive to a request received at a device from a mobile device for content stored at a data source server:
compare data in a cache of said device with data stored at said data source server, wherein the cache includes a plurality of partitions, each partition being configured to include information from a plurality of data source servers; and
synchronize one or more partitions of said plurality of partitions with said data source server independently of other partitions of the plurality of partitions, wherein each partition of said one or more partitions contains at least a portion of mobile business object (MBO) metadata of a particular data-requesting mobile device;
review a caching policy associated with said cache; and
change the caching policy based on the review, comprising:
assign data in said cache to a coherence window, wherein the coherence window indicates whether the data has expired;
review said coherence window when said data in said cache is accessed; and
update data in said cache based on said coherence window, comprising:
update a row in a cache table in said cache;
update a timestamp associated with said row; and
update a marker identifying the update of the row in the cache table in said cache;
wherein said device, said mobile device, and said data source server are different devices.

### Claim 7 (depends on 6)

The system of claim 6, wherein said cache further comprises;
a plurality of cache tables configured to store data retrieved from said data source server.

### Claim 8

An article of manufacture including a non transitory computer-readable medium having instructions stored thereon that, if executed by a computing device, cause said computing device to perform operations, the operations comprising:
responsive to a request received at a device from a mobile device for content stored at a data source server:
comparing data in a cache of said device with data stored at said data source server, wherein the cache includes a plurality of partitions, each partition being configured to include information from a plurality of data source servers; and
synchronizing one or more partitions of said plurality of partitions with said data source server independently of other partitions of the plurality of partitions, wherein each partition of said one or more partitions contains at least a portion of mobile business object (MBO) metadata of a particular data-requesting mobile device;
reviewing a caching policy associated with said cache; and
changing the caching policy based on the reviewing, comprising:
assigning data in said cache to a coherence window, wherein the coherence window indicates whether the data has exired;
reviewing said coherence window when said data in said cache is accessed; and
updating data in said cache based on said coherence window, comprising:
updating a row in a cache table in said cache;
updating a timestamp associated with said row; and
updating a marker identifying the updating of the row in the cache table in said cache;
wherein said device, said mobile device, and said data source server are different devices.

### Claim 9 (depends on 8)

The article of manufacture of claim 8, said operations further comprising:
reviewing a caching policy associated with said cache
wherein said changing occurs based on the reviewing.

### Claim 10 (depends on 8)

The article of manufacture of claim 8, said changing comprising:
reviewing a pre-defined caching schedule
wherein said updating said data in said cache occurs based on said caching schedule.

### Claim 11 (depends on 8)

The article of manufacture of claim 8, said operations further comprising:
receiving an event notification
wherein said updating said data in said cache occurs based on said notification,
wherein said event notification is generated based on manipulation of data in said data source server.

### Claim 12 (depends on 8)

The article of manufacture of claim 8, said operations further comprising:
determining key-sorted contents of said cache;
determining key-sorted contents of said data source server;
comparing key-sorted contents of said cache and said data source server; and
determining modified contents of said cache.

### Claim 13 (depends on 8)

The article of manufacture of claim 8, said operations further comprising:
invoking a data request to said data source server; and
retrieving a plurality of data rows from said data source server.

### Claim 14 (depends on 1)

The method of claim 1, wherein each of the one or more partitions is dedicated to said mobile device.
