Abstract:
Exemplary methods, apparatuses, and systems include a controller node receiving a request to perform a consistency check of a distributed file system. The controller node transmits, to each of a plurality of nodes, a request for the node to use logical metadata of the distributed file system owned by the node to construct an expected copy of physical metadata mapped to the logical metadata, determine which of the plurality of nodes own actual portions of the physical metadata, transmit corresponding portions of the expected copy of the physical metadata to each of the nodes determined to own actual portions of the physical metadata, and compare expected copies of the physical metadata received from other nodes to the actual physical metadata owned by the node. The controller node receives a result of the comparison from each of the nodes, aggregates the received results, and generates an error report.
Abstract:
Systems and methods for allocating space in persistent storage are provided. A modified bitmap and a tree of bitmap summary pages are used to manage the free space of a large scale storage system. The bitmap is separated into fixed size pages and has bitmap summary entries to summarize the information in the bitmap. Bitmap summary pages can be further summarized into secondary summary pages. The tree data structure can continue to N levels until a topmost level has one bitmap summary page.
Abstract:
System and method for supporting a user-level file system transaction use cloned files of original existing files specified in the user-level file system transaction to perform file system operations on at least one of the original existing files using the cloned files, which include metadata of the original existing files. After at least one of the cloned files have been modified, a batch rename operation is executed to atomically commit every modified cloned file of the user-level file system transaction.
Abstract:
A transaction manager for handling operations on data in a storage system provides a system for executing transactions that uses a versioned tuple cache to achieve fast, abortable transactions using a redo-only log. The transaction manager updates an in-memory key-value store and also attaches a transaction identifier to the tuple as a minor key. Opportunistic locking can be accomplished due to the low cost of aborting transactions.
Abstract:
System and method for supporting a user-level file system transaction use cloned files of original existing files specified in the user-level file system transaction to perform file system operations on at least one of the original existing files using the cloned files, which include metadata of the original existing files. After at least one of the cloned files have been modified, a batch rename operation is executed to atomically commit every modified cloned file of the user-level file system transaction.
Abstract:
System and method for accessing a distributed storage system uses a storage-level access control process at a distributed file system that interfaces with the distributed storage system to determine whether a particular client has access to a particular first file system object using an identifier of the particular client and storage-level access control rules in response to a file system request from the particular client to access a second file system object in the particular first file system. The storage-level access control rules are defined for a plurality of clients and a plurality of first file system objects of the distributed storage system to allow the particular client access to the second file system object in the particular first file system only if the particular client has been determined to have access to the particular first file system object according to the storage-level access control rules.
Abstract:
A virtual file system and method for performing virtual file system operations uses a vnode descriptor to access a vnode for a vnode operation. If the vnode is not found in a vnode cache using the vnode descriptor, the vnode is reconstructed using information regarding the vnode found outside of the vnode cache using the vnode descriptor.