Version Cache Replication Log for Consistent Horizontal Scaling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network applications face challenges in ensuring data consistency across multiple concurrent users while caching data sets, leading to reduced computing performance.
Innovation Solution
Implementing a system with versioned caches (VCs) that are horizontally scaled based on demand, synchronized with a persistent replication log, and employ conflict resolution to maintain data consistency, using algorithms like MRSW to manage read and write operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is cached in a lightweight storage device closer to application logic, then computing performance is improved, but data consistency across multiple concurrent users deteriorates
Solution Approach 1:
The system segments the caching system into multiple independent version cache instances distributed across different compute nodes. Each cache instance handles a portion of the data or user requests, allowing parallel processing while maintaining individual consistency through version control mechanisms. This segmentation enables both improved performance through distribution and maintained consistency through isolated version management.
Solution Approach 2:
The patent introduces a replication log as an intermediary component that mediates between write operations and cache synchronization. The replication log captures write operations and distributes them to appropriate cache instances, ensuring consistency across distributed caches without blocking performance. This intermediary layer resolves the conflict between fast local caching and consistent data distribution.
2Reliability
If techniques are used to ensure all users view the same data, then data consistency is improved, but computing performance deteriorates
Solution Approach 1:
The system dynamically manages cache instances and their synchronization based on workload demands. Cache instances are created, scaled, and terminated dynamically rather than maintaining a fixed synchronized cache structure. This dynamic approach allows the system to provide consistency only when and where needed, rather than continuously synchronizing all caches, thus maintaining performance while ensuring data consistency.
Solution Approach 2:
The patent changes the parameter of cache synchronization from continuous to event-driven based on version changes. Instead of maintaining constant synchronization between all cache instances, the system only synchronizes when version changes occur, recorded in the replication log. This parameter change from continuous to discrete synchronization events maintains consistency while dramatically improving computing performance.
3Productivity
If version caches are horizontally scaled based on demand, then computing performance is improved, but system complexity increases
Solution Approach 1:
The system implements universal cache instances that can serve multiple purposes: caching data, tracking versions, and handling both read and write operations. Each cache instance is designed to be multi-functional, reducing the need for specialized components. This universality simplifies the overall system architecture while enabling horizontal scaling, as the same cache instance type can be replicated and distributed across multiple nodes to handle increased demand.
Data Source
AI summary
Techniques for providing horizontally scaled caching of versioned data are provided. In some aspects, the techniques described herein relate to a method including initializing a first version cache (VC) object based on a version of data stored in a data storage device; replicating the first VC to generate a second VC; receiving a write operation at the first VC; generating a delta for the write operation, the delta representing a change in the version of data; writing the delta to a persistent replication log, the persistent replication log storing an ordered set of deltas including the delta; writing data in the write operation to the data storage device; and applying the ordered set of deltas at the second VC to update data stored by the second VC.


