US Pat. No. 9,389,806

MEDIA AWARE DISTRIBUTED DATA LAYOUT

Avere Systems, Inc., Pit...

1. A file system for storing a file comprising:
a plurality of vdisks, each vdisk having a plurality of non-transient storage segments, each segment providing a specific
class of service (CoS) for storage, each vdisk having a plurality of inodes stored in an inode table, each inode describing
a file in the vdisk, each inode of each vdisk storing data on one or more of a plurality of segments, each segment having
a different class of service for storage where a vdisk to hold a newly created file or directory is chosen from the plurality
of vdisks based on a predetermined mapping into the plurality of vdisks in the storage system, the vdisk chosen to hold the
newly created file or directory differs from the vdisk holding the newly created object's parent directory; and

a controller having at least one physical processor which stores data of a file in an inode of a vdisk, in one or more arbitrary
segments of that vdisk.

US Pat. No. 9,170,953

SYSTEM AND METHOD FOR STORING DATA IN CLUSTERS LOCATED REMOTELY FROM EACH OTHER

Avere Systems, Inc., Pit...

1. A system for storing data comprising:
a plurality of clusters located remotely from each other in which the data is stored, each cluster having a token server that
issues tokens which provide synchronized concurrent controlled access by the clusters to the data shared by the clusters with
only one token server responsible for any piece of data, each cluster having a plurality of Cache appliances, each cluster
having at least one backend file server in which the data is stored, each cluster includes a configuration module for managing
configuration information of the cluster, each Cache appliance includes a token client module which handles obtaining tokens
from multiple clusters, each Cache appliance includes an NFS client module which sends calls to a backend file server in any
of the clusters in the network, each Cache appliance includes a Cache manager module which executes a request by obtaining
tokens from the token server and accessing Cache attributes and Cache data; and

a communication network through which the servers and appliances communicate with each other, one of the plurality of clusters
being a remote cluster that performs operations directly on the data of the backend server of a different one of the plurality
of clusters whose token server controls access to the data.

US Pat. No. 9,323,681

FILE STORAGE SYSTEM, CACHE APPLIANCE, AND METHOD

Avere Systems, Inc., Pit...

1. A system for responding to a file system protocol request in regard to a back-end server comprising:
a primary token server;
a plurality of cache appliances in communication with the token server, each of which receives tokens from the token server
to synchronize access to data and attributes caches of the cache appliances by revoking incompatible tokens when granting
new tokens, and reading and writing data and attributes to the back-end server when tokens are revoked, the cache appliance
having persistent storage in which data and attributes are stored, and the token server having persistent storage in which
tokens are stored and where the cache appliance maintains its own copy of modified data and attributes, and stores them to
the back-end file server upon revocation of a write token, wherein the token server produces a write data token to write data
to the back-end server by the cache appliance, and ensures that no two write data tokens are granted over a single byte of
any same file, wherein the token server produces write attribute tokens for files stored in the back-end server and ensures
that no two write attribute tokens are granted for the same file, and wherein the token server revokes an already granted
write data or write attribute token by recalling the granted write data or write attribute token if a new write data or write
attribute token is requested from the token server and is incompatible with the already granted write attribute or write data
token and when a write data or write attribute token is revoked, the cache appliance writes the modified version of the file's
data or attributes to the back-end file server; and

a hot spare token server to which the write data tokens and write attribute tokens are mirrored, the hot spare token server
replaces the primary token server if the primary token server fails and continues operation with a reconstructed token database,
if the hot spare token server replaces the primary token server, the hot spare server becomes the primary token server and
each write data token and write attribute token that is mirrored in the hot spare token server is revoked in a same way as
when a corresponding write data token or read data token is revoked in the primary token server, the token server produces
hold modified tokens for the cache appliance for the file's attributes and data, and data and attributes associated with the
hold modified tokens are retrieved directly from the cache appliance having the hold modified tokens, the hold modified tokens
identify the cache appliance having the hold modified tokens.

US Pat. No. 9,405,487

MEDIA AWARE DISTRIBUTED DATA LAYOUT

Avere Systems, Inc., Pit...

