WO2015043305A1 - Metadata processing method and metadata server - Google Patents

Metadata processing method and metadata server Download PDF

Info

Publication number
WO2015043305A1
WO2015043305A1 PCT/CN2014/083065 CN2014083065W WO2015043305A1 WO 2015043305 A1 WO2015043305 A1 WO 2015043305A1 CN 2014083065 W CN2014083065 W CN 2014083065W WO 2015043305 A1 WO2015043305 A1 WO 2015043305A1
Authority
WO
WIPO (PCT)
Prior art keywords
request
operation request
category
queue
metadata
Prior art date
Application number
PCT/CN2014/083065
Other languages
French (fr)
Chinese (zh)
Inventor
谢晓芹
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2015043305A1 publication Critical patent/WO2015043305A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Definitions

  • Embodiments of the present invention relate to communication technologies, and in particular, to a metadata processing method and a metadata server.
  • a distributed file system is a file system based on a client/server model.
  • the system includes a client and a metadata server. Metadata and metadata information are stored in the metadata server.
  • the client When the client needs to manipulate the file, it must first query the metadata information of the file from the metadata server, access the metadata server according to the metadata information, and perform operations, and then send the processed metadata information to the metadata server after the operation.
  • the concurrent modification operation of a certain metadata is performed serially.
  • the metadata server caches multiple modification operations that arrive at the same time to the loop operation queue, and stores and writes the modified data corresponding to the last operation in the queue, thereby to a certain extent Improve data access efficiency.
  • the above technical solution is only a concurrent modification operation for the overlay attribute of the same metadata, such as the time of last modification of the file or directory (mt ime ), the time of the last access to the file or directory (at ime ), etc. .
  • the processing of the metadata includes modification of the extended attribute of the same metadata, such as an access control list (Aces s Control L ist , ACL ) entry. Add, delete, etc., and in the same In the directory, concurrently create multiple metadata operations, multiple concurrent modification operations on multiple metadata in the same directory, etc. At this time, only serial execution mode can be used, resulting in long response time and completion in unit time.
  • Embodiments of the present invention provide a metadata processing method and a metadata server to improve processing efficiency of metadata.
  • the first aspect of the present invention provides a metadata processing method, including: buffering, by a plurality of clients, at least one operation request for the same directory to a request queue; determining whether the lock of the directory is authorized; The lock is authorized to traverse each operation request in the request queue, returning a return result of each operation request; processing metadata corresponding to the at least one operation request according to each of the returned results .
  • if the lock is authorized, traversing each operation request in the request queue, and returning a return result of each operation request includes: For each operation request, determining a category of the operation request, the category includes: a first category, a second category, and a third category, where the first category includes a read operation on the metadata, the second The category includes a new operation, a modification operation, and a deletion operation on the metadata, and the third category includes a movement operation on the metadata, a new link operation, and a delete link operation; and returning the operation request according to the category to which the operation request belongs Corresponding return results.
  • the returning result corresponding to the operation request is returned according to a category to which the operation request belongs,
  • the method includes: if the operation request belongs to the first category, returning the operation request as a return result of the read request.
  • the returning result corresponding to the operation request is returned according to a category to which the operation request belongs,
  • the method includes: if the operation request belongs to the second category, determining whether the operation request is legal for the operation of the metadata; if not, returning the operation request as a return result of the error request; otherwise, if legal, Determining whether there is an operation request of the third category in the merge queue, where the merge queue includes an operation request corresponding to the mergeable return result; if the operation request of the third category exists in the merge queue, returning to the The operation request is a return result of the mutual exclusion request; otherwise, if the operation request of the third category does not exist in the merge queue, the operation request of the second category is added to the merge queue, Metadata of the second category of operation request operations is added to the buffered data queue, and the operation request is returned as a mergeable request Results.
  • the returning result corresponding to the operation request is returned according to a category to which the operation request belongs,
  • the method includes: if the operation request belongs to the third category, determining whether the operation request is legal for the operation of the metadata; if not, returning the operation request as a return result of the error request; otherwise, if legal, Determining whether there is an operation request of the second category in the merge queue, or an operation request of the third category, where the merge queue includes an operation request corresponding to the mergeable return result; if the merge queue exists The operation request of the second category, or the operation request of the third category, returns the return result of the operation request as a mutual exclusion request; Otherwise, if the operation request of the second category does not exist in the merge queue, and the operation request of the third category does not exist, the operation request of the third category is added to the merge queue.
  • the metadata of the third category of operation request operations is added to the buffered data queue, and the result of the operation is returned as a result of the mergeable request.
  • the performing, according to each of the returning results performing metadata corresponding to the at least one operation request Processing, comprising: moving the operation request out of the request queue; the port responds to the operation request.
  • the metadata corresponding to the at least one operation request including: moving the operation request out of the request queue; and responding to the operation request.
  • a seventh possible implementation manner of the first aspect if the operation request is returned as a return result of the mutual exclusion request, And processing, according to each of the returned results, the metadata corresponding to the at least one operation request, including: saving the operation request in the request queue.
  • an eighth possible implementation manner of the first aspect Processing, by the metadata corresponding to the operation request, the metadata in the buffered data queue is sent to the storage node, so that the storage node writes the metadata to obtain a transaction result; And according to the result of the transaction, the corresponding client sends an operation port response to the operation request in the merge queue.
  • the requesting, by the transaction result, the corresponding client to the operation in the merge queue After sending an action response it also includes:
  • the embodiment of the present invention provides a metadata server, including: a request queue module, configured to cache at least one operation request for the same directory sent by multiple clients to a request queue; Determining whether the lock of the directory is authorized; the merge decision module, configured to: if the directory lock module determines that the lock is authorized, traverse each operation request in the request queue, and return each operation request The result of the return; the request processing module is configured to process the metadata corresponding to the at least one operation request according to each of the returned results.
  • the merging decision module determines, for each operation request, a category of the operation request, where the category includes: a first category, a second category, and a third a category, where the first category includes a read operation on the metadata, the second category includes a new operation, a modify operation, and a delete operation on the metadata, and the third category includes a move operation on the metadata, and a new
  • the link operation and the delete link operation return a return result corresponding to the operation request according to the category to which the operation request belongs.
  • the merge decision module is configured to: if the operation request belongs to the first category, return the operation request as a return result of the read request.
  • the merging decision module is configured to: if the operation request belongs to the second category, Determining whether the operation request is legal for the operation of the metadata, and if it is determined that the operation request is invalid for the operation of the metadata, returning the operation request as a return result of the error request; otherwise, if the operation request is determined If the operation of the metadata is legal, it is determined whether there is an operation request of the third category in the merge queue, where the merge queue includes an operation request corresponding to the mergeable return result, and if it is determined that the The operation request of the three categories returns the return result of the operation request as a mutual exclusion request;
  • the request processing module is configured to add the operation request of the second category to the merge queue, where the The metadata of the two types of operation request operations is added to the buffer data queue, and the merge decision module is configured to return the return result of the operation request as a mergeable request.
  • the merging decision module is configured to: if the operation request belongs to the third category, Determining whether the operation request is legal for the operation of the metadata, and if it is determined that the operation request is invalid for the operation of the metadata, returning the operation request as a return result of the error request; otherwise, if the operation request is determined If the operation of the metadata is legal, it is determined whether the operation request of the second category exists in the merge queue, or the operation request of the third category, the merge queue includes an operation request corresponding to the mergeable return result; Determining that the operation request of the second category exists in the merge queue, or the operation request of the third category returns a return result of the operation request as a mutual exclusion request; otherwise, if the operation queue is in the merge queue There is no operation request of the second category, and if there is no operation request of the third category, the third category is Be added to the combined request queue The metadata of the operation request operation of the third category is added to
  • the request processing module is configured to remove the operation request from the request queue, and The operation request should be as described.
  • the request processing module is configured to remove the operation request from the request Queue, and respond to the operation request.
  • the request processing module is configured to save the operation request in the In the request queue.
  • the request processing module is configured to: The metadata in the data queue is sent to the storage node, so that the storage node writes the metadata to obtain a transaction result;
  • the metadata server further includes a sending module, configured to send an operation response to the corresponding client in the operation queue in the merge queue according to the transaction result.
  • the directory lock module is further configured to determine whether an operation request still exists in the request queue
  • the merge decision module is further configured to: if the directory lock module determines that an operation request still exists in the request queue, traverse each operation request in the request queue, and return a return result of each operation request ;
  • the request processing module is further configured to: if the directory lock module determines that the request queue does not exist Upon operation of the request, the lock is released.
  • Multiple concurrent operation requests in the same directory such as a new operation, a delete operation, a modification operation, etc., first acquire a lock of the directory, and if the lock is authorized, perform a directory level merge on the operation requests sent by multiple clients, thereby Improve the efficiency of processing metadata.
  • Embodiment 1 is a flowchart of Embodiment 1 of a metadata processing method according to the present invention
  • FIG. 2A is a schematic diagram of a main process 1 of MDS processing in a metadata processing method according to the present invention
  • FIG. 2B is a schematic diagram of a sub-process 2 in the metadata processing method of the present invention
  • FIG. 2C is a schematic diagram of a sub-process 3 in the metadata processing method of the present invention
  • FIG. 3 is a schematic structural diagram of a first embodiment of the metadata server according to the present invention
  • FIG. 1 is a flowchart of Embodiment 1 of a metadata processing method according to the present invention.
  • the execution subject of this embodiment is a metadata server. Specifically, the embodiment includes the following steps: 101. Cache at least one operation request sent by multiple clients to the same directory to the request queue.
  • the distributed file system includes a plurality of metadata servers (Metadata Servers, MDS), and all metadata is assigned to the specified metadata server according to the metadata identifier of its home directory to ensure metadata under the directory, for example
  • MDS Metadata Servers
  • the operation of subdirectory items (including directories and files, etc.) is handled by the MDS, facilitating the consolidation of directory-level metadata operations.
  • multiple clients (CLIENT) send an operation request, and the metadata identifier of the metadata home directory operated by the case operation request caches at least one operation request of the same directory to the request queue.
  • the directory is /mountfs/2013, and its metadata identifier is dirFIDl.
  • the existing files in this directory include:
  • the metadata identifier of the directory fileOOl is FID1;
  • the metadata identifier of the directory f i le003 is FID3;
  • the metadata of the directory f i le004 is FID4.
  • the above existing files can be expressed as ⁇ dirFID existing metadata ⁇ according to the metadata identifier.
  • the operation requests belonging to /mountfs/2013 are processed by the metadata server corresponding to the directory whose metadata identifier is dirFIDl, that is, the operation requests of multiple clients concurrently arrive at the request queue of the metadata server.
  • CLIENT1 create (dirFID, newfile005 ), which means that the new file newf ile005 is in the /mountf s/2013 directory;
  • unlink (dirFID, newfileOOl), which means to delete the file fileOOl in the /mountf s/2013 directory
  • unl ink ( di rFID, newf i le002 ), which means to delete the file fi le002 in the /mountf s/2013 directory;
  • CLIENT5. setat tr ( FID3 , f i le003 , Add ACL ), indicating to /mountfs/2013/f i le003 , adding ACL; CLIENT6. setat tr ( FID3 , f i le004 , Remove ACL ), indicating pair
  • the metadata server corresponding to the directory determines whether the lock of the directory is authorized, and performs subsequent processing according to the result of the lock authorization. If the lock of the directory is not authorized, the metadata corresponding to the operation request is not processed; otherwise, if the lock corresponding to the directory is authorized, step 103 is performed.
  • the metadata server can determine whether the lock of the directory is authorized. For details, refer to the related art, and details are not described herein. It should be noted that the execution of 101 and 102 above is not strictly sequential.
  • the lock is authorized, traverse each operation request in the request queue, and return the return result of each operation request. If the metadata server determines that the lock of the directory has been authorized, it traverses each operation request in the request queue, returns a return result of each operation request according to a preset rule, etc., and the return result indicates processing of the operation request by the metadata server This way, for example, moves the operation request out of the request queue, continues to be saved in the request queue, responds to the operation request, and so on.
  • the metadata server processes the metadata corresponding to each operation request according to the return result corresponding to each operation request. For example, if the result of the return is to move the operation request out of the request queue, then If the operation request is a read request, the client that sends the read request responds, and if the operation request is an error request, the response to the client that sent the operation request fails, and continues to traverse the request queue; if the returned result is mergeable, The operation request is added to the merge queue, and the metadata corresponding to the operation request in the merge queue is added to the buffer data queue, so that after the request queue is traversed, the merged metadata in the buffer data queue is submitted to the storage at one time.
  • the node writes the disk.
  • the metadata server requests multiple concurrent operations in the same directory, such as a new operation, a delete operation, a modification operation, etc., first acquires a lock of the directory, and if the lock is authorized, Operation requests sent by multiple clients are merged at the directory level, thereby improving the efficiency of processing metadata.
  • 2A is a schematic diagram of a main process 1 of MDS processing in the metadata processing method of the present invention.
  • main process 1-MDS processing main process The execution subject of this embodiment is a metadata server. Specifically, the embodiment includes the following steps:
  • the metadata server caches at least one operation request to the request queue. For a certain directory, such as di rFID, after the specified metadata server receives the operation request of the multiple clients for the directory, the operation request is cached to the request queue of the directory, for example, ⁇ dirFID request queue ⁇ , if the subsequent continues Upon receiving an operation request for the directory dirFID, the operation requests are further cached to the ⁇ dirFID request queue ⁇ .
  • the metadata server acquires a lock of the directory and determines whether the lock is authorized.
  • the metadata server corresponding to the directory determines whether the lock of the directory is authorized. If the lock is not authorized, execute 203; otherwise, if the lock is authorized, execute 204.
  • the metadata server determines that the lock is not authorized, it waits for processing.
  • this step includes the following optional sub-steps (not shown in the figure):
  • the operation request corresponding to the returned result is moved out of the ⁇ dirFID request queue ⁇ , and if the operation request is hit in the cache of the metadata server, the client that initiated the operation request is directly Respond; otherwise, if it does not, then the storage node responds to the client after reading the operation request, and continues to traverse the ⁇ di rFID request queue ⁇ .
  • the originating client of the operation request corresponding to the returned result responds with an error and continues to traverse the ⁇ di rFID request queue ⁇ .
  • the result of the mergeable return If the returned result is mergeable (REQ_ IS_MERGED ), the operation request corresponding to the returned result is added to the merge queue, for example, ⁇ di rFID merge queue ⁇ , and the metadata operated by the operation request is added to the buffer data queue. Medium, such as ⁇ dirFID buffered data queue ⁇ , continues to traverse ⁇ dirFID request queue ⁇ .
  • the metadata operated by the operation request is, for example, new metadata, deleted original data, modified metadata, and the like.
  • step 2054 the result of mutual exclusion. If the result of the return is mutual exclusion (REQ_IS_MUTEXED), the operation request corresponding to the returned result is saved in the ⁇ di rFID request queue ⁇ , the loop is exited, and step 205 is executed.
  • traversal is completed.
  • the metadata server determines whether to traverse the ⁇ dirFID request queue ⁇ , if it has not been traversed, then Continue the loop; otherwise, if the traversal is completed, exit the loop and go to step 205.
  • the metadata server sends the data in the buffered data queue to the storage node at one time, so that the storage node guarantees the atomicity of multiple metadata writes through the transaction mechanism, waiting for the transaction result.
  • the metadata server determines whether an operation request still exists in the request queue.
  • the metadata server continues to check the ⁇ dirFID request queue ⁇ , and if there are still operation requests waiting in the ⁇ dirFID request queue ⁇ , it returns 204; otherwise, it executes 209.
  • the operation request for the metadata may be classified into the following three categories, the first category: a read operation on the metadata; the second category: a new operation, a modification operation, and a deletion operation on the metadata; : the operation operation of the metadata, the new link operation, and the deletion, wherein the operation request of the first category and the operation request of the second category are mutually exclusive, that is, the operation of the first category in the process of traversing the ⁇ di rFID request team ⁇ W
  • the request if the second category of operation request already exists in the ⁇ di rFID merge queue ⁇ , does not add the operation request currently being traversed to the ⁇ dirFID merge queue ⁇ , but returns the return result of the mutual exclusion request (REQ_IS_MERGED) Similarly, if the operation request currently traversed belongs to the second category, and the operation request of the first category or the second category already exists in the ⁇ dirFID merge queue ⁇ , the operation request is not taken.
  • the second category of operation requests that were
  • FIG. 2B is a schematic diagram of sub-process 2 in the metadata processing method of the present invention, that is, a schematic diagram of [sub-process 2-request merge sub-process]. Referring to FIG. 2B, the embodiment includes the following steps:
  • this step includes the following optional sub-steps:
  • the legality judging process for the operation request belonging to the second category can be referred to. Specifically, if it is not legal, the operation result is returned as an error request (REQ_IS_ERROR); if it is legal, it is determined whether there is an operation request belonging to the third category in the ⁇ dirFID merge queue ⁇ .
  • the operation result is returned as a result of the mutual exclusion request (REQ_IS_MUTEXED); otherwise, if ⁇ dirFID merge team ⁇ 'There is no operation request belonging to the third category, then the traversal operation request belonging to the second category is added to the ⁇ di rFID merge queue ⁇ , and the metadata corresponding to the operation request is added to the ⁇ di rFID buffers the data queue ⁇ and returns the result of the operation as a result of the mergeable request (REQ_ IS_MERGED).
  • ⁇ dirFID merge queue ⁇ ' J ⁇ and ⁇ di rFID buffer data queue ⁇ 'J ⁇ are both Empty, that is, there is no operation request belonging to the second category in ⁇ dirFID merge queue ⁇ .
  • the current operation request is added to the ⁇ dirFID merge queue ⁇ , and the metadata of its operation is added to the ⁇ dirFID buffer data queue.
  • return the result of the operation as a result of the mergeable request (REQ_ IS_MERGED ), continue to traverse.
  • the operation request traversed subsequently belongs to the third category is returned as a return result of the mutual exclusion request (REQ-IS-MERGED); otherwise, if the traversed operation request belongs to the second category, the operation request is continuously added. Go to ⁇ dirFID merge queue ⁇ and continue the process.
  • the operation result is returned as an error request (REQ_IS_ERROR); if it is legal, it is determined whether there is an operation request belonging to the second category or the third category in the ⁇ dirFID merge queue ⁇ . If there is an operation request belonging to the second category or the third category in the ⁇ dirFID merge queue ⁇ , the return operation request is a return result of the mutual exclusion request (REQ-IS-MUTEXED), otherwise, if the ⁇ dirFID merge queue ⁇ does not exist, The operation request of the second category or the third category adds the current operation request to the ⁇ dirFID merge queue ⁇ , adds the metadata of its operation to the ⁇ dirFID buffer data queue ⁇ ' J ⁇ , and returns the operation request.
  • REQ_IS_ERROR if it is not legal, it is determined whether there is an operation request belonging to the second category or the third category in the ⁇ dirFID merge queue ⁇ . If there is an operation request belonging to the second category or the third category in the ⁇ dirFID merge queue ⁇ , the return
  • FIG. 2A illustrates the present invention from the perspective of [main process 1-MDS processing main process]
  • FIG. 2B is from [sub-process 2 - request merge sub-process]
  • FIG. 2C is a schematic diagram of sub-process 3 in the metadata processing method of the present invention, that is, a schematic diagram of [sub-process 3 - request legality judging sub-process].
  • the embodiment includes the following steps:
  • this step may include:
  • this step may include:
  • a request for a move operation such as a rename request, matching the renamed directory entry corresponding to the operation request with a list of directory entry names in ⁇ dirFID existing metadata ⁇ , determining whether the original, ie, the old name exists, If it exists, it returns legal; otherwise, if it does not exist, it returns illegal.
  • FIG. 3 is a schematic structural diagram of Embodiment 1 of a metadata server according to the present invention.
  • the number of elements provided in this embodiment According to a server, it is possible to implement the various steps of the method applied to the metadata server provided by any of the embodiments of the present invention.
  • the metadata server 100 provided in this embodiment specifically includes: a request queue module 11 configured to cache at least one operation request for the same directory sent by the multiple clients to the request queue; the directory lock module 12 is configured to determine Whether the lock of the directory is authorized; the merge decision module 13 is configured to: if the directory lock module 12 determines that the lock is authorized, traverse each operation request in the request queue, return a return result of each operation request; request processing module 14 And for processing metadata corresponding to the at least one operation request according to each returned result.
  • a request queue module 11 configured to cache at least one operation request for the same directory sent by the multiple clients to the request queue
  • the directory lock module 12 is configured to determine Whether the lock of the directory is authorized
  • the merge decision module 13 is configured to: if the directory lock module 12 determines that the lock is authorized, traverse each operation request in the request queue, return a return result of each operation request
  • request processing module 14 And for processing metadata corresponding to the at least one operation request according to each returned result.
  • the metadata server provided by the embodiment of the present invention acquires the lock of the directory by using multiple concurrent operation requests in the same directory, such as a new operation, a delete operation, a modification operation, etc., and if the lock is authorized, the multiple clients are The operation request sent by the terminal performs directory level merging, thereby improving the processing efficiency of the metadata.
  • the merge decision module 13 determines, for each operation request, a category of the operation request, the category includes: a first category, a second category, and a third category, wherein the first category includes a read operation on the metadata, The second category includes a new operation, a modification operation, and a deletion operation on the metadata, and the third category includes a movement operation on the metadata, a new link operation, and a delete link operation, and returns a return result corresponding to the operation request according to the category to which the operation request belongs. Further, the merge decision module 13 is configured to return an operation request as a return result of the read request if the operation request belongs to the first category.
  • the merge decision module 13 is configured to determine, if the operation request belongs to the second category, whether the operation request is legal for the operation of the metadata, and if it is determined that the operation request is invalid for the operation of the metadata, the operation request is returned as an error. The result of the request is returned; otherwise, if it is determined that the operation request is legal for the operation of the metadata, it is determined whether the merge queue is stored.
  • the merge queue includes an operation request corresponding to the mergeable return result, and if it is determined that the operation request of the third category exists in the merge queue, the return operation request is a return result of the mutual exclusion request; otherwise, if it is determined that there is no operation request of the third category in the merge queue, the request processing module is requested.
  • the merge decision module 13 is configured to return the operation request as the mergeable request. Returns the result. Further, the merge decision module 13 is configured to determine, if the operation request belongs to the third category, whether the operation of the operation request is legal, and if it is determined that the operation request is invalid for the operation of the metadata, the operation request is returned as an error. If the operation request determines that the operation of the metadata is legal, then it is determined whether there is a second category of operation request in the merge queue, or the third category of operation request, and the merge queue includes the mergeable return result.
  • Corresponding operation request if it is determined that there is an operation request of the second category in the merge queue, or an operation request of the third category, the operation request is returned as a return result of the mutual exclusion request; otherwise, if there is no second in the merge queue
  • the result of the return operation is the result of the mergeable request.
  • the request processing module 14 is configured to move the operation request out of the request queue and respond to the operation request.
  • the request processing module 14 is configured to move the operation request out of the request queue and respond to the operation request.
  • the request processing module 14 is configured to save the operation request in the request queue. Further, the request processing module 14 is configured to send the metadata in the buffered data queue to the storage node, so that the storage node writes the metadata to obtain the transaction result, and requests the operation in the merge queue according to the transaction result. The corresponding client sends an action response. Further, the directory lock module 12 is further configured to determine whether an operation request still exists in the request queue. The merge decision module 13 is further configured to: if the directory lock module 12 determines that an operation request still exists in the request queue, traverse the request queue. Each operation request returns a return result of each operation request; the request processing module 14 is further configured to release the lock if the directory lock module 12 determines that there is no operation request in the request queue.
  • the metadata server 200 of this embodiment includes: a memory 21 and a processor 22; a memory 21, code for storing a metadata processing method; and a processor 22 for using the code stored in the memory 21, At least one operation request sent by the multiple clients to the same directory is cached to the request queue; determining whether the lock of the directory is authorized; if the lock is authorized, traversing each operation request in the request queue, returning the return of each operation request Result: processing metadata corresponding to the at least one operation request according to each returned result.
  • the processor 22 is configured to determine, if the lock of the directory is authorized, a category of the operation request for each operation request, the category includes: a first category, a second category, and a third category, where the first category Including the reading operation on the metadata, the second category includes a new operation, a modification operation, and a deletion operation on the metadata, and the third category includes a movement operation on the metadata, a new link operation, and a delete link operation; according to the category to which the operation request belongs , returns the result returned by the operation request.
  • the processor 22 is configured to: if the operation request belongs to the first category, return an operation request as a return result of the read request.
  • the processor 22 is configured to: if the operation request belongs to the second category, determine whether the operation request is legal for the operation of the metadata, and if not, return the operation request as a return result of the error request; Then, if it is legal, it is determined whether there is an operation request of the third category in the merge queue, and the merge queue includes an operation request corresponding to the mergeable return result; if there is an operation request of the third category in the merge queue, the operation request is returned as mutual The result of the request is rejected; otherwise, if there is no operation request of the third category in the merge queue, the operation request of the second category is added to the merge queue, and the metadata of the operation request operation of the second category is added to the buffer.
  • the processor 22 is configured to: if the operation request belongs to the third category, determine whether the operation request is legal for the operation of the metadata; if not, return the operation request as a return result of the error request; otherwise, if legal, Determining whether there is a second category of operation request in the merge queue, or an operation request of the third category, the merge queue includes an operation request corresponding to the mergeable return result; if there is a second category of operation request in the merge queue, or The third category of operation request returns the operation request as the return result of the mutual exclusion request; otherwise, if there is no operation request of the second category in the merge queue, and there is no operation request of the third category, the third category is The operation request is added to the merge queue, the metadata of the operation operation of the third category is added to the buffer data queue, and the result of the operation is returned as a result of the mergeable request.
  • the processor 22 is configured to move the operation request out of the request queue and respond to the operation request.
  • the processor 22 is configured to: if it is not legal, return the operation request as a return result of the error request, then move the operation request out of the request queue, and respond to the operation request.
  • the processor 22 saves the operation request in the request queue if the return operation request is a return result of the mutual exclusion request.
  • the processor 22 is configured to send the metadata in the buffered data queue to the storage node, so that the storage node writes the metadata to obtain a transaction result, and requests the operation in the merge queue according to the transaction result.
  • the corresponding client sends an action response.
  • the processor 22 is configured to determine whether an operation request still exists in the request queue; if yes, traverse each operation request in the request queue, and return a return knot of each operation request If not, if it does not exist, release the lock.
  • the aforementioned program can be stored in a computer readable storage medium. When the program is executed, the steps including the foregoing method embodiments are performed; and the foregoing storage medium includes: various media that can store program codes, such as ROM, RAM, disk or optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Embodiments of the present invention provide a metadata processing method and a metadata server. The method comprises: caching at least one operation request for the same catalog sent by a plurality of clients to a request queue, determining whether a lock of the catalog is authorized, traversing each operation request in the request queue if the lock is authorized, returning a returning result of each operation request, and processing metadata corresponding to the at least one operation request according to each returning result. In the procedure, for a plurality of concurrent operation requests under the same catalog, such as a creation operation, a deletion operation and a modification operation, the metadata server first obtains the lock of the catalog and combines, at the catalog level, the operation requests sent by the plurality of clients if the lock is authorized, so that the efficiency of processing metadata is improved.

