Universal quota entry identification
First Claim
1. A method, comprising:
- receiving a quota-sensitive data request from a user at one of a plurality of storage servers clustered in a data storage system, wherein the quota-sensitive data request includes a platform-specific identification value and changes an amount of storage resources of the data storage system used by the user, wherein the plurality of platform-specific identification value is at least one of the following;
a user identification for a general-purpose operating system (UID);
a group identification for a general-purpose operating system (GID);
a tree identification for a storage server operating system (TID); and
a security identification for a general-purpose operating system (SID);
translating the platform-specific identification value into a platform-independent identification value for the user, wherein the platform-specific identification value is based on a platform from which the quota-sensitive data request originated, and wherein the platform-independent identification value is assigned to the user and corresponds to the same user regardless of the platform from which the quota-sensitive data request originated, wherein said translating comprises performing a lookup in a local, cached copy, of at least a portion of an identification mapping database that stores one or more mappings between platform-specific identification values and platform-independent identification values for a plurality of entities across the plurality of storage servers clustered in the data storage system;
determining whether the quota-sensitive data request violates a quota assigned to the user using the platform-independent identification value, wherein the quota is a limit of an amount of storage resources allocated to the user, and wherein said determining comprises;
performing a lookup, using the platform-independent identification value, in a local, cached copy of a quota policy database that stores an amount of storage resources used by each of the plurality of entities and a quota limit of an amount of storage resources allocated to each of the plurality of entities to determine the amount of storage resources used by the user, wherein the local quota policy database is a cached copy of at least a portion of a remote quota policy database that stores the amounts of storage resources and the quota limits for the plurality of entities across the plurality of storage servers clustered in the data storage system, wherein the remote quota policy database tracks the amounts of storage resources used by the plurality of entities according to platform-independent identification values corresponding to the plurality of entities across the plurality of storage servers clustered in the data storage system;
determining a changed amount of storage resources by the quota-sensitive data request;
calculating an updated amount of storage resources used by the user using the amount of storage resources used by the user and the changed amount; and
comparing the updated amount against the quota assigned to the user;
executing a system rule when the quota-sensitive data request violates the quota; and
processing the quota-sensitive data request when the quota-sensitive data request does not violate the quota.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and a method for determining whether a quota has been violated by using a platform-identification value, instead of the platform-specific identification value. The method may include receiving a quota-sensitive data request from a user at a data storage system, which includes a platform-specific identification value. The method further includes performing a lookup operation on a first data store using the platform-specific identification value to determine a platform-independent identification value that corresponds to the user, and translating the platform-specific identification value into a platform-independent identification value. The first data store includes multiple entries that map multiple platform-specific identification values that correspond to the same user on different platforms to the same platform-independent identification value. Once the platform-specific identification value is translated, the quota-sensitive data request is determined whether a quota is violated using the platform-independent identification value.
-
Citations
17 Claims
-
1. A method, comprising:
-
receiving a quota-sensitive data request from a user at one of a plurality of storage servers clustered in a data storage system, wherein the quota-sensitive data request includes a platform-specific identification value and changes an amount of storage resources of the data storage system used by the user, wherein the plurality of platform-specific identification value is at least one of the following; a user identification for a general-purpose operating system (UID); a group identification for a general-purpose operating system (GID); a tree identification for a storage server operating system (TID); and a security identification for a general-purpose operating system (SID); translating the platform-specific identification value into a platform-independent identification value for the user, wherein the platform-specific identification value is based on a platform from which the quota-sensitive data request originated, and wherein the platform-independent identification value is assigned to the user and corresponds to the same user regardless of the platform from which the quota-sensitive data request originated, wherein said translating comprises performing a lookup in a local, cached copy, of at least a portion of an identification mapping database that stores one or more mappings between platform-specific identification values and platform-independent identification values for a plurality of entities across the plurality of storage servers clustered in the data storage system; determining whether the quota-sensitive data request violates a quota assigned to the user using the platform-independent identification value, wherein the quota is a limit of an amount of storage resources allocated to the user, and wherein said determining comprises; performing a lookup, using the platform-independent identification value, in a local, cached copy of a quota policy database that stores an amount of storage resources used by each of the plurality of entities and a quota limit of an amount of storage resources allocated to each of the plurality of entities to determine the amount of storage resources used by the user, wherein the local quota policy database is a cached copy of at least a portion of a remote quota policy database that stores the amounts of storage resources and the quota limits for the plurality of entities across the plurality of storage servers clustered in the data storage system, wherein the remote quota policy database tracks the amounts of storage resources used by the plurality of entities according to platform-independent identification values corresponding to the plurality of entities across the plurality of storage servers clustered in the data storage system; determining a changed amount of storage resources by the quota-sensitive data request; calculating an updated amount of storage resources used by the user using the amount of storage resources used by the user and the changed amount; and comparing the updated amount against the quota assigned to the user; executing a system rule when the quota-sensitive data request violates the quota; and processing the quota-sensitive data request when the quota-sensitive data request does not violate the quota. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
-
receiving a quota-sensitive data request for storage resources from a user at one of a plurality of storage servers clustered in a data storage system, wherein the quota-sensitive data request includes a platform-specific identification value and changes an amount of storage resources of the data storage system used by the user, wherein the platform-specific identification value is based on a platform from which the quota-sensitive data request originated; performing a first lookup operation on a first data store to determine a platform-independent identification value using the platform-specific identification value that corresponds to the user, wherein the first data store is a cached copy of at least a portion of an identification mapping data store that stores one or more mappings between platform-specific identification values and platform-independent identification values for a plurality of entities across the plurality of storage servers clustered in the data storage system, wherein the platform-independent identification value is assigned to the user and corresponds to the same user regardless of the platform from which the quota-sensitive data request originated, wherein the first data store stores multiple platform-specific identification values that correspond to the user that map to the platform-independent identification value; translating the platform-specific identification value of the quota-sensitive data request into the platform-independent identification value; performing a second lookup operation on a second data store using the platform-independent identification value, wherein performing the second lookup operation comprises searching for a quota policy entry identified by the platform-independent identification value in a local, cached copy, of a quota policy data store that stores an amount of storage resources used by each of the plurality of entities and a quota limit of an amount of storage resources allocated to each of the plurality of entities, wherein the local quota policy data store is a cached copy of at least a portion of a remote quota policy data store that stores the amounts of storage resources and the quota limits for the plurality of entities across the plurality of storage servers clustered in the data storage system, wherein the remote quota policy database tracks the amounts of storage resources used by the plurality of entities according to platform-independent identification values corresponding to the plurality of entities across the plurality of storage servers clustered in the data storage system, and wherein the quota policy entry stores a quota of storage resources assigned to the user and the amount of storage resources used by the user, wherein the quota is a limit of an amount of storage resources allocated to the user; determining an updated amount of storage resources used by the user using the amount of storage resources used by the user and a changed amount of storage resources by the quota-sensitive data request; determining whether the updated amount would violate the quota of storage resources assigned to the user; executing a system rule when the quota-sensitive data request violates the quota; and processing the quota-sensitive data request when the quota-sensitive data request does not violate the quota. - View Dependent Claims (9)
-
-
10. A storage server of a cluster of storage servers in a data storage system, comprising:
-
a processor; a first communication interface through which to communicate with a plurality of clients, wherein the plurality of clients are different platforms; and a memory storing a first local data store and a second local data store and instructions which configure the processor to determine whether a quota-sensitive data request violates a quota of storage resources assigned to an entity by; receiving a plurality of data requests from the entity at the first communication interface from the different platforms, wherein each of the plurality of data request includes a platform-specific identification value based on the particular platform from which each of the plurality of data requests originated; determining if each of the plurality of data requests is a quota-sensitive request that changes an amount of storage resources associated with the storage server used by the entity; for each of the quota-sensitive requests, translating each of the platform-specific identification values of each of the plurality of data requests into a platform-independent identification value, wherein said translating comprises performing a first lookup operation in the first local data store using each of the platform-specific identification values to determine the platform-independent identification value that corresponds to the entity, wherein the first local data store is a cached copy of at least a portion of an identification mapping data store that stores one or more mappings between platform-specific identification values and platform-independent identification values for a plurality of entities across the plurality of storage servers clustered in the data storage system, wherein the first local data store stores entries that map each of the platform-specific identification values of the different platforms, which all correspond to the same entity, to the platform-independent identification value for the entity; for each of the quota-sensitive requests, determining whether the respective quota-sensitive requests violates the quota assigned to the entity, wherein the quota is a limit of an amount of storage resources allocated to the entity, wherein said determining comprises performing a second lookup operation in the second local data store using the platform-independent identification value for the entity, wherein the second local data store is a cached copy of a quota policy database that stores an amount of storage resources used by each of the plurality of entities and a quota limit of an amount of storage resources allocated to each of the plurality of entities to determine the amount of storage resources used by the user, wherein the local quota policy database is a cached copy of at least a portion of a remote quota policy database that stores the amounts of storage resources and the quota limits for the plurality of entities across the plurality of storage servers clustered in the data storage system, wherein the remote quota policy database tracks the amounts of storage resources used by the plurality of entities according to platform-independent identification values corresponding to the plurality of entities across the plurality of storage servers clustered in the data storage system, and wherein the second local data store stores the quota of storage resources assigned to the entity and the amount of storage resources used by the entity; determining an updated amount of storage resources used by the entity using the amount of storage resources used by the entity and a changed amount of storage resources by the quota-sensitive data request; and determining whether the updated amount would violate the quota of storage resources assigned to the entity; and executing a system rule when the quota-sensitive data request violates the quota; and processing the quota-sensitive data request when the quota-sensitive data request does not violate the quota. - View Dependent Claims (11, 12, 13)
-
-
14. A non-transitory machine-readable storage medium storing instructions thereon, which when executed by a processor cause the processor to perform a method, the method comprising:
-
performing a first lookup operation of a first data store to determine a platform-independent identification value that corresponds to a user using a first platform-specific identification value of a first data request from the user on a first platform, wherein the first platform-specific identification value is based on the first platform from which the first data request originated, wherein the first data store is a cached copy of at least a portion of an identification mapping data store that stores one or more mappings between platform-specific identification values and platform-independent identification values for a plurality of entities across the plurality of storage servers clustered in the data storage system, and wherein the first data store stores an entry that maps the user'"'"'s first platform-specific identification value to the user'"'"'s platform-independent identification value; determining if the first data request is quota sensitive, wherein the first data request is quota sensitive when the first data request changes an amount of storage resources of the data storage system used by the user; if the first data request is quota-sensitive, translating the first platform-specific identification value of the first data request into the platform-independent identification value; performing a second lookup operation of the first data store to determine the platform-independent identification value that corresponds to the user using a second platform-specific identification value of a second data request from the user on a second platform, wherein the second platform-specific identification value is based on the second platform from which the second data request originated, and wherein the first data store stores an entry that maps the second platform-specific identification value to the platform-independent identification value; determining if the second data request is quota sensitive, wherein the second data request is quota sensitive when the second data request changes the amount of storage resources used by the user; if the second data request is quota-sensitive, translating the second platform-specific identification value of the second data request into the platform-independent identification value; and performing a third lookup operation in a second data store using the platform-independent identification value to determine whether the first data request violates a quota assigned to the user, wherein the second local data store is a cached copy of a quota policy database that stores an amount of storage resources used by each of the plurality of entities and a quota limit of an amount of storage resources allocated to each of the plurality of entities to determine the amount of storage resources used by the user, wherein the local quota policy database is a cached copy of at least a portion of a remote quota policy database that stores the amounts of storage resources and the quota limits for the plurality of entities across a plurality of storage servers clustered in the data storage system, wherein the remote quota policy database tracks the amounts of storage resources used by the plurality of entities according to platform-independent identification values corresponding to the plurality of entities across the plurality of storage servers clustered in the data storage system, and wherein the first data request violates the quota when a changed amount of storage resources by the first data request would cause the amount of storage resources used by the user to exceed the quota. - View Dependent Claims (15, 16)
-
-
17. A system, comprising:
-
a plurality of storage servers clustered in a data storage system; a plurality of storage resources coupled to the plurality of storage servers; a set of one or more storage devices comprising; an identification mapping database that stores a plurality of entries that map a plurality of platform-specific identification values that correspond to a same entity on a plurality of different platforms to a platform-independent identification value assigned to the entity; and a quota policy database that stores an entry for the platform-independent identification value assigned to the entity that includes an amount of storage resources used by the entity and a quota limit of an amount of storage resources allocated to the entity, wherein each of the plurality of storage servers stores a local cached copy of at least a portion of the identification mapping database and a local cached copy of at least a portion of the quota policy database; a quota management system, executing on each of the plurality of storage servers, coupled to communicate with the identification mapping database and the quota policy database, wherein the quota management system is configured to; receive a data request from the entity on one platform of the plurality of different platforms, determine if the data request is a quota-sensitive request that changes the amount of storage resources used by the entity, perform a first lookup operation in the local cached copy of the identification mapping database using a particular platform-specific identification value for the entity on the one platform from which the data request originated to determine the platform-independent identification value that corresponds to entity when the data request is quota-sensitive, translate the particular platform-specific identification value of the data request to the platform-independent identification value when the data request is quota-sensitive, perform a second lookup operation in the local cached copy of the quota policy database using the platform-independent identification value to determine the amount of storage resources used by the entity, determine an updated amount of storage resources used by the entity using the amount of storage resources used by the entity and a changed amount of storage resources by the quota-sensitive data request; determine whether the updated amount would violate the quota of storage resources assigned to the entity; execute a system rule when the data request violates the quota; and process the quota-sensitive data request when the quota-sensitive data request does not violate the quota.
-
Specification