ReplCache Dynamic Replication Count for Cache Cluster Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current group communication protocols and data replication methods in cache clusters face challenges in balancing data availability and memory usage, as replicating data across all nodes significantly reduces available memory, and existing solutions like Memcached lack redundancy, leading to data loss when a node crashes.

Innovation Solution

ReplCache introduces a method for dynamic cache replication, where each data element is assigned a replication count based on consistent hashing, allowing for flexible replication across multiple nodes, enabling efficient data distribution and redundancy while optimizing memory usage by allowing developers to define the reliability of each data item.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If every node replicates all data to every other node in the cluster, then data availability and reliability are improved, but available memory is significantly reduced

Engineering Contradiction:
Improvedata availabilityVSAvoidavailable memory
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies local quality by making replication selective rather than universal. Each data element is assigned a specific replication count that determines how many copies exist in the cluster. This allows critical data to be replicated across multiple nodes for high availability, while less critical data remains on single nodes, optimizing the balance between reliability and memory utilization.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the parameter of replication from a binary state (replicated or not) to a configurable replication count. By allowing developers to define the replication count for each data element, the system can dynamically adjust the level of redundancy based on data importance, thereby improving reliability for critical data while conserving memory resources.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If data is replicated across multiple nodes, then redundancy and fault tolerance are improved, but memory usage increases

Engineering Contradiction:
Improvefault toleranceVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements partial replication by allowing data elements to be replicated to only the necessary number of nodes rather than all nodes in the cluster. The replication count parameter enables selective replication where only the minimum required redundancy is created to achieve the desired fault tolerance level, avoiding excessive memory consumption from full cluster-wide replication.

Inventive Principle:
Principle #16Partial or excessive action

3Quantity of substance

If Memcached is used for caching, then memory utilization is maximized, but data redundancy and fault tolerance are lost

Engineering Contradiction:
Improvememory utilizationVSAvoiddata redundancy
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent introduces dynamics by making the replication configuration flexible and adjustable. Unlike Memcached's static single-node storage, ReplCache allows the replication count to be dynamically set and modified for each data element based on its criticality. This enables the system to adapt memory allocation and redundancy levels in response to changing requirements, combining high memory utilization with configurable fault tolerance.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8914457B2Caching of nodes in cache cluster
Publication Date: 2014.12.16 RED HAT INC
  • US8914457B2 patent drawing
  • US8914457B2 patent drawing
  • US8914457B2 patent drawing

AI summary

A replication count of a data element of a node of a cache cluster is defined. The data element has a key-value pair where the node is selected based on a hash of the key and a size of the cache cluster. The data element is replicated to at least one other node of the cache cluster based on the replication count.