IP Library Granted Patent US 11,500,879
Granted Patent B2
US 11,500,879 · App. 17/121,653 · Granted Nov 15, 2022

Method, device, and program product for managing index of streaming data storage system

Inventors: Pengfei Su (Shanghai, CN); Lingling Yao (Shanghai, CN)
Assignee: EMC IP Holding Company LLC
G06F16/24568G06F16/2255G06F16/248G06F16/283
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,500,879
App. No.
17/121,653
Granted
Nov 15, 2022
Kind
B2
Abstract

An active layer of the index includes a first shard group, and shards in the first shard group are configured to store indexes of a part of data objects in a streaming storage system. In response to determining that the state of the first shard group meets a predetermined expansion condition, a second shard group is created in the index, and shards in the second shard group are configured to store indexes of data objects that will enter the storage system. The storage system is managed based on the shards in an active layer (where the second shard group is located) and frozen layers (where the second shard group) in the index. The number of shards in the storage system can be dynamically set to process streaming data at a relatively high speed, and it is suitable for processing streaming data that continuously enters the storage system.

Claims (78)

1. A method for managing a first index of a streaming data storage system, an active layer of the first index comprising a first shard group, first shards in the first shard group being configured to store second indexes of a part of first data objects in the streaming data storage system, the method comprising:

creating, by a system comprising a processor in response to determining that a state of the first shard group meets a defined expansion condition, a second shard group in the first index, wherein second shards in the second shard group are configured to store third indexes of second data objects that will enter the streaming data storage system, wherein the defined expansion condition is a condition selected from a group of conditions comprising:

a number of the second indexes stored in the first shard group being higher than a threshold number; and

a first speed of storing respective ones of the second indexes, corresponding to a plurality of the first data objects entering the streaming data storage system based on the first shard group, being lower than a second speed of the plurality of the first data objects entering the streaming data storage system;

marking, by the system, a first layer of the first index, where the second shard group is located, as the active layer;

marking, by the system, second layers of the first index, other than a second layer of the second layers where the second shard group is located, as frozen layers; and

managing, by the system, the streaming data storage system based on the second shards in the active layer and the first shards in the frozen layers.

2. The method according to claim 1 , wherein managing the streaming data storage system comprises:

in response to receiving an insert request for inserting a new data object, of the second data objects, into the streaming data storage system;

generating a third index, of the third indexes, for the new data object; and

storing the third index of the new data object to a second shard, of the second shard group and stored in the active layer, corresponding to the new data object.

3. The method according to claim 1 , wherein managing the streaming data storage system comprises:

in response to receiving an update request for updating a target data object in the streaming data storage system:

determining whether an index of the target data object is a third index, of the third indexes, stored to a second shard, of the second shard group and in the active layer; and

in response to determining that the index of the target data object is the third index:

updating the target data object, resulting in an updated data object; and

storing an updated index of the updated data object to the second shard.

4. The method according to claim 3 , further comprising:

forwarding, by the system in response to determining that the index of the target data object is not the third index, the update request to a frozen layer of the frozen layers; and

in response to determining that the index of the target data object is a second index, of the second indexes and stored to a first shard, of the first shard group and in the frozen layer:

updating, by the system, the target data object, resulting in the updated data object; and

storing, by the system, the updated index of the updated data object to the second shard in the active layer.

5. The method according to claim 4 , further comprising:

deleting, by the system, the index of the target data object from the first shard in the frozen layer.

6. The method according to claim 1 , wherein managing the streaming data storage system comprises:

in response to receiving an upsert request for updating and inserting a target data object in the streaming data storage system:

determining whether an index of the target data object is a third index, of the third indexes, stored to a second shard, of the second shard group and in the active layer; and

in response to determining that the index of the target data object is the third index:

updating the target data object, resulting in an updated data object; and

storing an updated index of the updated data object to the second shard.

7. The method according to claim 6 , further comprising:

forwarding, by the system in response to determining that the index of the target data object is not the third index stored in the active layer, the upsert request to a frozen layer of the frozen layers; and

storing, by the system in response to determining that the index of the target data object is not a second index, of the second indexes and stored in the frozen layer, the index of the target data object to the second shard in the active layer.

8. The method according to claim 7 , further comprising:

updating, by the system in response to determining that the index of the target data object is stored to a third shard, distinct from the second shard, of the second shard group and in the active layer, the target data object based on the upsert request, resulting in the updated data object; and

storing, by the system, the updated index of the updated data object to the third shard in the active layer.

9. The method according to claim 8 , further comprising:

deleting, by the system, the index of the target data object from the frozen layer.

10. The method according to claim 1 , wherein managing the streaming data storage system comprises:

in response to receiving a search request for searching a target data object in the streaming data storage system:

forwarding the search request to the active layer and a frozen layer of the frozen layers, respectively; and

providing search results from the active layer and the frozen layer.

11. The method according to claim 1 , wherein managing the streaming data storage system comprises:

in response to receiving a delete request for deleting a target data object from the streaming data storage system:

