×

Consistent object renaming in distributed systems

  • US 9,449,008 B1
  • Filed: 03/31/2014
  • Issued: 09/20/2016
  • Est. Priority Date: 03/31/2014
  • Status: Active Grant
First Claim
Patent Images

1. A system, comprising:

  • one or more computing devices configured to;

    receive, at a metadata subsystem of a distributed multi-tenant file store service comprising a plurality of metadata nodes, a rename request to change a name of a particular file store object from a first name to a second name, wherein, corresponding to each of a plurality of file store objects, the metadata subsystem stores a node entry and a directory entry, wherein the node entry comprises a plurality of metadata fields associated with the corresponding file store object and the directory entry includes (a) a name of the file store object and (b) a pointer to the node entry;

    determine, based on deadlock avoidance analysis, that a first directory entry corresponding to the first name is to be locked as part of an initial atomic operation of a workflow sequence corresponding to the rename request, wherein the first directory entry comprises a pointer to a first node entry;

    attempt the initial atomic operation at a first metadata node of a plurality of metadata nodes of the metadata subsystem, wherein the first atomic operation comprises;

    (a) obtaining a lock on the first directory entry;

    (b) generating a workflow identifier corresponding to the workflow sequence, and (c) storing a record of an intent to rename the particular file store object, wherein the record indicates the workflow identifier;

    in response to a determination that the initial atomic operation succeeded, attempt a second atomic operation of the workflow sequence at a second metadata node of the plurality of metadata nodes responsible for storing a second directory entry associated with the second name, wherein the second atomic operation comprises;

    (a) verifying that the second directory entry is unlocked;

    (b) setting the second directory'"'"'s pointer to point to the first node entry; and

    (c) storing an indication that a pointer modification corresponding to the workflow identifier succeeded;

    in response to a determination that the second atomic operation succeeded, attempt a third set of operations of the workflow sequence, wherein the third set of operations comprises;

    (a) deleting the record of the intent;

    (b) deleting the lock on the first directory entry; and

    (c) deleting the first directory entry.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×