Mobile Data Caching with Partitioned Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Mobile applications often generate unpredictable data requests that can lead to an unexpected load on enterprise data sources, making it resource-intensive to service these requests efficiently while shielding the data sources from negative impacts.
Innovation Solution
Implementing a data caching system with cache synchronization, where each cache partition is associated with a mobile business object metadata of a distinct device, allowing for independent refresh of pertinent partitions to reduce data traffic and redundant requests on the data source, and employing caching policies like scheduled, on-demand, and row-level caching to manage data access efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If mobile applications directly access data sources to retrieve data, then data requests can be served quickly, but data sources are exposed to unpredictable load and resource consumption increases
Solution Approach 1:
A caching layer is introduced as an intermediary between mobile applications and data sources. The cache receives data requests from applications and serves data from local storage when available, only querying the data source when cache misses occur. This mediator architecture allows fast local response while shielding the data source from direct application traffic spikes.
Solution Approach 2:
The system performs preliminary data retrieval and storage in the cache before actual application requests occur. By proactively caching data that applications are likely to need, the system prepares data in advance, reducing the frequency and impact of direct requests to the data source while maintaining fast access speeds.
2Adaptability or versatility
If enterprise data is stored in disparate formats at geographically distributed locations, then data availability is improved, but data servicing becomes resource intensive
Solution Approach 1:
The caching system segments data into separate cache partitions, each associated with specific mobile business objects or data types. This segmentation allows the system to manage and serve data from distributed locations more efficiently by processing smaller, organized units rather than handling entire disparate data structures, reducing the resource intensity of data servicing while maintaining availability.
Solution Approach 2:
The caching layer provides a universal interface that abstracts the complexity of disparate data formats and geographically distributed locations. The cache serves multiple functions: it stores data from various sources, formats data consistently, and provides unified access to applications, thereby reducing the resource consumption required to service data from diverse locations.
3Reliability
If cache partitions are refreshed independently and concurrently, then data freshness is improved, but synchronization complexity increases
Solution Approach 1:
The cache is divided into independent partitions, each responsible for specific data or mobile business objects. Each partition can be refreshed independently and concurrently without interfering with other partitions. This segmentation simplifies synchronization by allowing parallel operations on isolated data units, maintaining data freshness while reducing overall synchronization complexity through divide-and-conquer.
Solution Approach 2:
The system implements dynamic refresh strategies where cache partitions are updated based on real-time needs and data change events. Rather than static synchronous updates, the system dynamically determines which partitions need refreshing and when, allowing concurrent operations while maintaining consistency. This dynamic approach balances data freshness requirements with synchronization complexity management.
Data Source
AI summary
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.


