IP Library Granted Patent US 7,778,984
Granted Patent B2
US 7,778,984 · App. 10/993,536 · Granted Aug 17, 2010

System and method for a distributed object store

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 7,778,984
App. No.
10/993,536
Granted
Aug 17, 2010
Kind
B2
Abstract

An improved system and method for flexible object placement and soft-state indexing of objects in a distributed object store is provided. A distributed object store may be provided by a large number of system nodes operably coupled to a network. A system node provided may include an access module for communicating with a client, an index module for building an index of a replicated data object, a data module for storing a data object on a computer readable medium, and a membership and routing module for detecting the configuration of operable nodes in the distributed system. Upon failure of an index node, the failure may be detected at other nodes, including those nodes that store the replicas of the object. These nodes may then send new index rebuilding requests to a different node that may rebuild the index for servicing any access request to the object.

Claims (24)

1. A method in a distributed computer system capable of redundantly storing a plurality of data objects, the method for detecting an index failure and repairing the index, the method comprising:

storing a replicated data object on a computer storage medium;

building an index of a replicated data object in memory of a first system node;

a data node that has at least one object which is indexed by the first system node detecting that the first system node has failed;

a membership and routing layer detecting a failed node;

receiving notification of a changed configuration;

the membership and routing layer sending notification of the changed configuration to at least one live data node;

detecting a change in an availability of an index node for data objects stored by the live data node;

determining that a time period for propagation delay has expired and, upon determining the time period has expired, initiating data repair procedures;

upon determining the time period has expired, determining a new index node for each data object without a live index node;

a data node having at least one object indexed by the first system node determining, by using membership information of operable nodes in the new configuration, a second system node for rebuilding of the index for the replicated data object;

computing a responsible index node for maintaining index information for the replicated data object using the membership information;

sending an indexing request to the second system node for at least one object without a live index node;

rebuilding the index for the replicated data object; and

storing the rebuilt index in computer storage media corresponding to memory of a second system node.

2. The method of claim 1 further comprising sending an indexing request from a system node storing a replicated data object to the first system node, the indexing request including the location of the replicated data object.

3. The method of claim 1 further comprising receiving notification of a configuration of operable system nodes.

4. The method of claim 1 further comprising sending an indexing request to the second system node, the indexing request including the location of the replicated data object.

5. The method of claim 1 further comprising instantiating a state machine for indicating the state of rebuilding the index of the replicated data object, the state machine maintaining information indicating whether a required number of copies of the replicated data object have been indexed.

6. The method of claim 1 further comprising receiving notification of expiration of a timer indicating that fewer than the desired number of replicas are indexed.

7. The method of claim 1 further comprising determining the number of replicas needed for the replicated data object.

8. The method of claim 1 further comprising determining that all replicas needed for the replicated data object have been created upon receiving a number of notifications greater than or equal to the desired replication degree for the data object.

9. The method of claim 1 further comprising applying a policy to select the system nodes for storing replicas of the replicated data object.

10. The method of claim 1 further comprising sending a request to a subset of system nodes having copies of a data object to send replicas of the data object to other selected system nodes.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2005
From: ZHANG, ZHENG; CHEN, WEI; CHEN, YU; JIN, CHAO; TEODOSIU, DAN; LIAN, QIAO; LIN, SHIDING
To: MICROSOFT CORPORATION
Reel/Frame 015669/0138 →
SECURITY INTEREST Recorded Apr 5, 2004
From: INVENSYS SYSTEMS, INC.
To: DEUTSCHE BANK AG, LONDON
Reel/Frame 015279/0874 →