IP Library Granted Patent US 10,831,380
Granted Patent B2
US 10,831,380 · App. 15/103,890 · Granted Nov 10, 2020

System and method of collision management in a namespace of a storage system

Inventors: Benjamin Isherwood (Tewksbury, MA); Yury Kats (Belmont, MA)
Assignee: HITACHI VANTARA LLC
G06F3/0619G06F3/064G06F3/0689G06F12/0646G06F16/1844
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 10,831,380
App. No.
15/103,890
Granted
Nov 10, 2020
Kind
B2
Abstract

In a namespace distributed across storage devices, collisions of objects stored in the namespace can occur. To manage collisions, first, a collision flag is provided in system metadata of the objects, and second, a predetermined naming convention is applied to the pathnames of collided objects within the namespace. A winner object of a collision is stored with the pathname of the actual object (e.g., “/object”) in the namespace, and the loser object is stored with a pathname derived from the actual object (e.g., “/object.collision”) and the collision flag of the loser object is set to mark the loser object within the namespace. Accordingly, winners and losers of collisions in the namespace can be identified by searching system metadata for collision flags which indicate collision losers, and associated winners can be identified based on the pathname of the losers.

Claims (66)

1. A system comprising:

a plurality of storage devices; and

one or more processors coupled to the storage devices, and configured to:

logically partition storage space provided by the storage devices into a namespace which stores a plurality of objects each including data and metadata;

determine, from two objects of the plurality of objects which have collided in the namespace, a winner object and a loser object, and mark the loser object of the collision with a collision flag included in the metadata;

receive a query for collisions in the namespace; and

return, in response to receiving the query, the loser object based on the collision flag,

wherein the one or more processors coupled to the storage devices are further configured to:

set a new pathname for the loser object; and

clear, in response to setting the new pathname for the loser object, the collision flag included in the metadata of the loser object.

2. The system according to claim 1 , wherein the one or more processors coupled to the storage devices are further configured to:

modify a pathname of the winner object with which the loser object collided;

clear, in response to setting the new pathname for the loser object and modifying the pathname of the winner object, the collision flag included in the metadata of the loser object; and

mark, in response to clearing the collision flag included in the metadata of the loser object, the winner object of the collision with a collision flag included in the metadata of the winner object.

3. The system according to claim 1 , wherein the one or more processors coupled to the storage devices are further configured to:

determine the winner object and the loser object based on timestamps of the two objects which have collided, hash values of the two objects which have collided, or storage locations of the two objects which have collided.

4. The system according to claim 1 , wherein the one or more processors coupled to the storage devices are further configured to:

set the new pathname of the loser object to indicate a pathname of the winner object with which the loser object collided, and

identify the winner object based on the pathname of the loser object.

5. The system according to claim 1 , wherein the one or more processors coupled to the storage devices are further configured to:

set the new pathname of the loser object to indicate a pathname of the winner object with which the loser object collided, and

store the loser object and the winner object in a same directory of the namespace.

6. The system according to claim 1 , wherein the one or more processors coupled to the storage devices are further configured to:

set the new pathname of the loser object to indicate a pathname of the winner object with which the loser object collided, and

move the loser object into a predetermined directory of the namespace different from a directory of the winner object.

7. The system according to claim 1 , wherein the one or more processors coupled to the storage devices are further configured to:

return, in response to receiving the query, the loser object based on the collision flag and further return, in response to receiving the query, a pathname, a number of collisions, and a change time of the loser object.

8. The system according to claim 1 , wherein the one or more processors coupled to the storage devices are further configured to:

replicate the metadata of the loser object, including the collision flag, to other storage devices partitioned into the namespace.

9. A system comprising:

a plurality of storage devices; and

one or more processors coupled to the storage devices, and configured to:

logically partition storage space provided by the storage devices into a namespace which stores a plurality of objects each including data and metadata;

determine, from two objects of the plurality of objects which have collided in the namespace, a winner object and a loser object, and mark the loser object of the collision with a collision flag included in the metadata;

receive a query for collisions in the namespace; and

return, in response to receiving the query, the loser object based on the collision flag,

wherein the one or more processors coupled to the storage devices are further configured to:

modify the pathname of the loser object to indicate a pathname of the winner object with which the loser object collided, and

identify the winner object based on the pathname of the loser object.

10. The system according to claim 9 , wherein the one or more processors coupled to the storage devices are further configured to:

clear, in response to modifying the pathname for the loser object, the collision flag included in the metadata of the loser object.

11. The system according to claim 9 , wherein the one or more processors coupled to the storage devices are further configured to:

modify a pathname of the winner object with which the loser object collided;

clear, in response to modifying the pathname for the loser object and modifying the pathname of the winner object, the collision flag included in the metadata of the loser object; and

mark, in response to clearing the collision flag included in the metadata of the loser object, the winner object of the collision with a collision flag included in the metadata of the winner object.

12. The system according to claim 9 , wherein the one or more processors coupled to the storage devices are further configured to:

determine the winner object and the loser object based on timestamps of the two objects which have collided, hash values of the two objects which have collided, or storage locations of the two objects which have collided.

13. The system according to claim 9 , wherein the one or more processors coupled to the storage devices are further configured to:

store the loser object and the winner object in a same directory of the namespace.

14. The system according to claim 9 , wherein the one or more processors coupled to the storage devices are further configured to:

move the loser object into a predetermined directory of the namespace different from a directory of the winner object.

15. The system according to claim 9 , wherein the one or more processors coupled to the storage devices are further configured to:

return, in response to receiving the query, the loser object based on the collision flag and further return, in response to receiving the query, a pathname, a number of collisions, and a change time of the loser object.

16. The system according to claim 9 , wherein the one or more processors coupled to the storage devices are further configured to:

replicate the metadata of the loser object, including the collision flag, to other storage devices partitioned into the namespace.

17. A system comprising:

a plurality of storage devices; and

one or more processors coupled to the storage devices, and configured to:

logically partition storage space provided by the storage devices into a namespace which stores a plurality of objects each including data and metadata;

determine, from two objects of the plurality of objects which have collided in the namespace, a winner object and a loser object, and mark the loser object of the collision with a collision flag included in the metadata;

receive a query for collisions in the namespace; and

return, in response to receiving the query, the loser object based on the collision flag and further return, in response to receiving the query, a pathname, a number of collisions, and a change time of the loser object.

18. The system according to claim 17 , wherein the one or more processors coupled to the storage devices are further configured to:

determine the winner object and the loser object based on timestamps of the two objects which have collided, hash values of the two objects which have collided, or storage locations of the two objects which have collided.

19. The system according to claim 17 , wherein the one or more processors coupled to the storage devices are further configured to:

replicate the metadata of the loser object, including the collision flag, to other storage devices partitioned into the namespace.

Assignments (3)
MERGER Recorded Jan 28, 2020
From: HITACHI VANTARA CORPORATION
To: HITACHI VANTARA LLC
Reel/Frame 051719/0202 →
CHANGE OF NAME Recorded Feb 20, 2018
From: HITACHI DATA SYSTEMS CORPORATION
To: HITACHI VANTARA CORPORATION
Reel/Frame 045369/0785 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2016
From: ISHERWOOD, BENJAMIN; KATS, YURY
To: HITACHI DATA SYSTEMS CORPORATION
Reel/Frame 038892/0270 →
Continuity (1)
Related Publication 20160313934A1 · Oct 27, 2016