×

Keymap service architecture for a distributed storage system

  • US 7,647,329 B1
  • Filed: 03/08/2006
  • Issued: 01/12/2010
  • Est. Priority Date: 12/29/2005
  • Status: Active Grant
First Claim
Patent Images

1. A system, comprising:

  • a plurality of computing nodes configured to implement;

    a plurality of storage nodes configured to store one or more replicas of each of a plurality of data objects, wherein each of said one or more replicas is accessible via a unique respective locator value, each node of the computing nodes comprising a processor and a memory; and

    a plurality of keymap instances each configured to store keymap entries corresponding respectively to said data objects, wherein a given one of said keymap entries corresponding to a given one of said plurality of data objects indicates a mapping from a given key value corresponding to said given data object to each said respective locator value of said one or more replicas of said given data object;

    wherein for said given data object, each of said plurality of keymap instances is configured to store a replica of said given keymap entry, such that said given keymap entry is replicated across said plurality of keymap instances;

    wherein each of said keymap instances is further configured to index its respective stored keymap entries within a respective index data structure;

    wherein each of said index data structures includes a respective plurality of index nodes arranged hierarchically and each index node having an associated tag value, wherein for each of said stored keymap entries, there exists a respective, uniquely corresponding one of said index nodes such that at most one keymap entry corresponds to any given one of said index nodes, and wherein at least some of the index data structures are unbalanced;

    wherein for each given one of the index nodes, each tag value associated with each ancestor of said given index node is a prefix of the key value that is associated with the given index node; and

    wherein a given one of said plurality of keymap instances selects a different one of said plurality of keymap instances at regular or irregular intervals and to at least partially synchronize said respective index data structures of said given keymap instance and said different keymap instance.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×