IP Library Granted Patent US 11,614,867
Granted Patent B2
US 11,614,867 · App. 16/293,098 · Granted Mar 28, 2023

Distributed storage system-based data processing method and storage device

Inventor: Yonggang Feng (Beijing, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F3/0619G06F3/06G06F3/064G06F3/067G06F3/0613G06F3/0643H04L67/1051H04L67/1097
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,614,867
App. No.
16/293,098
Granted
Mar 28, 2023
Kind
B2
Abstract

According to a distributed storage system-based data processing method and a storage device provided in the present disclosure, a storage node is selected as a primary storage node in a partition in the distributed storage system. During data reading, after receiving a read I/O request from an initiator, the primary storage node determines whether a target data object that the read I/O request requests to read on the primary storage node is trustworthy; and when the target data object is trustworthy, directly reads the target data object from the primary storage node and returns the target data object to the initiator of the read I/O request.

Claims (58)

1. A method of data processing in a distributed storage system, comprising:

receiving, by a primary storage node in a partition in the distributed storage system, a read input/output (I/O) request from an initiator for reading a target data object stored on the primary storage node located in the partition, wherein the partition comprises a plurality of storage nodes, and one of the plurality of the storage nodes is the primary storage node;

determining, by the primary storage node, whether the target data object stored on the primary storage node is trustworthy, wherein the determining whether the target object is trustworthy further comprises:

determining a status of the primary storage node, wherein the status of the primary storage node is a trusted status or an untrusted status,

when the status of the primary storage node is the untrusted status, obtaining a blacklist on the primary storage node and determining whether the blacklist is complete, wherein the blacklist stores a data object that fails to be written onto the primary storage node,

when the blacklist is complete, determining whether the blacklist comprises the target data object, and

determining that the target data object on the primary storage node is untrustworthy when the blacklist comprises the target data object, and that the target data

object on the primary storage node is trustworthy when the blacklist does not comprise the target data object; and

in response to determining that the target data object is trustworthy, reading the target data object stored on the primary storage node, and sending the target data object to the initiator.

2. The method of claim 1 , further comprising:

determining that the target data object stored on the primary storage node is trustworthy when the status of the primary storage node is the trusted status.

3. The method of claim 1 , further comprising:

determining that the target data object on the primary storage node is untrustworthy when the blacklist is incomplete.

4. The method of claim 1 , further comprising:

receiving, by the primary storage node, a primary storage node determining message comprising identification information of the primary storage node;

collecting an object degradation write log from the plurality of storage nodes in the partition when the primary storage node determining message indicates the primary storage node, and labeling the primary storage node with the untrusted status, wherein the object degradation write log records each of the plurality of storage nodes onto which a data object fails to be written, and is recorded on each of the plurality of storage nodes onto which the data object is successfully written;

selecting, from the object degradation write log, one or more data objects that fail to be written onto the primary storage node, to obtain the blacklist when the object degradation write log comprises a data object that fails to be written onto the primary storage node; and

labeling the primary storage node with the trusted status when the object degradation write log does not comprise a data object that fails to be written onto the primary storage node.

5. The method of claim 3 , wherein the determining of whether the blacklist is complete comprises:

obtaining, by the primary storage node, a status of the blacklist, wherein the blacklist is incomplete when the primary storage node collects the object degradation write log, and becomes complete after the object degradation write logs of the plurality of storage nodes are collected.

6. The method of claim 3 , wherein when the blacklist comprises a-the data object that fails to be written onto the primary storage node, the method further comprises:

sequentially reconstructing, by the primary storage node, the data object that is in the blacklist, and deleting, from the blacklist, a degradation write log entry corresponding to a successfully reconstructed data object; and

labeling the primary storage node with the trusted status after all data objects in the blacklist are successfully reconstructed.

7. A storage device, wherein the storage device is a primary storage node in a partition in a distributed storage system, and the partition comprises a plurality of storage nodes, the storage device comprising:

a communications interface configured to receive a read input/output (I/O) request from an initiator for reading a target data object stored on the primary storage node; and

a processor coupled to the communications interface and configured to perform operations comprising:

determining whether the target data object stored on the primary storage node is trustworthy, including:

determining a status of the primary storage node, wherein the status of the primary storage node is a trusted status or an untrusted status,

when the status of the primary storage node is the untrusted status, obtaining a blacklist on the primary storage node and determining whether the blacklist is complete, wherein the blacklist stores a data object that fails to be written onto the primary storage node,

determining whether the blacklist comprises the target data object when the blacklist is complete, and

determining that the target data object on the primary storage node is untrustworthy when the blacklist comprises the target data object, and that the target data object on the primary storage node is trustworthy when the blacklist does not comprise the target data object, and

in response to determining that the data object is trustworthy, reading only the target data object stored on the primary storage node, and sending the target data object to the initiator via the communications interface.

8. The storage device of claim 7 , wherein the operations further comprise:

determining that the target data object stored on the primary storage node is trustworthy when the status of the primary storage node is the trusted status.

9. The storage device of claim 7 , wherein the operations further comprise:

determining that the target data object on the primary storage node is untrustworthy when the blacklist is incomplete.

10. The storage device of claim 7 , wherein the operations further comprise:

receiving a primary storage node determining message comprising identification information of the primary storage node;

collecting an object degradation write log from each of the plurality of storage nodes in the partition when the primary storage node determining message indicates that the primary storage node, and label the primary storage node with the untrusted status, wherein the object degradation write log records each of the plurality of storage nodes onto which a data object fails to be written, and is recorded on each of the plurality of storage nodes onto which the data object is successfully written;

seleting, from the object degradation write log, one or more data objects that fail to be written onto the primary storage node, to obtain the blacklist when the object degradation write log comprises a data object that fails to be written onto the primary storage node; and

labeling the primary storage node with the trusted status when the object degradation write log does not comprise a data object that fails to be written onto the primary storage node.

11. The storage device of claim 9 , wherein the operations further comprise:

obtaining a status of the blacklist, wherein the blacklist is incomplete when the primary storage node collects an object degradation write log, and becomes complete after the object degradation write logs of the plurality of storage nodes in the partition are collected.

12. The storage device of claim 9 , wherein the operations further comprise:

sequentially reconstructing the data object that is in the blacklist, and delete, from the blacklist, a degradation write log corresponding to a successfully reconstructed data object; and

labelling the primary storage node with the trusted status after all data objects in the blacklist are successfully reconstructed.

13. A non-transitory computer readable medium storing program instructions, when, when executed by one or more processors, cause the one or more processors to perform operations of data processing in a distributed storage system, the operations comprising:

receiving, by a primary storage node located in a partition in the distributed storage system, a read input/output (I/O) request from an initiator for reading a target data object stored on the primary storage node, wherein the partition comprises a plurality of storage nodes, and one of the plurality of the storage nodes is the primary storage node;

determining, by the primary storage node, whether the target data object stored on the primary storage node is trustworthy, wherein the determining whether the target object is trustworthy further comprises:

determining a status of the primary storage node, wherein the status of the primary storage node is a trusted status or an untrusted status,

when the status of the primary storage node is the untrusted status, obtaining a blacklist on the primary storage node and determining whether the blacklist is complete, wherein the blacklist stores a data object that fails to be written onto the primary storage node,

when the blacklist is complete, determining whether the blacklist comprises the target data object, and

determining that the target data object on the primary storage node is untrustworthy when the blacklist comprises the target data object, and that the target data object on the primary storage node is trustworthy when the blacklist does not comprise the target data object; and

in response to determining that the target data object is trustworthy, reading only the target data object stored on the primary storage node, and sending the target data object to the initiator.

14. The non-transitory computer readable medium of claim 13 , the operations further comprising:

determining that the target data object stored on the primary storage node is trustworthy when the status of the primary storage node is the trusted status.

15. The non-transitory computer readable medium of claim 13 , the operations further comprising:

determining that the target data object on the primary storage node is untrustworthy when the blacklist is incomplete.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2020
From: FENG, YONGGANG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 051904/0250 →
Priority Claims (1)
CN 201610807454.9 · Sep 5, 2016 · national
Continuity (2)
Continuation PCTCN2017081339 · Apr 21, 2017
Related Publication 20190196728A1 · Jun 27, 2019
Cited By (1)
US 12,613,636