Non blocking rehashing
AssigneeRed Hat, Inc.
InventorManik Surtani
Life of this patent
Estimating the term…
Abstract
An apparatus and a method operating on data at a server node of a data grid system with distributed cache is described. A coordinator receives a request to change a topology of a cache cluster from a first group of cache nodes to a second group of cache nodes. The request includes a cache node joining or leaving the first group. A key for the second group is rehashed without blocking access to the first group while rehashing.
Claims20
A computer-implemented method comprising:
- receiving a request to change a topology of a cache cluster from a first group of cache nodes to a second group of cache nodes at a coordinator of a computer system, the request including a cache node joining or leaving the first group;
- and
- rehashing a key for the second group without blocking access to the first group while rehashing.
A non-transitory computer-readable storage medium, having instructions stored therein, which when executed, cause a computer system to perform a method comprising:
- receiving a request to change a topology of a cache cluster from a first group of cache nodes to a second group of cache nodes at a coordinator of a computer system, the request including a cache node joining or leaving the first group;
- and
- rehashing a key for the second group without blocking access to the first group while rehashing.
A computer system comprising:
- a memory comprising a network of cache nodes;
- a processor coupled to the memory, the processor configured to operate on data from the network of cache nodes, the processor comprising a rehash module and a coordinator module, the rehash module comprising a join module and a leave module;
- and
- a storage device coupled to the processor, the storage device configured to store a topology of the cache nodes with corresponding keys.
The computer system of 19 wherein the leave module is configured to temporarily store a copy of an old version of a consistent hash key, to determine if a cache node in the first group is affected by the leaving cache node, to loop through all states to see if it included a cache node from the list of leaving cache nodes, to determine whether it is the current node's responsibility to rehash for an entry, and to push a state map to the affected cache nodes.
Dependencies are inferred from the claim text.