determining whether an index of the target data object is a third index, of the third indexes and stored to a second shard, of the second shard group and in the active layer; and

deleting, in response to determining that the index of the target data object is the third index, the index of the target data object from the second shard.

12. The method according to claim 11 , further comprising:

in response to determining that the index of the target data object is not the third index stored in the active layer, adding, by the system, the delete request to a delete queue of a frozen layer of the frozen layers to notify a first shard, of the first shard group and in the frozen layer, of the delete request.

13. The method according to claim 12 , further comprising:

deleting, by the system in response to determining that the index of the target data object is a second index, of the second indexes and stored to the first shard in the frozen layer, the index of the target data object from the first shard in the frozen layer.

14. The method according to claim 12 , wherein the delete request is a first delete request, and wherein the method further comprises:

searching, by the system in response to receiving an access request for the target data object, the first delete request associated with the target data object based on an update history of the delete queue, wherein the access request is of a type selected from a group of types comprising an update request, a second delete request, and a search request; and

providing, by the system in response to finding the delete request, a notification that the target data object has been deleted.

15. The method according to claim 1 , wherein the number of the second indexes stored in the first shard group is a first number, and wherein managing the streaming data storage system comprises:

combining shards in a layer, selected from a first group comprising the active layer and the frozen layers and in the first index, in response to a defined contraction condition selected from a group comprising:

the first number of indexes, selected from a second group comprising the second indexes and the third indexes and stored in the layer of the first index, being lower than the threshold number; and

the first speed of storing the respective ones of the second indexes, corresponding to the plurality of the first data objects entering the streaming data storage system based on the first shard group, being higher than the second speed of the plurality of the first data objects entering the streaming data storage system,

wherein a second number of shards of the layer before combination is an integer multiple of a third number of the shards in the layer after combination.

16. The method according to claim 15 , wherein the first index is associated with a layer group, comprising the active layer and at least one frozen layer of the frozen layers, and wherein managing the streaming data storage system comprises:

combining respective shards in the layer group in response to determining that a combined number, of the second indexes and the third indexes stored in the layer group, is lower than the threshold number.

17. The method according to claim 1 , wherein a first number of the second shards of the second shard group is an integer multiple of a second number of the first shards of the first shard group, and wherein the first shards in the first shard group are configured to store the second indexes of the part of the first data objects in the streaming data storage system based on a hash ring, and wherein the second indexes of the part of the first data objects comprise a reverse index.

18. An electronic device, comprising:

at least one processor;

a volatile memory; and

a memory coupled to the at least one processor, the memory having instructions stored therein, and the instructions, when executed by the at least one processor, causing the device to execute operations for managing a first index of a streaming data storage system, an active layer of the first index comprising a first shard group, first shards in the first shard group being configured to store second indexes of a part of first data objects in the streaming data storage system, the operations comprising:

creating, in response to determining that a state of the first shard group meets a defined expansion condition, a second shard group in the first index, wherein second shards in the second shard group are configured to store third indexes of second data objects that will enter the streaming data storage system, wherein the defined expansion condition is a condition selected from a group of conditions comprising:

a number of the second indexes stored in the first shard group being higher than a threshold number; and

a first speed of storing respective ones of the second indexes, corresponding to a plurality of the first data objects entering the streaming data storage system based on the first shard group, being lower than a second speed of the plurality of the first data objects entering the streaming data storage system;

marking a first layer of the first index, where the second shard group is located, as the active layer;

marking second layers of the first index, other than a second layer of the second layers where the second shard group is located, as frozen layers; and

managing the streaming data storage system based on the second shards in the active layer and the first shards in the frozen layers.

19. A non-transitory computer program product tangibly stored on a non-transitory computer-readable medium and containing machine-executable instructions that facilitate performance of operations for managing a first index of a streaming data storage system, an active layer of the first index comprising a first shard group, first shards in the first shard group being configured to store second indexes of a part of first data objects in the streaming data storage system, the operations comprising:

creating, in response to determining that a state of the first shard group satisfies a predetermined expansion condition, a second shard group in the first index, wherein second shards in the second shard group are configured to store third indexes of second data objects that will enter the streaming data storage system, wherein the predetermined expansion condition is a condition selected from a group of conditions comprising:

a number of the second indexes stored in the first shard group being higher than a threshold number; and

a first speed of storing respective ones of the second indexes, corresponding to a plurality of the first data objects entering the streaming data storage system based on the first shard group, being lower than a second speed of the plurality of the first data objects entering the streaming data storage system;

marking a first layer of the first index, where the second shard group is located, as the active layer;

marking second layers of the first index, other than a second layer of the second layers where the second shard group is located, as frozen layers; and

managing the streaming data storage system based on the second shards in the active layer and the first shards in the frozen layers.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2020
From: SU, PENGFEI; YAO, LINGLING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054643/0354 →
Priority Claims (1)
CN 202011149599.7 · Oct 23, 2020 · national
Continuity (1)
Related Publication 20220129468A1 · Apr 28, 2022
Cited By (1)
US 12,524,424