1. A storage system comprising:
a computer;
a plurality of vdisks in communication with the computer, each vdisk containing a plurality of persistent storage segments,
each segment providing a specific class of service (CoS) for storage different from the CoS for storage of the other segments;
each vdisk storing one or more files with data and meta data distributed among its storage segments, each file's meta data
including a search tree indexed by logical block number, each file described by a single inode, a first storage segment of
the plurality of storage segments being a first disk drive having a low latency and storing a first portion of one of the
files, a second storage segment of the plurality of storage segments storing a second portion of the one file being a second
disk drive and having a higher latency than the first storage segment so when the computer finishes reading the first portion
of the file, the second portion of the file with the second storage segment is ready to be read by the computer because the
second disk drive has come up to operational speed.

US Pat. No. 9,696,944

MEDIA AWARE DISTRIBUTED DATA LAYOUT

Avere Systems, Inc., Pit...

1. A file system for storing a file comprising:
a plurality of vdisks, each vdisk having a plurality of non-transient storage segments, each segment providing a specific
class of service (CoS) for storage, each vdisk having a plurality of inodes stored in an inode table, each inode describing
a file in the vdisk, each inode of each vdisk storing data on one or more of a plurality segments, each segment having a different
class of service for storage: and

a controller having a plurality of physical processors which store data of file in an inode of a vdisk, in one or more segments
that vdisk, each processor serving one or more of the vdisks, each vdisk is an arbitrary collection of directories and files,
and at least one file is stored in at least two segments.

US Pat. No. 9,342,528

METHOD AND APPARATUS FOR TIERED STORAGE

Avere Systems, Inc., Pit...

1. A system for storing file data and directory data received over a network comprising:
a network interface in communication with the network which receives Network Attached Storage (NAS) requests containing data
to be written to files from the network and a set of server exports, each of which is a root of a file system tree;

a first type of storage which is a solid state drive;
a second type of storage different from the first type of storage, where the difference includes drives that operate at least
at a 10% difference in speed or drives that have at least a 10% difference in bandwidth or a 10% difference in average latency
perform random read operations, the second type of storage is a rotating magnetic drive;

a policy specification specifies a set of data policy rules associated with each server export such that the policy rules
are applied to any object allocated within a file system tree associated with an export, and which specifies a first portion
of one or more files' data which is less than alt of the files' data is stored in the first type of storage and a second portion
of the data which is less than all of the data of the files and is different from the first portion is stored in the second
type of storage, the policy specification either associated with an inode and inherited from its parent directory upon the
inode's creation, or alternatively stored in an incoming file handle and inherited from its parent directory by lookup, create
or other operations that return new file handles, with a policy ID field stored in each inode and inherited on file or directory
creation; and

a hardware processing unit which executes the policy and causes the first portion to be stored in the first type of storage
and the second portion to be stored in the second type of storage, the processing unit connected to the first type of storage
and the second type of storage by internal buses, the first portion of data is smaller than the second portion of data so
by the time the processing unit is processing the first portion of data, the rotating magnetic drive of the second type of
storage is transferring the second portion of data at the rotating magnetic drive's full rate after having performed the rotating
magnetic drive's high latency seek operation concurrent with the transfer of at least a portion of the first portion of data
from the solid-state drive of the first type of storage.

US Pat. No. 9,710,195

MEDIA AWARE DISTRIBUTED DATA LAYOUT

Avere Systems, Inc., Pit...

1. A storage system, comprising:
a computer;
a plurality of vdisks in communication with the computer, each vdisk containing a plurality of persistent storage segments,
each segment providing a specific class of service (CoS) for storage different from the CoS for storage of the other segments;
each vdisk storing one or more files with data and meta data distributed among its storage segments, a vdisk to hold a newly
created file or directory is chosen from the plurality of vdisks based on a predetermined mapping into the plurality of vdisks;
and

a policy module for vdisk and segment choice in communication with the computer, a first portion of a file's data is stored
in a first segment, and a second portion of the file's data is stored in either the first segment or a second segment, the
predetermined mapping is a round robin assignment algorithm.

US Pat. No. 10,042,916

SYSTEM AND METHOD FOR STORING DATA IN CLUSTERS LOCATED REMOTELY FROM EACH OTHER

Avere Systems, Inc., Pit...

