US 11,741,081 B2
Method and system for data handling
Fredrik Persson, Stockholm (SE)
Assigned to KING.COM LIMITED, St. Julian's (MT)
Filed by KING.COM LIMITED, St. Julians (MT)
Filed on Jan. 25, 2019, as Appl. No. 16/257,458.
Prior Publication US 2020/0242104 A1, Jul. 30, 2020
Int. Cl. G06F 16/23 (2019.01); H04L 67/1097 (2022.01); G06F 7/58 (2006.01); G06F 16/27 (2019.01); H04L 9/06 (2006.01)
CPC G06F 16/2379 (2019.01) [G06F 7/582 (2013.01); G06F 16/2315 (2019.01); G06F 16/278 (2019.01); H04L 9/0643 (2013.01); H04L 67/1097 (2013.01)] 14 Claims
OG exemplary drawing
 
1. A control module configured to manage and control transferring data between a first shard and at least one destination shard within a database comprising a plurality of shards, the control module comprising at least one processor and at least one memory including a computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the control module at least to:
generate a first distribution of data collections across a plurality of available shards, the one or more available shards including the first shard, the first distribution of data collections defining in which shard a respective data collection is located, wherein the data collections are distributed across the one or more available shards using a first hash wheel distribution which maps a value identifying a respective data collection to a respective shard, the first hash wheel constructed from an integer number of occurrences of one or more available shards of the plurality of shards including the first shard, wherein the first distribution represents a current distribution of data collections;
generate a further distribution of data collections across a plurality of available shards, the one or more available shards including the one or more destination shards, the further distribution of data collections defining in which shard a respective data collection is located, wherein the data collections are distributed across the one or more available shards using a further hash wheel distribution which maps a value identifying a respective data collection to a respective shard, the further hash wheel distribution providing updated shard allocations, the further hash wheel constructed from an integer number of occurrences of one or more available shards of the plurality of shards, including one or more of the destination shards, wherein the further distribution represents an update to the current distribution of data collections;
determine a difference between the first hash wheel distribution of shard allocations and the further hash wheel distribution of shard allocations, the difference providing at least one range of hash values associated with data to be transferred between the first shard and the at least one destination shard; and
select and control the transfer of data associated with the determined at least one range of hash values, which are determined based on the difference between the first hash wheel distribution of shard allocations and the further hash wheel distribution of shard allocations between the first shard and the at least one destination shard.