US 11,868,328 B2
Multi-record index structure for key-value stores
Jan-Ove Almli Karlberg, Oslo (NO); Helge Grenager Solheim, Oslo (NO); and Age Andre Kvalnes, Fetsund (NO)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Appl. No. 17/625,258
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
PCT Filed Jul. 16, 2020, PCT No. PCT/US2020/042408
§ 371(c)(1), (2) Date Jan. 6, 2022,
PCT Pub. No. WO2021/016050, PCT Pub. Date Jan. 28, 2021.
Claims priority of application No. 19187413 (EP), filed on Jul. 19, 2019.
Prior Publication US 2022/0253419 A1, Aug. 11, 2022
Int. Cl. G06F 16/00 (2019.01); G06F 16/22 (2019.01); G06F 16/28 (2019.01)
CPC G06F 16/2246 (2019.01) [G06F 16/285 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
maintaining a key-value store comprising multiple records, wherein each record comprises a respective key and a respective value mapped to the respective key, wherein each value is restricted to a maximum size limit in terms of quantity of data;
wherein the key-value store comprises a first record structure in which each key comprises a different index and each value comprises respective item IDs, and wherein the key-value store comprises a second record structure in which each key comprises a different one of the item IDs and each value comprises a respective item of data;
wherein said maintaining comprises adding new item IDs to a group in the first record structure;
wherein the new item IDs are added to a tree structure formed from records of the first record structure, comprising a root record at a root level and a plural number of records at a successive level;
wherein each new item ID of the group is added in turn by, starting at the root level with the root record as a current record:
I) determining whether the value of the current record will exceed the maximum size limit if the new item ID is included therein;
including the new item ID in the value of the current record based on the value of the current record not exceeding the maximum size limit;
II) identifying a number of records at the next successive level of the tree structure above the level of the current record based on the value of the current record exceeding the maximum size limit, and applying a deterministic transformation to the item ID of the new item to determine one of the identified number of records, and repeating from I) with said determined one of the records as the current record; and
wherein over the group, a respective item ID is added at least a first level above the root level via at least a first instance of II).