Description

元数据处理方法及元数据服务器 本申请要求于 2013年 9月 30日提交中国专利局、申请号 201310464137. 8、 发明名称为 "元数据处理方法及元数据服务器" 的中国专利申请的优先权, 其 全部内容通过引用结合在本申请中。  The present invention claims the priority of the Chinese patent application entitled "metadata processing method and metadata server", which is filed on September 30, 2013 by the Chinese Patent Office, application number 201310464137. The entire contents of this application are incorporated herein by reference.
技术领域 本发明实施例涉及通信技术, 尤其涉及一种元数据处理方法及元数据服务 器。 TECHNICAL FIELD Embodiments of the present invention relate to communication technologies, and in particular, to a metadata processing method and a metadata server.
背景技术 Background technique
分布式文件系统是一种基于客户机 /服务器模式的文件系统, 该系统包括 客户端和元数据服务器, 元数据和元数据信息都存放在元数据服务器。 客户端 需要操作文件时, 必须先从元数据服务器上查询该文件的元数据信息, 根据元 数据信息访问元数据服务器并进行操作,操作完后将操作后的元数据信息发送 给元数据服务器。 目前, 对某个元数据的并发修改操作是串行执行的, 例如, 当一个客户端的写操作 A获得了某个元数据 X的写锁时, 此时若有多个客户端 的写操作 {Bi}向元数据服务器发送该元数据 X的写锁请求,那么该些写操作 {Bi: 由于不会被授权而处于等待状态。 对于客户端来说, 长时间处于等待状态, 很 大程度上影响了数据访问效率。 现有技术中, 为提高修改元数据的效率, 元数据服务器将同时到达的多个 修改操作緩存至循环操作队列,对队列中最后一个操作对应的修改数据进行存 储写盘, 从而在一定程度上提高了数据访问效率。 然而, 上述技术方案仅是对同一个元数据的覆盖型属性并发修改操作, 覆 盖型属性例如最后一次修改文件或目录的时间 (mt ime )、 最后一次访问文件或 目录的时间 (a t ime )等。 但是, 元数据的处理除了对同一个元数据的覆盖型 属性的并发修改操作外, 还包括对同一个元数据的扩展属性的修改, 例如访问 控制列表 ( Acces s Control L i s t , ACL )条目的增加、 删除等, 以及在同一个 目录下并发新建多个元数据的操作、对同一个目录下的多个元数据的多并发修 改操作等, 此时, 只能釆用串行执行的方式, 导致响应时间长, 单位时间内完 成的操作请求少, 并发度不高, 处理效率低。 发明内容 本发明实施例提供一种元数据处理方法及元数据服务器, 以提高对元数据 的处理效率。 第一个方面, 本发明实施例提供一种元数据处理方法, 包括: 将多个客户端发送的对同一目录的至少一个操作请求緩存至请求队列; 判断所述目录的锁是否被授权; 若所述锁被授权, 则遍历所述请求队列中的每个操作请求, 返回每一所述 操作请求的返回结果; 根据各所述返回结果, 对所述至少一个操作请求对应的元数据进行处理。 在第一个方面的第一种可能的实现方式中, 所述若所述锁被授权, 则遍历 所述请求队列中的每个操作请求, 返回每一所述操作请求的返回结果, 包括: 对于每一个操作请求, 判断所述操作请求的类别, 所述类别包括: 第一类 别、 第二类别和第三类别, 其中, 所述第一类别包括对元数据的读操作, 所述 第二类别包括对元数据的新建操作、 修改操作和删除操作, 所述第三类别包括 对元数据的移动操作、 新建链接操作和删除链接操作; 根据所述操作请求所属的类别, 返回所述操作请求对应的返回结果。 结合第一个方面的第一种可能的实现方式,在第一个方面的第二种可能的 实现方式中, 所述根据所述操作请求所属的类别, 返回所述操作请求对应的返 回结果, 包括: 若所述操作请求属于所述第一类别, 则返回所述操作请求为读请求的返回 结果。 结合第一个方面的第一种可能的实现方式,在第一个方面的第三种可能的 实现方式中, 所述根据所述操作请求所属的类别, 返回所述操作请求对应的返 回结果, 包括: 若所述操作请求属于所述第二类别 , 则判断所述操作请求对元数据的操作 是否合法; 若不合法, 则返回所述操作请求为错误请求的返回结果; 否则, 若合法, 则判断合并队列中是否存在所述第三类别的操作请求, 所 述合并队列包括可合并的返回结果对应的操作请求; 若所述合并队列中存在所述第三类别的操作请求, 则返回所述操作请求为 互斥请求的返回结果; 否则, 若所述合并队列中不存在所述第三类别的操作请求, 则将所述第二 类别的操作请求加入到所述合并队列中,将所述第二类别的操作请求操作的元 数据加入到緩冲数据队列中, 并返回所述操作请求为可合并请求的返回结果。 结合第一个方面的第一种可能的实现方式,在第一个方面的第四种可能的 实现方式中, 所述根据所述操作请求所属的类别, 返回所述操作请求对应的返 回结果, 包括: 若所述操作请求属于所述第三类别 , 则判断所述操作请求对元数据的操作 是否合法; 若不合法, 则返回所述操作请求为错误请求的返回结果; 否则, 若合法, 则判断合并队列中是否存在所述第二类别的操作请求, 或 者, 所述第三类别的操作请求, 所述合并队列包括可合并的返回结果对应的操 作请求; 若所述合并队列中存在所述第二类别的操作请求, 或者, 所述第三类别的 操作请求, 则返回所述操作请求为互斥请求的返回结果; 否则, 若所述合并队列中不存在所述第二类别的操作请求, 并且, 不存在 所述第三类别的操作请求, 则将所述第三类别的操作请求加入到所述合并队列 中, 将所述第三类别的操作请求操作的元数据加入到緩冲数据队列中, 并返回 所述操作结果为可合并请求的返回结果。 结合第一个方面的第二种可能的实现方式,在第一个方面的第五种可能的 实现方式中, 所述根据各所述返回结果, 对所述至少一个操作请求对应的元数 据进行处理, 包括: 将所述操作请求移出所述请求队列; 口向应所述操作请求。 结合第一个方面的第三种或第四种可能的实现方式,在第一个方面的第六 种可能的实现方式中, 若不合法, 返回所述操作请求为错误请求的返回结果, 则所述根据各所述返回结果, 对所述至少一个操作请求对应的元数据进行处 理, 包括: 将所述操作请求移出所述请求队列; 口向应所述操作请求。 结合第一个方面的第三种或第四种可能的实现方式,在第一个方面的第七 种可能的实现方式中, 若返回所述操作请求为互斥请求的返回结果, 则所述根 据各所述返回结果, 对所述至少一个操作请求对应的元数据进行处理, 包括: 将所述操作请求保存在所述请求队列中。 结合第一个方面的第三种、 第四种或第七种可能的实现方式, 在第一个方 面的第八种可能的实现方式中, 所述根据各所述返回结果, 对所述至少一个操 作请求对应的元数据进行处理, 包括: 将所述緩冲数据队列中的元数据发送给存储节点, 以使所述存储节点对所 述元数据进行写入以得到事务结果; 根据所述事务结果, 向所述合并队列中的操作请求对应的客户端发送操作 口向应。 结合第一个方面的第八种可能的实现方式,在第一个方面的第九种可能的 实现方式中, 所述根据所述事务结果, 向所述合并队列中的操作请求对应的客 户端发送操作响应之后, 还包括: A distributed file system is a file system based on a client/server model. The system includes a client and a metadata server. Metadata and metadata information are stored in the metadata server. When the client needs to manipulate the file, it must first query the metadata information of the file from the metadata server, access the metadata server according to the metadata information, and perform operations, and then send the processed metadata information to the metadata server after the operation. At present, the concurrent modification operation of a certain metadata is performed serially. For example, when a client's write operation A obtains a write lock of a certain metadata X, if there are multiple client write operations at this time {Bi } Sending a write lock request for the metadata X to the metadata server, then the write operations {Bi: are in a wait state because they are not authorized. For the client, waiting for a long time has greatly affected the efficiency of data access. In the prior art, in order to improve the efficiency of modifying metadata, the metadata server caches multiple modification operations that arrive at the same time to the loop operation queue, and stores and writes the modified data corresponding to the last operation in the queue, thereby to a certain extent Improve data access efficiency. However, the above technical solution is only a concurrent modification operation for the overlay attribute of the same metadata, such as the time of last modification of the file or directory (mt ime ), the time of the last access to the file or directory (at ime ), etc. . However, in addition to the concurrent modification of the overlay attribute of the same metadata, the processing of the metadata includes modification of the extended attribute of the same metadata, such as an access control list (Aces s Control L ist , ACL ) entry. Add, delete, etc., and in the same In the directory, concurrently create multiple metadata operations, multiple concurrent modification operations on multiple metadata in the same directory, etc. At this time, only serial execution mode can be used, resulting in long response time and completion in unit time. The operation request is small, the degree of concurrency is not high, and the processing efficiency is low. SUMMARY OF THE INVENTION Embodiments of the present invention provide a metadata processing method and a metadata server to improve processing efficiency of metadata. The first aspect of the present invention provides a metadata processing method, including: buffering, by a plurality of clients, at least one operation request for the same directory to a request queue; determining whether the lock of the directory is authorized; The lock is authorized to traverse each operation request in the request queue, returning a return result of each operation request; processing metadata corresponding to the at least one operation request according to each of the returned results . In a first possible implementation manner of the first aspect, if the lock is authorized, traversing each operation request in the request queue, and returning a return result of each operation request, includes: For each operation request, determining a category of the operation request, the category includes: a first category, a second category, and a third category, where the first category includes a read operation on the metadata, the second The category includes a new operation, a modification operation, and a deletion operation on the metadata, and the third category includes a movement operation on the metadata, a new link operation, and a delete link operation; and returning the operation request according to the category to which the operation request belongs Corresponding return results. With reference to the first possible implementation manner of the first aspect, in a second possible implementation manner of the first aspect, the returning result corresponding to the operation request is returned according to a category to which the operation request belongs, The method includes: if the operation request belongs to the first category, returning the operation request as a return result of the read request. With reference to the first possible implementation manner of the first aspect, in a third possible implementation manner of the first aspect, the returning result corresponding to the operation request is returned according to a category to which the operation request belongs, The method includes: if the operation request belongs to the second category, determining whether the operation request is legal for the operation of the metadata; if not, returning the operation request as a return result of the error request; otherwise, if legal, Determining whether there is an operation request of the third category in the merge queue, where the merge queue includes an operation request corresponding to the mergeable return result; if the operation request of the third category exists in the merge queue, returning to the The operation request is a return result of the mutual exclusion request; otherwise, if the operation request of the third category does not exist in the merge queue, the operation request of the second category is added to the merge queue, Metadata of the second category of operation request operations is added to the buffered data queue, and the operation request is returned as a mergeable request Results. With reference to the first possible implementation manner of the first aspect, in a fourth possible implementation manner of the first aspect, the returning result corresponding to the operation request is returned according to a category to which the operation request belongs, The method includes: if the operation request belongs to the third category, determining whether the operation request is legal for the operation of the metadata; if not, returning the operation request as a return result of the error request; otherwise, if legal, Determining whether there is an operation request of the second category in the merge queue, or an operation request of the third category, where the merge queue includes an operation request corresponding to the mergeable return result; if the merge queue exists The operation request of the second category, or the operation request of the third category, returns the return result of the operation request as a mutual exclusion request; Otherwise, if the operation request of the second category does not exist in the merge queue, and the operation request of the third category does not exist, the operation request of the third category is added to the merge queue. The metadata of the third category of operation request operations is added to the buffered data queue, and the result of the operation is returned as a result of the mergeable request. With reference to the second possible implementation manner of the first aspect, in a fifth possible implementation manner of the first aspect, the performing, according to each of the returning results, performing metadata corresponding to the at least one operation request Processing, comprising: moving the operation request out of the request queue; the port responds to the operation request. In conjunction with the third or fourth possible implementation of the first aspect, in a sixth possible implementation manner of the first aspect, if the operation request is returned as an error request, And processing, according to each of the returned results, the metadata corresponding to the at least one operation request, including: moving the operation request out of the request queue; and responding to the operation request. With reference to the third or fourth possible implementation of the first aspect, in a seventh possible implementation manner of the first aspect, if the operation request is returned as a return result of the mutual exclusion request, And processing, according to each of the returned results, the metadata corresponding to the at least one operation request, including: saving the operation request in the request queue. With reference to the third, fourth or seventh possible implementation of the first aspect, in an eighth possible implementation manner of the first aspect, Processing, by the metadata corresponding to the operation request, the metadata in the buffered data queue is sent to the storage node, so that the storage node writes the metadata to obtain a transaction result; And according to the result of the transaction, the corresponding client sends an operation port response to the operation request in the merge queue. In conjunction with the eighth possible implementation of the first aspect, in a ninth possible implementation manner of the first aspect, the requesting, by the transaction result, the corresponding client to the operation in the merge queue After sending an action response, it also includes:
判断所述请求队列中是否还存在操作请求; 若存在, 则遍历所述请求队列中的每个操作请求, 返回每一所述操作请求 的返回结果; 否则, 若不存在, 则释放所述锁。 第二个方面, 本发明实施例提供一种元数据服务器, 包括: 请求队列模块, 用于将多个客户端发送的对同一目录的至少一个操作请求 緩存至请求队列; 目录锁模块, 用于判断所述目录的锁是否被授权; 合并判决模块, 用于若所述目录锁模块判断出所述锁被授权, 则遍历所述 请求队列中的每个操作请求, 返回每一所述操作请求的返回结果; 请求处理模块, 用于根据各所述返回结果, 对所述至少一个操作请求对应 的元数据进行处理。  Determining whether there is still an operation request in the request queue; if present, traversing each operation request in the request queue, returning a return result of each operation request; otherwise, if not, releasing the lock . In a second aspect, the embodiment of the present invention provides a metadata server, including: a request queue module, configured to cache at least one operation request for the same directory sent by multiple clients to a request queue; Determining whether the lock of the directory is authorized; the merge decision module, configured to: if the directory lock module determines that the lock is authorized, traverse each operation request in the request queue, and return each operation request The result of the return; the request processing module is configured to process the metadata corresponding to the at least one operation request according to each of the returned results.
在第二个方面的第一种可能的实现方式中, 所述合并判决模块, 对于每一 个操作请求, 判断所述操作请求的类别, 所述类别包括: 第一类别、 第二类别 和第三类别, 其中, 所述第一类别包括对元数据的读操作, 所述第二类别包括 对元数据的新建操作、 修改操作和删除操作, 所述第三类别包括对元数据的移 动操作、 新建链接操作和删除链接操作, 根据所述操作请求所属的类别, 返回 所述操作请求对应的返回结果。  In a first possible implementation manner of the second aspect, the merging decision module determines, for each operation request, a category of the operation request, where the category includes: a first category, a second category, and a third a category, where the first category includes a read operation on the metadata, the second category includes a new operation, a modify operation, and a delete operation on the metadata, and the third category includes a move operation on the metadata, and a new The link operation and the delete link operation return a return result corresponding to the operation request according to the category to which the operation request belongs.
结合第二个方面的第一种可能的实现方式,在第二个方面的第二种可能的 实现方式中, 所述合并判决模块, 用于若所述操作请求属于所述第一类别, 则 返回所述操作请求为读请求的返回结果。 Combining the first possible implementation of the second aspect, the second possible aspect of the second aspect In an implementation manner, the merge decision module is configured to: if the operation request belongs to the first category, return the operation request as a return result of the read request.
结合第二个方面的第一种可能的实现方式,在第二个方面的第三种可能的 实现方式中, 所述合并判决模块, 用于若所述操作请求属于所述第二类别, 则 判断所述操作请求对元数据的操作是否合法, 若判断出所述操作请求对元数据 的操作不合法, 则返回所述操作请求为错误请求的返回结果; 否则, 若判断出所述操作请求对元数据的操作合法, 则判断合并队列中是 否存在所述第三类别的操作请求, 所述合并队列包括可合并的返回结果对应的 操作请求, 若判断出所述合并队列中存在所述第三类别的操作请求, 则返回所 述操作请求为互斥请求的返回结果;  With reference to the first possible implementation of the second aspect, in a third possible implementation manner of the second aspect, the merging decision module is configured to: if the operation request belongs to the second category, Determining whether the operation request is legal for the operation of the metadata, and if it is determined that the operation request is invalid for the operation of the metadata, returning the operation request as a return result of the error request; otherwise, if the operation request is determined If the operation of the metadata is legal, it is determined whether there is an operation request of the third category in the merge queue, where the merge queue includes an operation request corresponding to the mergeable return result, and if it is determined that the The operation request of the three categories returns the return result of the operation request as a mutual exclusion request;
否则, 若判断出所述合并队列中不存在所述第三类别的操作请求, 则所述 请求处理模块用于将所述第二类别的操作请求加入到所述合并队列中,将所述 第二类别的操作请求操作的元数据加入到緩冲数据队列中, 所述合并判决模块 用于返回所述操作请求为可合并请求的返回结果。  Otherwise, if it is determined that the operation request of the third category does not exist in the merge queue, the request processing module is configured to add the operation request of the second category to the merge queue, where the The metadata of the two types of operation request operations is added to the buffer data queue, and the merge decision module is configured to return the return result of the operation request as a mergeable request.
结合第二个方面的第一种可能的实现方式,在第二个方面的第四种可能的 实现方式中, 所述合并判决模块, 用于若所述操作请求属于所述第三类别, 则 判断所述操作请求对元数据的操作是否合法, 若判断出所述操作请求对元数据 的操作不合法, 则返回所述操作请求为错误请求的返回结果; 否则, 若判断出所述操作请求对元数据的操作合法, 则判断合并队列中是 否存在所述第二类别的操作请求, 或者, 所述第三类别的操作请求, 所述合并 队列包括可合并的返回结果对应的操作请求; 若判断出所述合并队列中存在所述第二类别的操作请求, 或者, 所述第三 类别的操作请求, 则返回所述操作请求为互斥请求的返回结果; 否则, 若所述合并队列中不存在所述第二类别的操作请求, 并且, 不存在 所述第三类别的操作请求, 则将所述第三类别的操作请求加入到所述合并队列 中, 将所述第三类别的操作请求操作的元数据加入到緩冲数据队列中, 并返回 所述操作结果为可合并请求的返回结果。 With reference to the first possible implementation of the second aspect, in a fourth possible implementation manner of the second aspect, the merging decision module is configured to: if the operation request belongs to the third category, Determining whether the operation request is legal for the operation of the metadata, and if it is determined that the operation request is invalid for the operation of the metadata, returning the operation request as a return result of the error request; otherwise, if the operation request is determined If the operation of the metadata is legal, it is determined whether the operation request of the second category exists in the merge queue, or the operation request of the third category, the merge queue includes an operation request corresponding to the mergeable return result; Determining that the operation request of the second category exists in the merge queue, or the operation request of the third category returns a return result of the operation request as a mutual exclusion request; otherwise, if the operation queue is in the merge queue There is no operation request of the second category, and if there is no operation request of the third category, the third category is Be added to the combined request queue The metadata of the operation request operation of the third category is added to the buffer data queue, and the result of the operation is returned as a result of the mergeable request.
结合第二个方面的第二种可能的实现方式,在第二个方面的第五种可能的 实现方式中, 所述请求处理模块, 用于将所述操作请求移出所述请求队列, 并 口向应所述操作请求。  With reference to the second possible implementation of the second aspect, in a fifth possible implementation manner of the second aspect, the request processing module is configured to remove the operation request from the request queue, and The operation request should be as described.
结合第二个方面的第三种或第四种可能的实现方式,在第二个方面的第六 种可能的实现方式中, 所述请求处理模块, 用于将所述操作请求移出所述请求 队列, 并响应所述操作请求。  With reference to the third or fourth possible implementation of the second aspect, in a sixth possible implementation of the second aspect, the request processing module is configured to remove the operation request from the request Queue, and respond to the operation request.
结合第二个方面的第三种或第四种可能的实现方式,在第二个方面的第七 种可能的实现方式中, 所述请求处理模块, 用于将所述操作请求保存在所述请 求队列中。  In conjunction with the third or fourth possible implementation of the second aspect, in a seventh possible implementation of the second aspect, the request processing module is configured to save the operation request in the In the request queue.
结合第二个方面的第三种、 第四种或第七种可能的实现方式, 在第二个方 面的第八种可能的实现方式中, 所述请求处理模块, 用于将所述緩冲数据队列 中的元数据发送给存储节点, 以使所述存储节点对所述元数据进行写入以得到 事务结果;  In conjunction with the third, fourth, or seventh possible implementation of the second aspect, in an eighth possible implementation of the second aspect, the request processing module is configured to: The metadata in the data queue is sent to the storage node, so that the storage node writes the metadata to obtain a transaction result;
所述元数据服务器, 还包括发送模块, 用于根据所述事务结果, 向所述合 并队列中的操作请求对应的客户端发送操作响应。  The metadata server further includes a sending module, configured to send an operation response to the corresponding client in the operation queue in the merge queue according to the transaction result.
结合第二个方面的第八种可能的实现方式,在第二个方面的第九种可能的 实现方式中, 所述目录锁模块, 还用于判断所述请求队列中是否还存在操作请 求;  In conjunction with the eighth possible implementation of the second aspect, in a ninth possible implementation manner of the second aspect, the directory lock module is further configured to determine whether an operation request still exists in the request queue;
所述合并判决模块,还用于若所述目录锁模块判断出所述请求队列中还存 在操作请求, 则遍历所述请求队列中的每个操作请求, 返回每一所述操作请求 的返回结果;  The merge decision module is further configured to: if the directory lock module determines that an operation request still exists in the request queue, traverse each operation request in the request queue, and return a return result of each operation request ;
所述请求处理模块,还用于若所述目录锁模块判断出所述请求队列中不存 在操作请求, 则释放所述锁。 The request processing module is further configured to: if the directory lock module determines that the request queue does not exist Upon operation of the request, the lock is released.
同目录下的多个并发操作请求, 如新建操作、 删除操作、 修改操作等, 先获取 该目录的锁, 若锁被授权, 则对多个客户端发送的操作请求进行目录级别的合 并, 从而提高对元数据的处理效率。 Multiple concurrent operation requests in the same directory, such as a new operation, a delete operation, a modification operation, etc., first acquire a lock of the directory, and if the lock is authorized, perform a directory level merge on the operation requests sent by multiple clients, thereby Improve the efficiency of processing metadata.
附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施 例或现有技术描述中所需要使用的附图作一简单地介绍, 显而易见地, 下面描 述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出 创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。 BRIEF DESCRIPTION OF THE DRAWINGS In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, a brief description of the drawings used in the embodiments or the prior art description will be briefly described below. The drawings are some embodiments of the present invention, and those skilled in the art can obtain other drawings based on these drawings without any inventive labor.
图 1为本发明元数据处理方法实施例一的流程图;  1 is a flowchart of Embodiment 1 of a metadata processing method according to the present invention;
图 2A为本发明元数据处理方法中 MDS处理主过程一的示意图;  2A is a schematic diagram of a main process 1 of MDS processing in a metadata processing method according to the present invention;
图 2B为本发明元数据处理方法中子过程二的示意图; 图 2C为本发明元数据处理方法中子过程三的示意图; 图 3为本发明元数据服务器实施例一的结构示意图; 图 4为本发明元数据服务器实施例二的结构示意图。  2B is a schematic diagram of a sub-process 2 in the metadata processing method of the present invention; FIG. 2C is a schematic diagram of a sub-process 3 in the metadata processing method of the present invention; FIG. 3 is a schematic structural diagram of a first embodiment of the metadata server according to the present invention; A schematic diagram of the structure of the second embodiment of the metadata server of the present invention.
具体实施方式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发明 实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于本发明中 的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其 他实施例, 都属于本发明保护的范围。 图 1为本发明元数据处理方法实施例一的流程图。本实施例的执行主体为 元数据服务器。 具体的, 本实施例包括如下步骤: 101、 将多个客户端发送的对同一目录的至少一个操作请求緩存至请求队 列。 The technical solutions in the embodiments of the present invention are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention. The embodiments are a part of the embodiments of the invention, and not all of the embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without departing from the inventive scope are the scope of the present invention. FIG. 1 is a flowchart of Embodiment 1 of a metadata processing method according to the present invention. The execution subject of this embodiment is a metadata server. Specifically, the embodiment includes the following steps: 101. Cache at least one operation request sent by multiple clients to the same directory to the request queue.
分布式文件系统包括多个元数据服务器 (Metadata Server, , MDS), 所有 的元数据按照其归属目录的元数据标识, 分配给指定的元数据服务器, 以确保 对该目录下的元数据,例如子目录项(包括目录及文件等)的操作均是由该 MDS 来处理, 便于目录级的元数据操作的合并。 本步骤中, 多个客户端 (CLIENT) 发送操作请求, 案子操作请求所操作的元数据归属目录的元数据标识, 将对同 一目录的至少一个操作请求緩存至请求队列。  The distributed file system includes a plurality of metadata servers (Metadata Servers, MDS), and all metadata is assigned to the specified metadata server according to the metadata identifier of its home directory to ensure metadata under the directory, for example The operation of subdirectory items (including directories and files, etc.) is handled by the MDS, facilitating the consolidation of directory-level metadata operations. In this step, multiple clients (CLIENT) send an operation request, and the metadata identifier of the metadata home directory operated by the case operation request caches at least one operation request of the same directory to the request queue.
例如, 目录为 /mountfs/2013, 其元数据标识为 dirFIDl, 该目录下已有文 件包括:  For example, the directory is /mountfs/2013, and its metadata identifier is dirFIDl. The existing files in this directory include:
I mountfs/2013/fileOOl, 目录 fileOOl的元数据标识为 FID1;  I mountfs/2013/fileOOl, the metadata identifier of the directory fileOOl is FID1;
I mountfs/2013/file002, 目录 f i le002的元数据标识为 FID2;  I mountfs/2013/file002, the metadata of the directory f i le002 is FID2;
I mountfs/2013/file003, 目录 f i le003的元数据标识为 FID3;  I mountfs/2013/file003, the metadata identifier of the directory f i le003 is FID3;
I mountfs/2013/file004, 目录 f i le004的元数据标识为 FID4。 上述已有的文件按照元数据标识可以表示为 {dirFID已有元数据 }。 对属于 / mountfs/2013的操作请求, 均由元数据标识为 dirFIDl的目录对 应的元数据服务器进行处理, 即多个客户端并发的操作请求, 都到达该元数据 服务器的请求队列。 例如:  I mountfs/2013/file004, the metadata of the directory f i le004 is FID4. The above existing files can be expressed as {dirFID existing metadata} according to the metadata identifier. The operation requests belonging to /mountfs/2013 are processed by the metadata server corresponding to the directory whose metadata identifier is dirFIDl, that is, the operation requests of multiple clients concurrently arrive at the request queue of the metadata server. E.g:
CLIENT1. create (dirFID, newfile005 ), 表示在 /mountf s/2013目录下新 建文件 newf ile005;  CLIENT1. create (dirFID, newfile005 ), which means that the new file newf ile005 is in the /mountf s/2013 directory;
CLIENT2. create (dirFID, newfile006 ), 表示在 /mountf s/2013目录下新 建文件 newfile006;  CLIENT2. create (dirFID, newfile006 ), which means that the new file newfile006 is created in the /mountf s/2013 directory.
CLIENT3. unlink (dirFID, newfileOOl ), 表示在 /mountf s/2013目录下删 除文件 fileOOl; CLIENT4. unl ink ( di rFID, newf i le002 ), 表示在 /mountf s/2013目录下删 除文件 f i le002; CLIENT3. unlink (dirFID, newfileOOl), which means to delete the file fileOOl in the /mountf s/2013 directory; CLIENT4. unl ink ( di rFID, newf i le002 ), which means to delete the file fi le002 in the /mountf s/2013 directory;
CLIENT5. setat tr ( FID3 , f i le003 , Add ACL ) , 表 示 对 /mountfs/2013/f i le003 , 增加 ACL; CLIENT6. setat tr ( FID3 , f i le004 , Remove ACL ) , 表 示 对CLIENT5. setat tr ( FID3 , f i le003 , Add ACL ), indicating to /mountfs/2013/f i le003 , adding ACL; CLIENT6. setat tr ( FID3 , f i le004 , Remove ACL ), indicating pair
/mountfs/2013/f i le004 , 删除 ACL。 /mountfs/2013/f i le004 , delete the ACL.
102、 判断目录的锁是否被授权。 分布式文件系统中, 引入了锁的概念。 如果客户端要操作某一元数据, 例 如, 某个目录或子目录等, 需先申请到该元数据的锁, 从而使得多个客户端操 作元数据时就可以防止数据的修改和读取的不一致性。 本步骤中, 目录对应的 元数据服务器判断该目录的锁是否被授权, 根据锁授权的结果进行后续处理。 若该目录的锁未被授权, 不对操作请求对应的元数据进行处理; 否则, 若该目 录对应的锁被授权, 则执行步骤 103。 其中, 元数据服务器如何判断目录的锁 是否被授权, 可参见现有技术, 此处不再赘述。 需要说明档是, 上述 101和 102的执行并没有严格的先后顺序。 102. Determine whether the lock of the directory is authorized. In the distributed file system, the concept of locks was introduced. If the client wants to operate a certain metadata, for example, a directory or subdirectory, etc., it needs to apply for the lock of the metadata first, so that multiple clients can prevent the data from being modified and read inconsistently when operating the metadata. Sex. In this step, the metadata server corresponding to the directory determines whether the lock of the directory is authorized, and performs subsequent processing according to the result of the lock authorization. If the lock of the directory is not authorized, the metadata corresponding to the operation request is not processed; otherwise, if the lock corresponding to the directory is authorized, step 103 is performed. The metadata server can determine whether the lock of the directory is authorized. For details, refer to the related art, and details are not described herein. It should be noted that the execution of 101 and 102 above is not strictly sequential.
103、 若锁被授权, 则遍历请求队列中的每个操作请求, 返回每一操作请 求的返回结果。 若元数据服务器判断出目录的锁已被授权, 则遍历请求队列中的各个操作 请求, 根据预设的规则等返回每一个操作请求的返回结果, 该返回结果指示元 数据服务器对操作请求的处理方式, 例如, 将操作请求移出请求队列、 继续保 存在请求队列、 对操作请求进行响应等。 103. If the lock is authorized, traverse each operation request in the request queue, and return the return result of each operation request. If the metadata server determines that the lock of the directory has been authorized, it traverses each operation request in the request queue, returns a return result of each operation request according to a preset rule, etc., and the return result indicates processing of the operation request by the metadata server This way, for example, moves the operation request out of the request queue, continues to be saved in the request queue, responds to the operation request, and so on.
104、 根据各返回结果, 对至少一个操作请求对应的元数据进行处理。 本步骤中, 元数据服务器根据各操作请求对应的返回结果, 对各操作请求 对应的元数据进行处理。 例如, 若返回结果为将操作请求移出请求队列, 则若 操作请求为读请求, 则对发送读请求的客户端进行响应, 若操作请求为错误请 求, 则向发送该操作请求的客户端响应失败, 继续遍历请求队列; 若返回结果 是可合并, 则将操作请求添加到合并队列中, 将合并队列中的操作请求对应的 元数据加入到緩冲数据队列中, 使得遍历完请求队列后, 将緩冲数据队列中经 合并的元数据一次性提交给存储节点写盘。 本发明实施例提供的元数据处理方法, 元数据服务器对相同目录下的多个 并发操作请求, 如新建操作、 删除操作、 修改操作等, 先获取该目录的锁, 若 锁被授权, 则对多个客户端发送的操作请求进行目录级别的合并, 从而提高对 元数据的处理效率。 图 2A为本发明元数据处理方法中 MDS处理主过程一的示意图, 以下为描 述清楚起见, 将该过程称之为 【主过程 1-MDS处理主过程】。 本实施例的执行 主体为元数据服务器。 具体的, 本实施例包括如下步骤: 104. Process metadata corresponding to the at least one operation request according to each return result. In this step, the metadata server processes the metadata corresponding to each operation request according to the return result corresponding to each operation request. For example, if the result of the return is to move the operation request out of the request queue, then If the operation request is a read request, the client that sends the read request responds, and if the operation request is an error request, the response to the client that sent the operation request fails, and continues to traverse the request queue; if the returned result is mergeable, The operation request is added to the merge queue, and the metadata corresponding to the operation request in the merge queue is added to the buffer data queue, so that after the request queue is traversed, the merged metadata in the buffer data queue is submitted to the storage at one time. The node writes the disk. The metadata processing method provided by the embodiment of the present invention, the metadata server requests multiple concurrent operations in the same directory, such as a new operation, a delete operation, a modification operation, etc., first acquires a lock of the directory, and if the lock is authorized, Operation requests sent by multiple clients are merged at the directory level, thereby improving the efficiency of processing metadata. 2A is a schematic diagram of a main process 1 of MDS processing in the metadata processing method of the present invention. Hereinafter, for the sake of clarity of description, the process is referred to as [main process 1-MDS processing main process]. The execution subject of this embodiment is a metadata server. Specifically, the embodiment includes the following steps:
201、 元数据服务器将至少一个操作请求緩存至请求队列。 对于某一个目录,例如 di rFID,其指定的元数据服务器接收到多个客户端 对该目录的操作请求后, 将操作请求緩存至该目录的请求队列, 例如 {dirFID 请求队列 } , 后续若继续接收到对目录 dirFID的操作请求, 则将该些操作请求 继续緩存至 {dirFID请求队列}。 201. The metadata server caches at least one operation request to the request queue. For a certain directory, such as di rFID, after the specified metadata server receives the operation request of the multiple clients for the directory, the operation request is cached to the request queue of the directory, for example, {dirFID request queue}, if the subsequent continues Upon receiving an operation request for the directory dirFID, the operation requests are further cached to the {dirFID request queue}.
202、 元数据服务器获取目录的锁, 并判断锁是否被授权。 与目录对应的元数据服务器判断目录的锁是否被授权。 若锁未被授权, 则 执行 203; 否则, 若锁被授权, 则执行 204。 202. The metadata server acquires a lock of the directory and determines whether the lock is authorized. The metadata server corresponding to the directory determines whether the lock of the directory is authorized. If the lock is not authorized, execute 203; otherwise, if the lock is authorized, execute 204.
203、 等待处理。 若元数据服务器判断出锁未被授权, 则等待处理。 203. Waiting for processing. If the metadata server determines that the lock is not authorized, it waits for processing.
204、 执行【子过程 2-请求合并子过程】。 若元数据服务器判断出锁被授权, 执行【子过程 2-请求合并子过程】。 本步骤中, MDS遍历 {di rFID请求队列}中的每个操作请求, 对每个操作请 求按照 【子过程 2-请求合并子过程】进行处理, 返回各操作请求的返回结果。 其中, 【子过程 2-请求合并子过程】可参见图 2B。 204. Execute [sub-process 2 - request merge sub-process]. If the metadata server determines that the lock is authorized, execute [Sub-Process 2 - Request Merge Sub-Process]. In this step, the MDS traverses each operation request in the {di rFID request queue}, and processes each operation request according to the [sub-process 2 - request merge sub-process], and returns the return result of each operation request. [Sub-process 2 - request merge sub-process] can be seen in FIG. 2B.
205、 根据返回结果, 对操作请求对应的元数据进行处理。 具体的, 本步骤包括如下可选子步骤(图中未示出): 205. Process metadata corresponding to the operation request according to the returned result. Specifically, this step includes the following optional sub-steps (not shown in the figure):
2051、 读请求的返回结果。 若返回结果为读请求(REQ_ IS_READ ), 则将该返回结果对应的操作请求移 出 {dirFID请求队列} ,若元数据服务器的緩存中能够命中该操作请求,则直接 对发起该操作请求的客户端进行响应; 否则, 若未命中, 则到存储节点读取该 操作请求后响应客户端, 继续遍历 {di rFID请求队列}。  2051. The result of the read request. If the result of the return is a read request (REQ_IS_READ), the operation request corresponding to the returned result is moved out of the {dirFID request queue}, and if the operation request is hit in the cache of the metadata server, the client that initiated the operation request is directly Respond; otherwise, if it does not, then the storage node responds to the client after reading the operation request, and continues to traverse the {di rFID request queue}.
2052、 错误请求的返回结果。 若返回结果为错误请求 (REQ_ IS_ERR0R ), 则向该返回结果对应的操作请 求的发起客户端响应错误, 继续遍历 {di rFID请求队列}。 2052. The result of the error request. If the result of the return is an error request (REQ_ IS_ERR0R), the originating client of the operation request corresponding to the returned result responds with an error and continues to traverse the {di rFID request queue}.
2053、 可合并的返回结果。 若返回结果为可合并(REQ_ IS_MERGED ), 则将该返回结果对应的操作请求 加入到合并队列中,例如 {di rFID合并队列 } ,并将该操作请求所操作的元数据 加入到緩冲数据队列中, 例如 {dirFID緩冲数据队列 } , 继续遍历 {dirFID请求 队列 }。 其中操作请求所操作的元数据例如为新增元数据、 删除原数据、 修改 元数据等。 2053. The result of the mergeable return. If the returned result is mergeable (REQ_ IS_MERGED ), the operation request corresponding to the returned result is added to the merge queue, for example, {di rFID merge queue}, and the metadata operated by the operation request is added to the buffer data queue. Medium, such as {dirFID buffered data queue}, continues to traverse {dirFID request queue}. The metadata operated by the operation request is, for example, new metadata, deleted original data, modified metadata, and the like.
2054、 互斥的返回结果。 若返回结果为互斥 (REQ_ IS_MUTEXED ), 则将该返回结果对应的操作请求 保存在 {di rFID请求队列}中, 退出循环, 执行步骤 205。  2054, the result of mutual exclusion. If the result of the return is mutual exclusion (REQ_IS_MUTEXED), the operation request corresponding to the returned result is saved in the {di rFID request queue}, the loop is exited, and step 205 is executed.
2055、 遍历完毕。 元数据服务器判断是否遍历完 {dirFID请求队列} ,若未遍历完毕, 则继 续循环; 否则, 若遍历完毕, 则退出循环, 执行步骤 205。 2055, traversal is completed. The metadata server determines whether to traverse the {dirFID request queue}, if it has not been traversed, then Continue the loop; otherwise, if the traversal is completed, exit the loop and go to step 205.
206、 将緩冲数据队列中的元数据发送给存储节点。 元数据服务器一次性的将緩冲数据队列中的数据发送给存储节点, 以使存 储节点通过事务机制保证多个元数据写入的原子性, 等待事务结果。 206. Send metadata in the buffered data queue to the storage node. The metadata server sends the data in the buffered data queue to the storage node at one time, so that the storage node guarantees the atomicity of multiple metadata writes through the transaction mechanism, waiting for the transaction result.
207、 向合并队列中的操作请求对应的客户端发送操作响应。 元数据服务器等待到事务结果后, 对 {dirFID合并队列}中的所有操作请 求, 根据事务结果进行响应。 例如, 若事务成功, 则发送成功响应; 否则, 若 是否失败,则发送失败响应。对 {dirFID合并队列}中的所有操作请求发起的客 户端响应完毕后, 合并操作请求结束。  207. Send an operation response to the client corresponding to the operation request in the merge queue. After the metadata server waits for the result of the transaction, it requests all operations in the {dirFID merge queue} and responds according to the result of the transaction. For example, if the transaction is successful, a successful response is sent; otherwise, if it fails, a failure response is sent. After the client response to all operation requests in the {dirFID merge queue} is completed, the merge operation request ends.
208、 判断请求队列中是否还存在操作请求。 元数据服务器继续检查 {dirFID请求队列} , 若 {dirFID请求队列}中还有 操作请求在等待, 则返回 204; 否则, 执行 209. 208. Determine whether an operation request still exists in the request queue. The metadata server continues to check the {dirFID request queue}, and if there are still operation requests waiting in the {dirFID request queue}, it returns 204; otherwise, it executes 209.
209、 释放锁。 若 {dirFID请求队列}中没有等待的操作请求, 则释放锁。 上述图 2A是从【主过程 1-MDS处理主过程】 的角度对本发明进行详细阐 述, 下面, 对步骤 203中的 【子过程 2-请求合并子过程】进行详细说明。 本发明实施例中, 对元数据的操作请求可分为以下三类, 第一类别: 对元 数据的读操作; 第二类别: 对元数据的新建操作、 修改操作和删除操作; 第三 类别: 对元数据的移动操作、 新建链接操作和删除其中, 第一类别的操作请求 与第二类别的操作请求互斥, 即遍历 {di rFID请求队歹 W的过程中,对于第一类 别的操作请求,若 {di rFID合并队列}中已存在第二类别的操作请求,则不把该 当前正在遍历的操作请求加入到 {dirFID 合并队列} , 而是返回互斥请求 ( REQ_ IS_MERGED )的返回结果; 同理, 若当前遍历的操作请求属于第二类别, 且 {dirFID合并队列}中已存在第一类别或第二类别的操作请求时,也不把该当 前正在遍历的第二类别的操作请求加入到 {di rFID合并队列} ,而是返回互斥请 求的返回结果。 具体的, 可参见表 1 , 表 1为本发明操作请求分类表。 表 1 209. Release the lock. If there is no pending operation request in the {dirFID request queue}, the lock is released. 2A is a detailed description of the present invention from the perspective of [main process 1-MDS processing main process]. Next, the [sub-process 2 - request merge sub-process] in step 203 will be described in detail. In the embodiment of the present invention, the operation request for the metadata may be classified into the following three categories, the first category: a read operation on the metadata; the second category: a new operation, a modification operation, and a deletion operation on the metadata; : the operation operation of the metadata, the new link operation, and the deletion, wherein the operation request of the first category and the operation request of the second category are mutually exclusive, that is, the operation of the first category in the process of traversing the {di rFID request team 歹W The request, if the second category of operation request already exists in the {di rFID merge queue}, does not add the operation request currently being traversed to the {dirFID merge queue}, but returns the return result of the mutual exclusion request (REQ_IS_MERGED) Similarly, if the operation request currently traversed belongs to the second category, and the operation request of the first category or the second category already exists in the {dirFID merge queue}, the operation request is not taken. The second category of operation requests that were previously traversed are added to the {di rFID merge queue}, and the result of the mutex request is returned. Specifically, refer to Table 1, which is a classification table of operation requests of the present invention. Table 1
Figure imgf000015_0001
Figure imgf000015_0001
可选的, 本发明实施例中, 对于第一类别中的操作请求, 无需合并; 对于 第一类别的各操作请求, 尝试合并; 对于第三类别的操作请求, 由于其可能涉 及至少两个目录的操作, 因此不进行合并。 具体的, 可参见图 2B, 图 2B为本 发明元数据处理方法中子过程二的示意图, 即【子过程 2-请求合并子过程】的 示意图。 请参照图 2B, 本实施例包括如下步骤:  Optionally, in the embodiment of the present invention, for the operation request in the first category, there is no need to merge; for each operation request of the first category, try to merge; for the operation request of the third category, since it may involve at least two directories The operation is therefore not merged. For details, refer to FIG. 2B. FIG. 2B is a schematic diagram of sub-process 2 in the metadata processing method of the present invention, that is, a schematic diagram of [sub-process 2-request merge sub-process]. Referring to FIG. 2B, the embodiment includes the following steps:
301、 针对每一操作请求, 返回对应的返回结果。 301. For each operation request, return a corresponding return result.
具体的, 本步骤包括如下可选子步骤:  Specifically, this step includes the following optional sub-steps:
3011、 对于属于第一类别的操作请求返回对应的返回结果。 在遍历 {di rFID请求队歹' 的过程中,对于属于第一类别的操作请求,返回 结果为读请求(REQ_ IS_READ )。 3011. Return a corresponding return result for the operation request belonging to the first category. In the process of traversing {di rFID request queue ,', for an operation request belonging to the first category, the result of the return is a read request (REQ_ IS_READ ).
3012、 对于属于第二类别的操作请求返回对应的返回结果。 在遍历 {di rFID请求队歹 W的过程中,对于属于第二类别的操作请求,则执 行【子过程 3-请求合法性判断子过程】。 在遍历 {di rFID请求队歹 W的过程中,对于属于第二类别的操作请求,元数 据服务器调用【子过程 3-请求合法性判断子过程】判断操作请求的合法性, 根 据合法与否,返回不同的返回结果,其中, 【子过程 3-请求合法性判断子过程】 可参见图 2C中对属于第二类别的操作请求的合法性判断过程。 具体的, 若不合法, 则返回操作请求为错误请求(REQ_ IS_ERROR )的返回 结果;若合法,则判断 {dirFID合并队列}中是否存在属于第三类别的操作请求。 若 {dirFID合并队列}已有属于第三类别的操作请求,由于第一类别与第二类别 的操作请求互斥, 则返回操作请求为互斥请求(REQ_ IS_MUTEXED )的返回结果; 否则,若 {dirFID合并队歹' 不存在属于第三类别的操作请求,则将该正在遍历 的属于第二类别的操作请求加入到 {di rFID合并队列}中,将该操作请求对应的 元数据加入到 {di rFID 緩冲数据队列 }中, 并返回操作结果为可合并请求 ( REQ_ IS—MERGED ) 的返回结果。 例如,若一开始遍历 {dirFID请求队列}时,第一个被遍历的操作请求属于 第二类另 此时 {dirFID合并队歹' J}和 {di rFID緩冲数据队歹 'J}均为空,即 {dirFID 合并队列}中不存在属于第二类别的操作请求, 此时, 将当前的操作请求加入 到 {dirFID合并队列}中, 将其操作的元数据加入到 {dirFID緩冲数据队列 }中, 并返回操作请求为可合并请求 (REQ_ IS_MERGED ) 的返回结果, 继续遍历。 若 后续遍历到的操作请求属于第三类别, 则返回操作请求为互斥请求 ( REQ- IS-MERGED ) 的返回结果; 否则, 若遍历到的操作请求属于第二类别, 则继续将操作请求加入到 {dirFID合并队列}中, 并继续后续过程。 3012. Return a corresponding return result for the operation request belonging to the second category. In the process of traversing the {di rFID request queue ,W, for the operation request belonging to the second category, the [sub-process 3 - request legality judgment sub-process] is executed. In the process of traversing the {di rFID request queue 歹W, for the operation request belonging to the second category, the metadata server calls [sub-process 3 - request legality judgment sub-process] to judge the legality of the operation request, according to whether it is legal or not, Returning different return results, wherein [Sub-Process 3 - Request Legitimacy Judgment Sub-Process] Referring to FIG. 2C, the legality judging process for the operation request belonging to the second category can be referred to. Specifically, if it is not legal, the operation result is returned as an error request (REQ_IS_ERROR); if it is legal, it is determined whether there is an operation request belonging to the third category in the {dirFID merge queue}. If the {dirFID merge queue} already has an operation request belonging to the third category, since the operation requests of the first category and the second category are mutually exclusive, the operation result is returned as a result of the mutual exclusion request (REQ_IS_MUTEXED); otherwise, if { dirFID merge team 歹 'There is no operation request belonging to the third category, then the traversal operation request belonging to the second category is added to the {di rFID merge queue}, and the metadata corresponding to the operation request is added to the {di rFID buffers the data queue} and returns the result of the operation as a result of the mergeable request (REQ_ IS_MERGED). For example, if you first traverse the {dirFID request queue}, the first traversed operation request belongs to the second category. At this time, {dirFID merge queue 歹' J} and {di rFID buffer data queue 歹'J} are both Empty, that is, there is no operation request belonging to the second category in {dirFID merge queue}. At this time, the current operation request is added to the {dirFID merge queue}, and the metadata of its operation is added to the {dirFID buffer data queue. }, and return the result of the operation as a result of the mergeable request (REQ_ IS_MERGED ), continue to traverse. If the operation request traversed subsequently belongs to the third category, the operation request is returned as a return result of the mutual exclusion request (REQ-IS-MERGED); otherwise, if the traversed operation request belongs to the second category, the operation request is continuously added. Go to {dirFID merge queue} and continue the process.
3013、 对于属于第三类别的操作请求返回对应的返回结果。 在遍历 {di rFID请求队歹' 的过程中,对于属于第三类别的操作请求,则执 行【子过程 3-请求合法性判断子过程】。 在遍历 {di rFID请求队歹' 的过程中,对于属于第三类别的操作请求,元数 据服务器调用【子过程 3-请求合法性判断子过程】判断操作请求的合法性, 根 据合法与否,返回不同的返回结果,其中, 【子过程 3-请求合法性判断子过程】 可参见图 2C中对属于第三类别的操作请求的合法性判断过程。 具体的, 若不合法, 则返回操作请求为错误请求(REQ_ IS_ERROR )的返回 结果; 若合法,则判断 {dirFID合并队列}中是否存在属于第二类别或第三类别 的操作请求。 若 {dirFID合并队列}中存在属于第二类别或第三类别的操作请 求,则返回操作请求为互斥请求( REQ- IS-MUTEXED )的返回结果否则,若 {dirFID 合并队列}中不存在属于第二类别或第三类别的操作请求, 则将当前的操作请 求加入到 {dirFID合并队列}中, 将其操作的元数据加入到 {dirFID緩冲数据队 歹' J}中, 并返回操作请求为可合并请求 (REQ_ IS_MERGED ) 的返回结果。 例如,若一开始遍历 {dirFID请求队列}时,第一个被遍历的操作请求属于 第三类别,此时 {dirFID合并队列}和 {di rFID緩冲数据队列 }均为空,即 {dirFID 合并队列}中不存在属于第二类别或第三类别的操作请求。 此时, 将当前的操 作请求加入到 {di rFID合并队列}中,将其操作的元数据加入到 {dirFID緩冲数 据队列 }中, 并返回操作请求为可合并请求(REQ_ IS_MERGED )的返回结果, 继 续遍历。 若后续遍历到的操作请求属于第二类别或第三类别, 则返回操作请求 为互斥请求(REQ_ IS_MUTEXED ) 的返回结果。 上述图 2 A是从【主过程 1-MDS处理主过程】、 图 2B是从【子过程 2-请求 合并子过程】的角度对本发明进行详细阐述, 下面, 对步骤 3012和 3013中的 【子过程 3-请求合法性判断子过程】进行详细说明。 具体的, 可参见图 2C, 图 2C为本发明元数据处理方法中子过程三的示意 图, 即 【子过程 3-请求合法性判断子过程】 的示意图。 请参照图 2C, 本实施 例包括如下步骤: 3013. Return a corresponding return result for the operation request belonging to the third category. In the process of traversing the {di rFID request queue ,, for the operation request belonging to the third category, the [sub-process 3 - request legality judgment sub-process] is executed. In the process of traversing {di rFID request queue ,, for the operation request belonging to the third category, the metadata server calls [sub-process 3 - request legality judgment sub-process] to judge the legality of the operation request, root According to the lawfulness or not, different return results are returned, wherein [Sub-Process 3 - Request Legitimacy Judgment Sub-Process] can refer to the legality judging process of the operation request belonging to the third category in FIG. 2C. Specifically, if it is not legal, the operation result is returned as an error request (REQ_IS_ERROR); if it is legal, it is determined whether there is an operation request belonging to the second category or the third category in the {dirFID merge queue}. If there is an operation request belonging to the second category or the third category in the {dirFID merge queue}, the return operation request is a return result of the mutual exclusion request (REQ-IS-MUTEXED), otherwise, if the {dirFID merge queue} does not exist, The operation request of the second category or the third category adds the current operation request to the {dirFID merge queue}, adds the metadata of its operation to the {dirFID buffer data queue 歹' J}, and returns the operation request. Returns the result of the mergeable request (REQ_ IS_MERGED ). For example, if the first traversed operation request belongs to the third category when traversing the {dirFID request queue} at the beginning, then {dirFID merge queue} and {di rFID buffer data queue} are both empty, ie {dirFID merge There are no operation requests belonging to the second category or the third category in the queue}. At this point, the current operation request is added to the {di rFID merge queue}, the metadata of its operation is added to the {dirFID buffer data queue}, and the return result of the operation request as the mergeable request (REQ_ IS_MERGED) is returned. , continue to traverse. If the operation request traversed subsequently belongs to the second category or the third category, the return operation request is a return result of the mutual exclusion request (REQ_IS_MUTEXED). The above FIG. 2A illustrates the present invention from the perspective of [main process 1-MDS processing main process], FIG. 2B is from [sub-process 2 - request merge sub-process], and below, in the steps 3012 and 3013 Process 3 - Request Legitimacy Judgment Sub-Process] is described in detail. For details, refer to FIG. 2C. FIG. 2C is a schematic diagram of sub-process 3 in the metadata processing method of the present invention, that is, a schematic diagram of [sub-process 3 - request legality judging sub-process]. Referring to FIG. 2C, the embodiment includes the following steps:
401、 对属于第二类别的操作请求的合法性判断。 可选的, 本步骤可包括: 401. Determine the legality of the operation request belonging to the second category. Optionally, this step may include:
( 1 )对于 se ta t t r请求, 返回合法; ( 2 )对于 create/mkdir/symlink/mknod等操作请求, 将该些操作请求对 应的元数据与目录下已有的元数据, 例如 {dirFID已有元数据 }以及 {dirFID緩 冲数据队列 }中的目录项名称列表进行匹配, 根据是否重名, 决定合法与否。 若没有重名, 则返回合法; 否则, 若重名, 则返回不合法。 例如, /mountfs/2013/f ileOOl, 表示目录 /mountf s/2013 的 {dirFID 已有元数据 }的 目录项名称列表中存在 fileOOl, 此时, 若 CLIENT1. create ( dirFID, newfileOOl ), 表示在 /mountf s/2013 目录下新建文件 newf i leOOl , 此时由于 重名, 返回不合法。 (1) For the setta ttr request, the return is legal; (2) For operation requests such as create/mkdir/symlink/mknod, the metadata corresponding to the operation request and the metadata existing in the directory, such as {dirFID existing metadata} and {dirFID buffer data queue} The list of directory entry names is matched, and whether it is legal or not depends on whether it is a duplicate name. If there is no duplicate name, it returns legal; otherwise, if it is duplicated, the return is invalid. For example, /mountfs/2013/f ileOOl, fileOOl exists in the list of directory entry names for the {dirFID existing metadata} of the directory /mountf s/2013. In this case, if CLIENT1. create ( dirFID, newfileOOl ), it means / The new file newf i leOOl is created in the mountf s/2013 directory. At this time, due to the duplicate name, the return is invalid.
( 3 )对于 unlink请求, 将该操作请求对应删除的目录项名称与 {dirFID 已有元数据 }中的目录项名称列表进行匹配, 判断被删除的名称是否存在。 若存在, 则返回合法; 否则, 若不存在, 则返回不合法。 (3) For the unlink request, match the directory entry name corresponding to the deletion with the directory entry name list in the {dirFID existing metadata} to determine whether the deleted name exists. If it exists, it returns legal; otherwise, if it does not exist, the return is invalid.
( 4 )对 rmdir操作请求,将操作请求对应的删除目录项与 {dirFID已有元 数据 }中的目录项名称列表进行匹配, 判断被删除的名称是否存在、 且是否为 空目录。 若存在, 且为空目录, 则返回合法; 否则, 若不存在, 或不为空目录, 则返回不合法。 (4) Matching the rmdir operation request, matching the deleted directory entry corresponding to the operation request with the directory entry name list in the {dirFID existing metadata}, determining whether the deleted name exists and is an empty directory. If it exists, and it is an empty directory, it returns legal; otherwise, if it does not exist, or is not empty, the return is invalid.
402、 对属于第三类别的操作请求的合法性判断。 可选的, 本步骤可包括: 402. Judging the legality of the operation request belonging to the third category. Optionally, this step may include:
( 1 )对移动操作请求, 如 rename请求, 将该操作请求对应的更名的目录 项与 {dirFID已有元数据 }中的目录项名称列表进行匹配, 判断原始的, 即 old name是否存在, 若存在, 则返回合法; 否则, 若不存在, 则返回不合法。 (1) A request for a move operation, such as a rename request, matching the renamed directory entry corresponding to the operation request with a list of directory entry names in {dirFID existing metadata}, determining whether the original, ie, the old name exists, If it exists, it returns legal; otherwise, if it does not exist, it returns illegal.
(2)对 link请求, 将该操作请求对应的新建的目录项 name 与 {dirFID 已有元数据 }中的目录项名称列表进行匹配, 判断新建的目录项是否存在, 若 存在, 则返回不合法; 否则, 若存在, 则返回合法。 (2) Matching the link request, matching the newly created directory entry name with the directory entry name list in {dirFID existing metadata}, determining whether the newly created directory entry exists, and if it exists, returning is invalid. Otherwise, if it exists, it returns legal.
图 3为本发明元数据服务器实施例一的结构示意图。本实施例提供的元数 据服务器, 其可实现本发明任意实施例提供的应用于元数据服务器的方法的各 个步骤。 具体的, 本实施例提供的元数据服务器 100具体包括: 请求队列模块 11 ,用于将多个客户端发送的对同一目录的至少一个操作请 求緩存至请求队列; 目录锁模块 12 , 用于判断目录的锁是否被授权; 合并判决模块 1 3 , 用于若目录锁模块 12判断出锁被授权, 则遍历请求队 列中的每个操作请求, 返回每一操作请求的返回结果; 请求处理模块 14 ,用于根据各返回结果,对至少一个操作请求对应的元数 据进行处理。 本发明实施例提供的元数据服务器, 通过对相同目录下的多个并发操作请 求, 如新建操作、 删除操作、 修改操作等, 先获取该目录的锁, 若锁被授权, 则对多个客户端发送的操作请求进行目录级别的合并,从而提高对元数据的处 理效率。 进一步的,合并判决模块 1 3 ,对于每一个操作请求,判断操作请求的类别, 类别包括: 第一类别、 第二类别和第三类别, 其中, 第一类别包括对元数据的 读操作, 第二类别包括对元数据的新建操作、 修改操作和删除操作, 第三类别 包括对元数据的移动操作、 新建链接操作和删除链接操作, 根据操作请求所属 的类别, 返回操作请求对应的返回结果。 进一步的, 合并判决模块 1 3 , 用于若操作请求属于第一类别, 则返回操作 请求为读请求的返回结果。 进一步的, 合并判决模块 1 3 , 用于若操作请求属于第二类别, 则判断操作 请求对元数据的操作是否合法, 若判断出操作请求对元数据的操作不合法, 则 返回操作请求为错误请求的返回结果; 否则, 若判断出操作请求对元数据的操作合法, 则判断合并队列中是否存 在第三类别的操作请求, 合并队列包括可合并的返回结果对应的操作请求, 若 判断出合并队列中存在第三类别的操作请求, 则返回操作请求为互斥请求的返 回结果; 否则, 若判断出合并队列中不存在第三类别的操作请求, 则请求处理模块FIG. 3 is a schematic structural diagram of Embodiment 1 of a metadata server according to the present invention. The number of elements provided in this embodiment According to a server, it is possible to implement the various steps of the method applied to the metadata server provided by any of the embodiments of the present invention. Specifically, the metadata server 100 provided in this embodiment specifically includes: a request queue module 11 configured to cache at least one operation request for the same directory sent by the multiple clients to the request queue; the directory lock module 12 is configured to determine Whether the lock of the directory is authorized; the merge decision module 13 is configured to: if the directory lock module 12 determines that the lock is authorized, traverse each operation request in the request queue, return a return result of each operation request; request processing module 14 And for processing metadata corresponding to the at least one operation request according to each returned result. The metadata server provided by the embodiment of the present invention acquires the lock of the directory by using multiple concurrent operation requests in the same directory, such as a new operation, a delete operation, a modification operation, etc., and if the lock is authorized, the multiple clients are The operation request sent by the terminal performs directory level merging, thereby improving the processing efficiency of the metadata. Further, the merge decision module 13 determines, for each operation request, a category of the operation request, the category includes: a first category, a second category, and a third category, wherein the first category includes a read operation on the metadata, The second category includes a new operation, a modification operation, and a deletion operation on the metadata, and the third category includes a movement operation on the metadata, a new link operation, and a delete link operation, and returns a return result corresponding to the operation request according to the category to which the operation request belongs. Further, the merge decision module 13 is configured to return an operation request as a return result of the read request if the operation request belongs to the first category. Further, the merge decision module 13 is configured to determine, if the operation request belongs to the second category, whether the operation request is legal for the operation of the metadata, and if it is determined that the operation request is invalid for the operation of the metadata, the operation request is returned as an error. The result of the request is returned; otherwise, if it is determined that the operation request is legal for the operation of the metadata, it is determined whether the merge queue is stored. In the operation request of the third category, the merge queue includes an operation request corresponding to the mergeable return result, and if it is determined that the operation request of the third category exists in the merge queue, the return operation request is a return result of the mutual exclusion request; otherwise, if If it is determined that there is no operation request of the third category in the merge queue, the request processing module is requested.
14用于将第二类别的操作请求加入到合并队列中 ,将第二类别的操作请求操作 的元数据加入到緩冲数据队列中, 合并判决模块 1 3用于返回操作请求为可合 并请求的返回结果。 进一步的, 合并判决模块 1 3 , 用于若操作请求属于第三类别, 则判断操作 请求对元数据的操作是否合法, 若判断出操作请求对元数据的操作不合法, 则 返回操作请求为错误请求的返回结果; 否则, 若判断出操作请求对元数据的操作合法, 则判断合并队列中是否存 在第二类别的操作请求, 或者, 第三类别的操作请求, 合并队列包括可合并的 返回结果对应的操作请求; 若判断出合并队列中存在第二类别的操作请求, 或者, 第三类别的操作请 求, 则返回操作请求为互斥请求的返回结果; 否则, 若合并队列中不存在第二类别的操作请求, 并且, 不存在第三类别 的操作请求, 则将第三类别的操作请求加入到合并队列中, 将第三类别的操作 请求操作的元数据加入到緩冲数据队列中, 并返回操作结果为可合并请求的返 回结果。 进一步的, 请求处理模块 14 , 用于将操作请求移出请求队列, 并响应操作 请求。 14 is used to add the operation request of the second category to the merge queue, add the metadata of the operation request operation of the second category to the buffer data queue, and the merge decision module 13 is configured to return the operation request as the mergeable request. Returns the result. Further, the merge decision module 13 is configured to determine, if the operation request belongs to the third category, whether the operation of the operation request is legal, and if it is determined that the operation request is invalid for the operation of the metadata, the operation request is returned as an error. If the operation request determines that the operation of the metadata is legal, then it is determined whether there is a second category of operation request in the merge queue, or the third category of operation request, and the merge queue includes the mergeable return result. Corresponding operation request; if it is determined that there is an operation request of the second category in the merge queue, or an operation request of the third category, the operation request is returned as a return result of the mutual exclusion request; otherwise, if there is no second in the merge queue The operation request of the category, and, if there is no operation request of the third category, adding the operation request of the third category to the merge queue, adding the metadata of the operation request operation of the third category to the buffer data queue, and The result of the return operation is the result of the mergeable request. Further, the request processing module 14 is configured to move the operation request out of the request queue and respond to the operation request.
进一步的, 请求处理模块 14 , 用于将操作请求移出请求队列, 并响应操作 请求。  Further, the request processing module 14 is configured to move the operation request out of the request queue and respond to the operation request.
进一步的, 请求处理模块 14 , 用于将操作请求保存在请求队列中。 进一步的,请求处理模块 14 ,用于将緩冲数据队列中的元数据发送给存储 节点, 以使存储节点对元数据进行写入以得到事务结果, 根据事务结果, 向合 并队列中的操作请求对应的客户端发送操作响应。 进一步的, 目录锁模块 12 , 还用于判断请求队列中是否还存在操作请求; 合并判决模块 1 3 , 还用于若目录锁模块 12判断出请求队列中还存在操作 请求, 则遍历请求队列中的每个操作请求, 返回每一操作请求的返回结果; 请求处理模块 14 , 还用于若目录锁模块 12判断出请求队列中不存在操作 请求, 则释放锁。 Further, the request processing module 14 is configured to save the operation request in the request queue. Further, the request processing module 14 is configured to send the metadata in the buffered data queue to the storage node, so that the storage node writes the metadata to obtain the transaction result, and requests the operation in the merge queue according to the transaction result. The corresponding client sends an action response. Further, the directory lock module 12 is further configured to determine whether an operation request still exists in the request queue. The merge decision module 13 is further configured to: if the directory lock module 12 determines that an operation request still exists in the request queue, traverse the request queue. Each operation request returns a return result of each operation request; the request processing module 14 is further configured to release the lock if the directory lock module 12 determines that there is no operation request in the request queue.
图 4为本发明元数据服务器实施例二的结构示意图。 如图 4所示, 本实施 例的元数据服务器 200包括: 存储器 21和处理器 22 ; 存储器 21 , 用于存储元数据处理方法的代码; 处理器 22 , 用于根据存储器 21存储的代码, 将多个客户端发送的对同一 目录的至少一个操作请求緩存至请求队列; 判断目录的锁是否被授权; 若锁被 授权, 则遍历请求队列中的每个操作请求, 返回每一操作请求的返回结果; 根 据各返回结果, 对至少一个操作请求对应的元数据进行处理。 可选的, 处理器 22 , 用于若目录的锁被授权, 则对于每一个操作请求, 判 断操作请求的类别, 类别包括: 第一类别、 第二类别和第三类别, 其中, 第一 类别包括对元数据的读操作, 第二类别包括对元数据的新建操作、 修改操作和 删除操作,第三类别包括对元数据的移动操作、新建链接操作和删除链接操作; 根据操作请求所属的类别, 返回操作请求对应的返回结果。 可选的, 处理器 22 , 用于若操作请求属于第一类别, 则返回操作请求为读 请求的返回结果。 可选的, 处理器 22 , 用于若操作请求属于第二类别, 则判断操作请求对元 数据的操作是否合法, 若不合法, 则返回操作请求为错误请求的返回结果; 否 则, 若合法, 则判断合并队列中是否存在第三类别的操作请求, 合并队列包括 可合并的返回结果对应的操作请求; 若合并队列中存在第三类别的操作请求, 则返回操作请求为互斥请求的返回结果; 否则, 若合并队列中不存在第三类别 的操作请求, 则将第二类别的操作请求加入到合并队列中, 将第二类别的操作 请求操作的元数据加入到緩冲数据队列中, 并返回操作请求为可合并请求的返 回结果。 可选的, 处理器 22 , 用于若操作请求属于第三类别, 则判断操作请求对元 数据的操作是否合法; 若不合法, 则返回操作请求为错误请求的返回结果; 否 则, 若合法, 则判断合并队列中是否存在第二类别的操作请求, 或者, 第三类 别的操作请求, 合并队列包括可合并的返回结果对应的操作请求; 若合并队列 中存在第二类别的操作请求, 或者, 第三类别的操作请求, 则返回操作请求为 互斥请求的返回结果; 否则,若合并队列中不存在第二类别的操作请求, 并且, 不存在第三类别的操作请求, 则将第三类别的操作请求加入到合并队列中, 将 第三类别的操作请求操作的元数据加入到緩冲数据队列中, 并返回操作结果为 可合并请求的返回结果。 4 is a schematic structural diagram of Embodiment 2 of a metadata server according to the present invention. As shown in FIG. 4, the metadata server 200 of this embodiment includes: a memory 21 and a processor 22; a memory 21, code for storing a metadata processing method; and a processor 22 for using the code stored in the memory 21, At least one operation request sent by the multiple clients to the same directory is cached to the request queue; determining whether the lock of the directory is authorized; if the lock is authorized, traversing each operation request in the request queue, returning the return of each operation request Result: processing metadata corresponding to the at least one operation request according to each returned result. Optionally, the processor 22 is configured to determine, if the lock of the directory is authorized, a category of the operation request for each operation request, the category includes: a first category, a second category, and a third category, where the first category Including the reading operation on the metadata, the second category includes a new operation, a modification operation, and a deletion operation on the metadata, and the third category includes a movement operation on the metadata, a new link operation, and a delete link operation; according to the category to which the operation request belongs , returns the result returned by the operation request. Optionally, the processor 22 is configured to: if the operation request belongs to the first category, return an operation request as a return result of the read request. Optionally, the processor 22 is configured to: if the operation request belongs to the second category, determine whether the operation request is legal for the operation of the metadata, and if not, return the operation request as a return result of the error request; Then, if it is legal, it is determined whether there is an operation request of the third category in the merge queue, and the merge queue includes an operation request corresponding to the mergeable return result; if there is an operation request of the third category in the merge queue, the operation request is returned as mutual The result of the request is rejected; otherwise, if there is no operation request of the third category in the merge queue, the operation request of the second category is added to the merge queue, and the metadata of the operation request operation of the second category is added to the buffer. In the data queue, and return the result of the operation as a result of the mergeable request. Optionally, the processor 22 is configured to: if the operation request belongs to the third category, determine whether the operation request is legal for the operation of the metadata; if not, return the operation request as a return result of the error request; otherwise, if legal, Determining whether there is a second category of operation request in the merge queue, or an operation request of the third category, the merge queue includes an operation request corresponding to the mergeable return result; if there is a second category of operation request in the merge queue, or The third category of operation request returns the operation request as the return result of the mutual exclusion request; otherwise, if there is no operation request of the second category in the merge queue, and there is no operation request of the third category, the third category is The operation request is added to the merge queue, the metadata of the operation operation of the third category is added to the buffer data queue, and the result of the operation is returned as a result of the mergeable request.
可选的, 处理器 22 , 用于将操作请求移出请求队列, 响应操作请求。 可选的,处理器 22 ,用于若不合法,返回操作请求为错误请求的返回结果, 则将操作请求移出请求队列, 响应操作请求。  Optionally, the processor 22 is configured to move the operation request out of the request queue and respond to the operation request. Optionally, the processor 22 is configured to: if it is not legal, return the operation request as a return result of the error request, then move the operation request out of the request queue, and respond to the operation request.
可选的, 处理器 22 , 若返回操作请求为互斥请求的返回结果, 则将操作请 求保存在请求队列中。 可选的, 处理器 22 , 用于将緩冲数据队列中的元数据发送给存储节点, 以 使存储节点对元数据进行写入以得到事务结果, 根据事务结果, 向合并队列中 的操作请求对应的客户端发送操作响应。  Optionally, the processor 22 saves the operation request in the request queue if the return operation request is a return result of the mutual exclusion request. Optionally, the processor 22 is configured to send the metadata in the buffered data queue to the storage node, so that the storage node writes the metadata to obtain a transaction result, and requests the operation in the merge queue according to the transaction result. The corresponding client sends an action response.
可选的, 处理器 22 , 用于判断请求队列中是否还存在操作请求; 若存在, 则遍历请求队列中的每个操作请求, 返回每一操作请求的返回结 果, 否则, 若不存在, 则释放锁。 本领域普通技术人员可以理解: 实现上述各方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成。 前述的程序可以存储于一计算机可读取 存储介质中。 该程序在执行时, 执行包括上述各方法实施例的步骤; 而前述的 存储介质包括: R0M、 RAM, 磁碟或者光盘等各种可以存储程序代码的介质。 最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对其 限制; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的普通技术 人员应当理解: 其依然可以对前述各实施例所记载的技术方案进行修改, 或者 对其中部分或者全部技术特征进行等同替换; 而这些修改或者替换, 并不使相 应技术方案的本质脱离本发明各实施例技术方案的范围。 Optionally, the processor 22 is configured to determine whether an operation request still exists in the request queue; if yes, traverse each operation request in the request queue, and return a return knot of each operation request If not, if it does not exist, release the lock. It will be understood by those skilled in the art that all or part of the steps of implementing the above method embodiments may be performed by hardware related to the program instructions. The aforementioned program can be stored in a computer readable storage medium. When the program is executed, the steps including the foregoing method embodiments are performed; and the foregoing storage medium includes: various media that can store program codes, such as ROM, RAM, disk or optical disk. It should be noted that the above embodiments are merely illustrative of the technical solutions of the present invention, and are not intended to be limiting; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art The technical solutions described in the foregoing embodiments may be modified, or some or all of the technical features may be equivalently replaced; and the modifications or substitutions do not deviate from the technical solutions of the embodiments of the present invention. range.

Claims

权利要求 Rights request
1、 一种元数据处理方法, 其特征在于, 包括: 1. A metadata processing method, characterized by including:
将多个客户端发送的对同一目录的至少一个操作请求緩存至请求队 列; Cache at least one operation request for the same directory sent by multiple clients to the request queue;
判断所述目录的锁是否被授权; 若所述锁被授权, 则遍历所述请求队列中的每个操作请求, 返回每 一所述操作请求的返回结果; Determine whether the lock of the directory is authorized; if the lock is authorized, traverse each operation request in the request queue and return the return result of each operation request;
根据各所述返回结果, 对所述至少一个操作请求对应的元数据进行 处理。 According to each of the returned results, the metadata corresponding to the at least one operation request is processed.
2、根据权利要求 1所述的方法,其特征在于,所述若所述锁被授权, 则遍历所述请求队列中的每个操作请求, 返回每一所述操作请求的返回 结果, 包括: 2. The method according to claim 1, characterized in that if the lock is authorized, each operation request in the request queue is traversed and the return result of each operation request is returned, including:
对于每一个操作请求, 判断所述操作请求的类别, 所述类别包括: 第一类别、 第二类别和第三类别, 其中, 所述第一类别包括对元数据的 读操作, 所述第二类别包括对元数据的新建操作、修改操作和删除操作, 所述第三类别包括对元数据的移动操作、新建链接操作和删除链接操作; 根据所述操作请求所属的类别,返回所述操作请求对应的返回结果。 For each operation request, determine the category of the operation request. The categories include: a first category, a second category and a third category, where the first category includes a read operation of metadata, and the second category Categories include new operations, modification operations, and deletion operations on metadata. The third category includes move operations, new link operations, and deletion link operations on metadata. Return the operation request according to the category to which the operation request belongs. The corresponding return result.
3、 根据权利要求 2所述的方法, 其特征在于, 所述根据所述操作请 求所属的类别, 返回所述操作请求对应的返回结果, 包括: 3. The method according to claim 2, characterized in that, returning a return result corresponding to the operation request according to the category to which the operation request belongs, including:
若所述操作请求属于所述第一类别, 则返回所述操作请求为读请求 的返回结果。 If the operation request belongs to the first category, a return result indicating that the operation request is a read request is returned.
4、 根据权利要求 2所述的方法, 其特征在于, 所述根据所述操作请 求所属的类别, 返回所述操作请求对应的返回结果, 包括: 若所述操作请求属于所述第二类别, 则判断所述操作请求对元数据 的操作是否合法; 若不合法, 则返回所述操作请求为错误请求的返回结果; 否则, 若合法, 则判断合并队列中是否存在所述第三类别的操作请 求, 所述合并队列包括可合并的返回结果对应的操作请求; 若所述合并队列中存在所述第三类别的操作请求, 则返回所述操作 请求为互斥请求的返回结果; 否则, 若所述合并队列中不存在所述第三类别的操作请求, 则将所 述第二类别的操作请求加入到所述合并队列中, 将所述第二类别的操作 请求操作的元数据加入到緩冲数据队列中, 并返回所述操作请求为可合 并请求的返回结果。 4. The method according to claim 2, characterized in that, returning a return result corresponding to the operation request according to the category to which the operation request belongs includes: If the operation request belongs to the second category, then determine whether the operation request on the metadata is legal; if it is not legal, then return the result that the operation request is an error request; otherwise, if it is legal, then determine Whether there is an operation request of the third category in the merge queue. The merge queue includes an operation request corresponding to the return result that can be merged. If there is an operation request of the third category in the merge queue, return the operation request. The request is the return result of a mutually exclusive request; otherwise, if there is no operation request of the third category in the merge queue, the operation request of the second category is added to the merge queue, and the operation request of the third category is added to the merge queue. The metadata of the second category operation request operation is added to the buffer data queue, and the return result of the operation request being a mergeable request is returned.
5、 根据权利要求 2所述的方法, 其特征在于, 所述根据所述操作请 求所属的类别, 返回所述操作请求对应的返回结果, 包括: 若所述操作请求属于所述第三类别, 则判断所述操作请求对元数据 的操作是否合法; 若不合法, 则返回所述操作请求为错误请求的返回结果; 否则, 若合法, 则判断合并队列中是否存在所述第二类别的操作请 求, 或者, 所述第三类别的操作请求, 所述合并队列包括可合并的返回 结果对应的操作请求; 若所述合并队列中存在所述第二类别的操作请求, 或者, 所述第三 类别的操作请求, 则返回所述操作请求为互斥请求的返回结果; 否则, 若所述合并队列中不存在所述第二类别的操作请求, 并且, 不存在所述第三类别的操作请求, 则将所述第三类别的操作请求加入到 所述合并队列中, 将所述第三类别的操作请求操作的元数据加入到緩冲 数据队列中, 并返回所述操作结果为可合并请求的返回结果。 5. The method according to claim 2, characterized in that: returning a return result corresponding to the operation request according to the category to which the operation request belongs includes: if the operation request belongs to the third category, Then determine whether the operation request on the metadata is legal; if it is not legal, return the result that the operation request is an error request; otherwise, if it is legal, then determine whether there is an operation of the second category in the merge queue request, or, the operation request of the third category, the merge queue includes the operation request corresponding to the return result that can be merged; if there is the operation request of the second category in the merge queue, or, the third category If there is an operation request of the second category, then the return result is that the operation request is a mutually exclusive request; otherwise, if there is no operation request of the second category in the merge queue, and there is no operation request of the third category , then the operation request of the third category is added to the merge queue, and the metadata of the operation request of the third category is added to the buffer. in the data queue, and return the operation result as the return result of the merge request.
6、 根据权利要求 3所述的方法, 其特征在于, 所述根据各所述返回 结果, 对所述至少一个操作请求对应的元数据进行处理, 包括: 将所述操作请求移出所述请求队列; 6. The method according to claim 3, characterized in that, processing the metadata corresponding to the at least one operation request according to each of the returned results includes: moving the operation request out of the request queue ;
口向应所述操作请求。 Oral direction in response to the operation request.
7、 根据权利要求 4或 5所述的方法, 其特征在于, 若不合法, 返回 所述操作请求为错误请求的返回结果, 则所述根据各所述返回结果, 对 所述至少一个操作请求对应的元数据进行处理, 包括: 7. The method according to claim 4 or 5, characterized in that, if the operation request is illegal and the return result of the operation request is an error request, then according to each of the return results, the at least one operation request is Corresponding metadata is processed, including:
将所述操作请求移出所述请求队列; Remove the operation request from the request queue;
口向应所述操作请求。 Oral direction in response to the operation request.
8、 根据权利要求 4或 5所述的方法, 其特征在于, 若返回所述操作 请求为互斥请求的返回结果, 则所述根据各所述返回结果, 对所述至少 一个操作请求对应的元数据进行处理, 包括: 8. The method according to claim 4 or 5, characterized in that, if the returned operation request is a return result of a mutually exclusive request, then according to each of the returned results, the at least one operation request corresponding to Metadata is processed, including:
将所述操作请求保存在所述请求队列中。 The operation request is saved in the request queue.
9、 根据权利要求 4、 5或 8所述的方法, 其特征在于, 所述根据各 所述返回结果,对所述至少一个操作请求对应的元数据进行处理, 包括: 将所述緩冲数据队列中的元数据发送给存储节点, 以使所述存储节 点对所述元数据进行写入以得到事务结果; 9. The method according to claim 4, 5 or 8, characterized in that, processing the metadata corresponding to the at least one operation request according to each of the returned results includes: converting the buffered data The metadata in the queue is sent to the storage node, so that the storage node writes the metadata to obtain the transaction result;
根据所述事务结果, 向所述合并队列中的操作请求对应的客户端发 送操作口向应。 According to the transaction result, an operation response is sent to the client corresponding to the operation request in the merge queue.
10、 根据权利要求 9所述的方法, 其特征在于, 所述根据所述事务 结果, 向所述合并队列中的操作请求对应的客户端发送操作响应之后, 还包括: 判断所述请求队列中是否还存在操作请求; 若存在, 则遍历所述请求队列中的每个操作请求, 返回每一所述操 作请求的返回结果; 否则, 若不存在, 则释放所述锁。 10. The method according to claim 9, characterized in that, after sending an operation response to the client corresponding to the operation request in the merge queue according to the transaction result, it further includes: Determine whether there is still an operation request in the request queue; if it exists, traverse each operation request in the request queue and return the return result of each operation request; otherwise, if it does not exist, release the lock .
11、 一种元数据服务器, 其特征在于, 包括: 请求队列模块, 用于将多个客户端发送的对同一目录的至少一个操 作请求緩存至请求队列; 目录锁模块, 用于判断所述目录的锁是否被授权; 合并判决模块, 用于若所述目录锁模块判断出所述锁被授权, 则遍 历所述请求队列中的每个操作请求,返回每一所述操作请求的返回结果; 请求处理模块, 用于根据各所述返回结果, 对所述至少一个操作请 求对应的元数据进行处理。 11. A metadata server, characterized in that it includes: a request queue module, used to cache at least one operation request for the same directory sent by multiple clients to the request queue; a directory lock module, used to determine the directory whether the lock is authorized; a combined judgment module, configured to, if the directory lock module determines that the lock is authorized, traverse each operation request in the request queue and return the return result of each operation request; A request processing module, configured to process metadata corresponding to the at least one operation request according to each returned result.
12、 根据权利要求 11所述的元数据服务器, 其特征在于, 所述合并判决模块, 对于每一个操作请求, 判断所述操作请求的类 别, 所述类别包括: 第一类别、 第二类别和第三类别, 其中, 所述第一 类别包括对元数据的读操作, 所述第二类别包括对元数据的新建操作、 修改操作和删除操作, 所述第三类别包括对元数据的移动操作、 新建链 接操作和删除链接操作, 根据所述操作请求所属的类别, 返回所述操作 请求对应的返回结果。 12. The metadata server according to claim 11, characterized in that, for each operation request, the merge judgment module determines the category of the operation request, and the categories include: a first category, a second category and The third category, wherein the first category includes read operations on metadata, the second category includes new operations, modification operations and delete operations on metadata, and the third category includes move operations on metadata. , create a link operation and delete a link operation, and return the return result corresponding to the operation request according to the category to which the operation request belongs.
13、 根据权利要求 12所述的元数据服务器, 其特征在于, 所述合并判决模块, 用于若所述操作请求属于所述第一类别, 则返 回所述操作请求为读请求的返回结果。 13. The metadata server according to claim 12, wherein the merge decision module is configured to return a return result that the operation request is a read request if the operation request belongs to the first category.
14、 根据权利要求 12所述的元数据服务器, 其特征在于, 所述合并判决模块, 用于若所述操作请求属于所述第二类别, 则判 断所述操作请求对元数据的操作是否合法, 若判断出所述操作请求对元 数据的操作不合法, 则返回所述操作请求为错误请求的返回结果; 否则, 若判断出所述操作请求对元数据的操作合法, 则判断合并队 列中是否存在所述第三类别的操作请求, 所述合并队列包括可合并的返 回结果对应的操作请求, 若判断出所述合并队列中存在所述第三类别的 操作请求, 则返回所述操作请求为互斥请求的返回结果; 否则, 若判断出所述合并队列中不存在所述第三类别的操作请求, 则所述请求处理模块用于将所述第二类别的操作请求加入到所述合并队 列中,将所述第二类别的操作请求操作的元数据加入到緩冲数据队列中, 所述合并判决模块用于返回所述操作请求为可合并请求的返回结果。 14. The metadata server according to claim 12, characterized in that, The merge judgment module is used to determine whether the operation request on metadata is legal if the operation request belongs to the second category. If it is determined that the operation on metadata by the operation request is illegal, then The return result of the operation request being an error request is returned; otherwise, if it is determined that the operation request on the metadata is legal, then it is determined whether there is an operation request of the third category in the merge queue, and the merge queue includes possible For the operation request corresponding to the merged return result, if it is determined that the operation request of the third category exists in the merge queue, then the return result of the operation request being a mutually exclusive request will be returned; otherwise, if it is determined that the merge queue If there is no operation request of the third category in , the request processing module is configured to add the operation request of the second category to the merge queue, and add the metadata of the operation request of the second category Added to the buffered data queue, the merging decision module is configured to return a return result that the operation request is a mergeable request.
15、 根据权利要求 12所述的元数据服务器, 其特征在于, 所述合并判决模块, 用于若所述操作请求属于所述第三类别, 则判 断所述操作请求对元数据的操作是否合法, 若判断出所述操作请求对元 数据的操作不合法, 则返回所述操作请求为错误请求的返回结果; 否则, 若判断出所述操作请求对元数据的操作合法, 则判断合并队 列中是否存在所述第二类别的操作请求, 或者, 所述第三类别的操作请 求, 所述合并队列包括可合并的返回结果对应的操作请求; 若判断出所述合并队列中存在所述第二类别的操作请求, 或者, 所 述第三类别的操作请求, 则返回所述操作请求为互斥请求的返回结果; 否则, 若所述合并队列中不存在所述第二类别的操作请求, 并且, 不存在所述第三类别的操作请求, 则将所述第三类别的操作请求加入到 所述合并队列中, 将所述第三类别的操作请求操作的元数据加入到緩冲 数据队列中, 并返回所述操作结果为可合并请求的返回结果。 15. The metadata server according to claim 12, characterized in that, the merge judgment module is used to judge whether the operation request on metadata is legal if the operation request belongs to the third category. , if it is determined that the operation request on the metadata is illegal, then the return result that the operation request is an error request is returned; otherwise, if it is determined that the operation request on the metadata is legal, then it is determined that the operation request in the merge queue is Whether there is an operation request of the second category, or an operation request of the third category, and the merge queue includes operation requests corresponding to the return results that can be merged; if it is determined that the second category of requests exists in the merge queue. If the operation request is an operation request of the third category, or the operation request of the third category is returned, the return result is that the operation request is a mutually exclusive request; otherwise, if there is no operation request of the second category in the merge queue, and , if there is no operation request of the third category, add the operation request of the third category to the merge queue, and add the metadata of the operation request of the third category to the buffer data queue. , and return the operation result as the return result of the mergeable request.
16、 根据权利要求 13所述的元数据服务器, 其特征在于, 16. The metadata server according to claim 13, characterized in that,
所述请求处理模块, 用于将所述操作请求移出所述请求队列, 并响 应所述操作请求。 The request processing module is used to remove the operation request from the request queue and respond to the operation request.
17、 根据权利要求 14或 15所述的元数据服务器, 其特征在于, 所述请求处理模块, 用于将所述操作请求移出所述请求队列, 并响 应所述操作请求。 17. The metadata server according to claim 14 or 15, characterized in that the request processing module is used to move the operation request out of the request queue and respond to the operation request.
18、 根据权利要求 14或 15所述的元数据服务器, 其特征在于, 所述请求处理模块, 用于将所述操作请求保存在所述请求队列中。 18. The metadata server according to claim 14 or 15, characterized in that the request processing module is configured to save the operation request in the request queue.
19、 根据权利要求 14、 15或 18所述的元数据服务器, 其特征在于, 所述请求处理模块, 用于将所述緩冲数据队列中的元数据发送给存 储节点, 以使所述存储节点对所述元数据进行写入以得到事务结果; 所述元数据服务器, 还包括发送模块, 用于根据所述事务结果, 向 所述合并队列中的操作请求对应的客户端发送操作响应。 19. The metadata server according to claim 14, 15 or 18, characterized in that the request processing module is used to send the metadata in the buffer data queue to the storage node, so that the storage node The node writes the metadata to obtain the transaction result; the metadata server also includes a sending module, configured to send an operation response to the client corresponding to the operation request in the merge queue according to the transaction result.
20、 根据权利要求 19所述的元数据服务器, 其特征在于, 所述目录锁模块,还用于判断所述请求队列中是否还存在操作请求; 所述合并判决模块, 还用于若所述目录锁模块判断出所述请求队列 中还存在操作请求, 则遍历所述请求队列中的每个操作请求, 返回每一 所述操作请求的返回结果; 20. The metadata server according to claim 19, characterized in that: the directory lock module is also used to determine whether there are still operation requests in the request queue; the merge decision module is also used to determine if the operation request exists in the request queue; The directory lock module determines that there are still operation requests in the request queue, then traverses each operation request in the request queue, and returns the return result of each operation request;
所述请求处理模块, 还用于若所述目录锁模块判断出所述请求队列 中不存在操作请求, 则释放所述锁。 The request processing module is also configured to release the lock if the directory lock module determines that there is no operation request in the request queue.
PCT/CN2014/083065 2013-09-30 2014-07-25 Metadata processing method and metadata server WO2015043305A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310464137.8A CN103501339B (en) 2013-09-30 2013-09-30 Metadata processing method and meta data server
CN201310464137.8 2013-09-30

Publications (1)

Publication Number Publication Date
WO2015043305A1 true WO2015043305A1 (en) 2015-04-02

Family

ID=49866509

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/083065 WO2015043305A1 (en) 2013-09-30 2014-07-25 Metadata processing method and metadata server

Country Status (2)

Country Link
CN (1) CN103501339B (en)
WO (1) WO2015043305A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103501339B (en) * 2013-09-30 2017-06-20 华为技术有限公司 Metadata processing method and meta data server
CN105468763A (en) * 2015-12-01 2016-04-06 广东电网有限责任公司电网规划研究中心 Method for multi-person cooperation in big data operation
CN105512279B (en) * 2015-12-04 2019-05-03 华为技术有限公司 A kind of metadata access method, relevant device and system
CN106534309A (en) * 2016-11-14 2017-03-22 晶赞广告(上海)有限公司 Data processing method and apparatus
CN106960055B (en) * 2017-04-01 2020-08-04 广东浪潮大数据研究有限公司 File deletion method and device
CN111737204B (en) * 2020-06-12 2024-03-19 北京百度网讯科技有限公司 File directory traversal method, device, equipment and medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488924A (en) * 2009-02-16 2009-07-22 成都市华为赛门铁克科技有限公司 Metadata modification method and metadata server
EP2159994A1 (en) * 2008-08-26 2010-03-03 BRITISH TELECOMMUNICATIONS public limited company Operation of a content distribution network
CN102567444A (en) * 2011-10-25 2012-07-11 无锡城市云计算中心有限公司 Method for optimizing distributed file system data access
CN102831156A (en) * 2012-06-29 2012-12-19 浙江大学 Distributed transaction processing method on cloud computing platform
CN103501339A (en) * 2013-09-30 2014-01-08 华为技术有限公司 Metadata processing method and metadata server

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209603B2 (en) * 2009-04-29 2012-06-26 Microsoft Corporation Maintaining undo and redo capability across metadata merges
CN101697168B (en) * 2009-10-22 2011-10-19 中国科学技术大学 Method and system for dynamically managing metadata of distributed file system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2159994A1 (en) * 2008-08-26 2010-03-03 BRITISH TELECOMMUNICATIONS public limited company Operation of a content distribution network
CN101488924A (en) * 2009-02-16 2009-07-22 成都市华为赛门铁克科技有限公司 Metadata modification method and metadata server
CN102567444A (en) * 2011-10-25 2012-07-11 无锡城市云计算中心有限公司 Method for optimizing distributed file system data access
CN102831156A (en) * 2012-06-29 2012-12-19 浙江大学 Distributed transaction processing method on cloud computing platform
CN103501339A (en) * 2013-09-30 2014-01-08 华为技术有限公司 Metadata processing method and metadata server

Also Published As

Publication number Publication date
CN103501339A (en) 2014-01-08
CN103501339B (en) 2017-06-20

Similar Documents

Publication Publication Date Title
WO2015043305A1 (en) Metadata processing method and metadata server
US10291705B2 (en) Sending interim notifications for namespace operations for a distributed filesystem
US9792294B2 (en) Using byte-range locks to manage multiple concurrent accesses to a file in a distributed filesystem
US9805056B2 (en) Synchronizing file updates between two cloud controllers of a distributed filesystem
US10630772B2 (en) Maintaining global namespace consistency for a distributed filesystem
US9646022B2 (en) Distributed change notifications for a distributed filesystem
JP5632010B2 (en) Virtual hard drive management as a blob
JP4405533B2 (en) Cache method and cache device
US8499004B2 (en) File system with optimistic I/O operations on shared storage
US20150356110A1 (en) Managing opportunistic locks in a distributed filesystem
US9529731B1 (en) Contention-free approximate LRU for multi-threaded access
WO2014101108A1 (en) Caching method for distributed storage system, node and computer readable medium
US20180145983A1 (en) Distributed data storage system using a common manifest for storing and accessing versions of an object
US10884926B2 (en) Method and system for distributed storage using client-side global persistent cache
US10831719B2 (en) File consistency in shared storage using partial-edit files
US11520750B2 (en) Global file system for data-intensive applications
CN108540510B (en) Cloud host creation method and device and cloud service system
WO2012126229A1 (en) Distributed cache system data access method and device
US9075722B2 (en) Clustered and highly-available wide-area write-through file system cache
CN112653730A (en) User mode network file storage method and system
US20200314165A1 (en) Cloud file transfers using cloud file descriptors
US10095700B2 (en) Persistent file handle object container memory expiry
JP5481669B2 (en) Cache control method, node device, manager device, and computer system
WO2017023709A1 (en) Object storage system with local transaction logs, a distributed namespace, and optimized support for user directories
Tchaye-Kondi et al. Hadoop perfect file: a fast access container for small files with direct in disc metadata access

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14849846

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14849846

Country of ref document: EP

Kind code of ref document: A1