1. A network file system for managing a set of clustered cache appliances used for storing data, wherein at least some of the clustered cache appliances span a boundary defined by a communication network, the network file system comprising:a plurality of geographically distributed clusters located remotely from each other, at least a first remote cluster being separated from at least a second home cluster by a boundary defined by a communication network;
each cluster comprising:
a token server that controls access to data stored for the token server's respective cluster by managing access to the data with tokens, wherein access to data for the respective cluster is controlled by the respective cluster's token server and no other token server of any other cluster;
a configuration module for managing configuration information of the cluster;
a plurality of cache appliances, wherein each cache appliance comprises:
a cache manager module which executes a request to access stored data by obtaining tokens from a token server of one of the clusters and accessing cache attributes and cache data;
a token client module which determines a particular token server of one of the clusters that is to be accessed when obtaining tokens from a token server of one of the cluster in response to the request; and
an NFS client module which sends calls to any backend file server in any of the clusters; and
a backend file server in which data for the backend file server's respective cluster is stored, and wherein the first remote cluster performs operations directly on the data of the backend server of the second home cluster.

US Pat. No. 10,338,853

MEDIA AWARE DISTRIBUTED DATA LAYOUT

Avere Systems, Inc., Pit...

1. A digital file storage system having an architecture that improves scalability of the digital file storage system as a result of dividing files within a given directory into a number of vdisks which can each be processed independently, and that improves class of service management by determining class of service for individual blocks of a file stored in different segments of persistent memory, comprising:an interface that receives digital files;
a controller comprising a plurality of processors;
a memory comprising a plurality of vdisks each served by one of the plurality of processors, wherein scalability of the digital file storage system is improved as a result of dividing files within a given directory into a number of vdisks which can each be processed independently and wherein each vdisk comprises:
a plurality of persistent storage segments, each persistent storage segment providing a specific class of service for storage different from the class of service for storage of the other persistent storage segments; and
a policy module in communication with the controller, wherein the policy module determines vdisk and segment choice for storage of digital files by determining the class of service for an individual block of a digital file by choosing a segment having an appropriate class of service to which to allocate the block;
wherein one or more digital files with data and meta data are distributed among the persistent storage segments of one or more vdisk;
wherein a vdisk is chosen from the plurality of vdisks to hold a newly created digital file or directory based on a predetermined mapping of the plurality of vdisks;
wherein storing the newly created digital file is done in a manner that improves class of service management by storing a first portion of the newly created digital file in a first segment of the persistent memory and by storing a second portion of the newly created digital file in a second segment of the persistent memory, wherein the second segment has a different class of service for storage than the first segment's class of service; and
wherein retrieving the stored newly created digital file is done by reading the first portion of the stored digital file from the first segment of the persistent memory, and by reading the second portion of the stored digital file from the second segment of the persistent memory.

US Pat. No. 10,248,655

FILE STORAGE SYSTEM, CACHE APPLIANCE, AND METHOD

Avere Systems, Inc., Pit...

1. A network file system comprising one or more processors and memory storing executable instructions which, when executed by the one or more processors configure the network file system with an architecture for managing cache appliances used for storing data, wherein the cache appliances are managed using a synchronization mechanism that ensures that all references to a cached file are up-to-date, even when a file is written through multiple cache appliances concurrently, and wherein the configured network file system comprises:a plurality of backend servers in which data is stored;
a plurality of token servers that each control access to the stored data using stored tokens, wherein the tokens are used to ensure cache coherence when data is updated at a cache appliance, and wherein the stored tokens comprise:
a write data token for files stored in the backend server, and wherein the write data token ensures that no two write data tokens are granted over a single byte of any same file;
a write attribute token for files stored in the backend server, and wherein the write attribute token ensures that no two write attribute tokens are granted for the same file;
ownership tokens that allow a given cache appliance to read data from another cache appliance; and
wherein each token server is configured to revoke an already granted write data token or a write attribute token by recalling the granted write data token or write attribute token if a new write data token or a new write attribute token is requested by a cache appliance and is incompatible with the already granted write attribute token or the already granted write data token, so that cache coherence is provided;
a plurality of cache appliances, wherein each cache appliance comprises:
a cache manager module which executes a client request to access stored data, wherein the request is executed by obtaining one or more tokens from a particular token server and accessing cache attributes and cache data in accordance with the one or more obtained tokens;
a token client module which determines the particular token server that is to be accessed when obtaining the tokens in response to the client request for access to the stored data; and
an NFS client module which sends calls for stored data to any of the backend servers, wherein the ownership tokens allow the given cache appliance to read data from another cache appliance associated with any of the backend servers.