Abstract:
Techniques for synchronization between data structures for original locks and mirror lock data structures are disclosed herein. The mirror lock data structures are being maintained during various scenarios including volume move and aggregate relocation, in order to preserve the non-disruptive persistent operation on storage initiated by clients. According to one embodiment, a storage node determines a plurality of data container locks to be synchronized to a partner node of the storage node and transfers metadata that indicates states of variables that represent the plurality of data container locks to the partner node in a batch. When a client initiates a data access operation that causes an attempt to modify a data container lock of the plurality of data container locks, the storage node sends a retry code to a client that prompts the client to retry the data access operation after a predetermined time period.
Abstract:
Techniques for adding a directory entry to an existing directory data structure maintained by a storage system for storing a plurality of directory entries are provided. A first storage index block is used for storing a pointer to a first hash value from among a plurality of hash values. A second storage index block is allocated when the first storage index block has reached a threshold level for storing pointers to hash values for the plurality of directory entries. A group of pointers including a pointer to a second hash value from among the plurality of hash values is selected. The group of pointers is stored in the second storage index block with a pointer to a third hash value from among the plurality of hash values such that the directory entry can be searched using the plurality of hash values.
Abstract:
A system and method for adaptive data placement in a distributed file system is provided. Upon creation of a new subdirectory, a first heuristic procedure is formed to determine whether the newly created subdirectory should be created locally or on a remote flexible volume. Should it be determination be made to create or store the subdirectory on a remote flexible volume, a second heuristic procedure determines which of a plurality of flexible volumes should store the newly created subdirectory.
Abstract:
Embodiments described herein enable a storage system configured with a cache, i.e., a caching storage system, to obtain soft locks on a plurality of files, including non-regular file types, supported by a plurality of file access protocols. The cache is illustratively embodied as a flexible volume configured to temporarily store information, such as contents of the files, through replication of attributes and data of the files from an origin storage system. The soft locks are illustratively implemented as delegations; a delegation on a file enables the caching storage system to serve the attributes and the data for the file without verifying validity of the data with the origin storage system.
Abstract:
A method, non-transitory computer readable medium and local storage node computing device that establishes a first connection between a first endpoint in a kernel of an operating system and a second endpoint. A proxy application in a user space is invoked and a second connection is established from the operating system kernel to the proxy application. The proxy application is linked to a secure protocol implementation. Handshake messages are proxied between the second endpoint and the proxy application using the first and second connections. Security parameters for the first connection and determined from the handshake messages are sent from the proxy application to the operating system kernel via the second connection. Data is exchanged between the first endpoint in the operating system kernel and the second endpoint using the first connection and the security parameters.
Abstract:
A system and method for adaptive data placement in a distributed file system is provided. Upon creation of a new subdirectory, a first heuristic procedure is formed to determine whether the newly created subdirectory should be created locally or on a remote flexible volume. Should it be determination be made to create or store the subdirectory on a remote flexible volume, a second heuristic procedure determines which of a plurality of flexible volumes should store the newly created subdirectory.
Abstract:
Techniques for synchronization between data structures for original locks and mirror lock data structures are disclosed herein. The mirror lock data structures are being maintained during various scenarios including volume move and aggregate relocation, in order to preserve the non-disruptive persistent operation on storage initiated by clients. According to one embodiment, a storage node determines a plurality of data container locks to be synchronized to a partner node of the storage node and transfers metadata that indicates states of variables that represent the plurality of data container locks to the partner node in a batch. When a client initiates a data access operation that causes an attempt to modify a data container lock of the plurality of data container locks, the storage node sends a retry code to a client that prompts the client to retry the data access operation after a predetermined time period.
Abstract:
Machine implemented method and system for adding a directory entry to an existing directory data structure maintained by a storage system for storing a plurality of directory entries are provided. A first level storage block is used for storing a pointer to a first hash value from among a plurality of hash values. A new third level storage block is allocated when a second level storage block has reached a threshold level for storing pointers to hash values for the plurality of directory entries. A group of pointers including a pointer to a second hash value from among the plurality of hash values is selected. The group of pointers is stored in the third level storage block with a pointer to a third hash value from among the plurality of hash values such that the directory entry can be searched using the plurality of hash values.