Multi-tenant data store management
AssigneeAmazon Technologies, Inc.
InventorAravind Yalamanchi
Life of this patent
Estimating the term…
Abstract
Systems and methods for managing multi-tenant data stores are provided in which a storage abstraction layer may be used by various storage profiles to access one or more databases. Different storage profiles, including different physical storage parameters and/or different modes of data access, may be advantageously used for various entities/users having different storage, access, and other, requirements. Storage profiles for existing users may also be modified, and/or switched to different storage profiles, based on changes in the use of service provider resources, access to a provided web service, and/or required database size, etc.
Claims24
A computer-implemented method, comprising:
- providing, by a computer system, a data store including a plurality of databases, the data store supported by a service provider;
- providing web services for a plurality of tenants of the service provider, each of the web services accessing at least one of the plurality of databases of the data store;
- determining, for a first tenant, a first storage profile from a plurality of storage profiles, the first storage profile being determined based at least in part on characteristics of data of the first tenant, the first storage profile including parameters for specifying a type of database to be provided for the first tenant, the type of database being one of a dedicated database type, a shared database type, or a cold storage type;
- storing the data associated with the first tenant according to the parameters of the first storage profile, the data being stored in a first database of the plurality of databases utilizing a storage abstraction layer that is configured to access the plurality of databases and to implement the parameters included in at least the first storage profile that specify the type of database to be provided to the first tenant;
- monitoring, by the computer system, usage by the first tenant of the first database;
- reassigning, by the computer system, the first tenant to a second storage profile that is different from the first storage profile based at least in part on the monitoring, the second storage profile comprising different parameters for specifying the type of database to be provided by a second database of the plurality of databases;
- and
- migrating, by the computer system, the data associated with the first tenant from the first database to the second database, wherein subsequent storage of the data associated with the first tenant at the second database is in accordance with the second storage profile.
A system, comprising:
- a memory that stores computer-executable instructions;
- and
- a processor configured to access the memory and execute the computer-executable instructions to collectively at least:
- provide a data store including a plurality of databases, the data store supported by a service provider;
- provide web services for a plurality of tenants of the service provider, each of the web services accessing at least one of the plurality of databases of the data store;
- assign a first tenant of the plurality of tenants a first storage profile comprising parameters specifying a database type to be provided, the database type being one of a dedicated database type, a shared database type, or a cold storage type, the first storage profile identifying physical storage parameters for at least a first database of the database type from among the plurality of databases, the first database accessible by at least a first web service from among the web services, the first web service provided for the first tenant;
- provide a storage abstraction layer that is configured to access the plurality of databases of the data store and to implement the parameters included in the first storage profile assigned to the first tenant, wherein providing the first web service for the first tenant comprises the storage abstraction layer using the parameters included in the first storage profile assigned to the first tenant to at least one of read, write, or delete data stored in the first database;
- and
- migrate the data associated with the first tenant from the first database to a second database corresponding to a second storage profile based at least in part on a monitored usage associated with the first tenant and the first database.
A system, comprising:
- a memory that stores computer-executable instructions;
- a plurality of data storage devices;
- and
- a processor configured to access the memory and execute the computer-executable instructions to collectively at least:
- provide a data store including a plurality of databases stored on the data storage devices;
- provide a web service with access to the plurality of databases;
- enroll a user with the web service by providing the user with a plurality of options related to at least one of database size, resource access, or physical storage parameters for at least one database;
- in response to enrolling the user, assign the user to a first storage profile specifying parameters for identifying a database type to be provided and for defining resource access to at least one database of the database type from among the plurality of databases, the database type being one of a dedicated database type, a shared database type, or a cold storage type;
- provide a storage abstraction layer that is configured to access the plurality of databases and to store data associated with the user at a first database of the database type utilizing the parameters included in the first storage profile;
- monitor usage of the plurality of databases, the usage being associated with at least one of the user's use of resources, the user's access to the web services provided, another user's access to the web services provided for the user, or a change in a database size of one of the plurality of databases that is accessible by the user;
- reassign the user to a second storage profile that is different from the first storage profile based at least in part on the monitored usage;
- and
- migrate stored data associated with the user from the first database to a second database based at least in part on the monitored usage, the second database corresponding to the second storage profile.
A computer-readable storage medium storing computer-executable instructions that, when executed by one or more computer systems, configure the one or more computer systems to perform operations comprising:
- providing a plurality of web services for a plurality of entities, the plurality of web services accessing a plurality of databases, at least a first web service from among the plurality of web services being provided for a first entity from among the plurality of entities, and the first web service accessing at least a first database from among the plurality of databases;
- assigning the first web service to a tier from among a plurality of tiers, the plurality of tiers comprising:
- a first tier comprising one or more dedicated databases of the plurality of databases;
- a second tier comprising one or more shared databases of the plurality of databases, an individual shared database being utilized by at least two of the plurality of entities;
- and
- a third tier comprising one or more cold storage databases of the plurality of databases;
- assigning a first storage profile to the first entity for the first web service based at least in part on the tier to which the first web service is assigned, the first storage profile including parameters for specifying a database type to be provided, the database type being one of a dedicated database type, a shared database type, or a cold storage type;
- providing a storage abstraction layer that is configured to access the plurality of databases and to implement the parameters included in the first storage profile;
- monitoring usage of the plurality of databases, the usage being associated with at least one of the first entity's use of resources, the first entity's access to the web services provided for the first entity, another entity's access to the web services provided for the first entity, or a change in a database size of one of the plurality of databases that is accessible by the first entity;
- and
- migrating data associated with the first entity from the first database to a second database corresponding to a second storage profile based at least in part on the monitored usage.
Dependencies are inferred from the claim text.