Distributed Cache Management in Cloud Computing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud-based computing environments face challenges in managing distributed services to ensure scalable, flexible, and efficient storage and compute operations, leading to inadequate client performance and increased costs due to high latency and management overhead.
Innovation Solution
A distributed cache system is implemented in a cloud-based distributed computing environment, using consistent-hashing techniques to map data across multiple cache instances, with a data processing layer service that manages metadata and data blocks, ensuring efficient access and reducing latency by caching frequently accessed data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If cloud-based storage solutions are implemented to simplify management, then management overhead is reduced, but access latency increases and performance deteriorates
Solution Approach 1:
The system segments storage operations by separating metadata management from data block storage. Metadata is cached locally in the file system while data blocks are stored in cloud-based object storage, allowing frequent metadata accesses to occur locally without cloud round-trips, thus reducing latency while maintaining simplified cloud-based management.
Solution Approach 2:
A hybrid caching layer is introduced as an intermediary between the cloud storage system and the client. This cache stores frequently accessed data blocks and metadata locally, mediating between cloud-based storage management and local access performance requirements, thereby reducing access latency while preserving cloud management simplicity.
2Loss of time
If distributed cache instances are added to reduce latency, then data access performance improves, but system complexity increases
Solution Approach 1:
The patent merges the metadata cache and data block cache into a unified hybrid caching system. Both types of data are cached using consistent hashing techniques with a single cache mapping, eliminating the need for separate cache management systems and reducing overall system complexity while maintaining low latency performance.
Solution Approach 2:
The cache system is designed to handle both metadata and data blocks universally using the same caching mechanism and consistent hashing algorithm. This multi-functional approach simplifies cache management by providing a single unified system rather than separate specialized caches, reducing complexity while improving performance.
3Productivity
If cloud-based computing capabilities are increased to improve performance, then client performance improves, but costs increase
Solution Approach 1:
The system performs preliminary actions by caching frequently accessed metadata and data blocks locally before cloud access is required. This pre-caching strategy reduces the need for expensive cloud-based data retrieval operations, improving client performance while reducing cloud computing costs by minimizing actual cloud access frequency.
Solution Approach 2:
The patent changes the parameter of data location from exclusively cloud-based to a hybrid local-cloud distribution. By adjusting where data is stored (local cache vs. cloud storage) based on access frequency, the system optimizes the balance between performance and cost, reducing expensive cloud operations for frequently accessed data.
Data Source
AI summary
The disclosed embodiments disclose techniques for managing a distributed cache in a cloud-based distributed computing environment (CBDCE). During operation, an instance of a data processing layer service (DPL) receives a data request from a client that specifies an address and an operation for a target data block. The DPL instance uses these to determine a first cache instance of the distributed cache that is assigned to cache a metadata entry that links the address with a data block fingerprint for the target data block. The DPL instance then uses the data block fingerprint and the cache mapping to determine a second cache instance that is assigned to store the target data block, and then accesses the second cache instance to complete the operation for the target data block.


