Multi-tenancy storage node
Abstract
A multi-tenancy storage node is provided. The storage node hosts partitions of multiple databases accessed by multiple applications. Each database is governed by a corresponding service-level agreement (SLA) or policy that specifies a maximum load or level of operation of the database in terms of one or more metrics (e.g., number or frequency of reads/writes, maximum size of reads/writes). To determine whether another database can be hosted by the node, a snapshot of the node's database operations is replayed on a test node, along with operations that exercise the other database. If maximum thresholds of the node for the metrics are not exceeded, the other database can be added to the storage node. An SLA is generated for it automatically, based on the metrics it exhibited during the operations on the test node. The storage node may enforce the SLA by rate-limiting activity of one or more applications.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method, comprising:
replaying on a test storage node a snapshot of database operations performed on another storage node hosting partitions of multiple databases; during said replaying of the snapshot of database operations, executing an additional set of operations on an additional database installed on the test storage node but not installed on the other storage node prior to said replaying; automatically generating a service level agreement (SLA) for the additional database, based on metrics exhibited by the additional database during said replaying; and installing on the other storage node one or more partitions of the additional database and the SLA.
2 . The method of claim 1 , further comprising:
during said replaying, monitoring each of a plurality of application-level metrics for the additional database and for the test storage node; and determining whether the application-level metrics exhibited by the test storage node during said replaying exceed maximum thresholds associated with the other storage node.
3 . The method of claim 2 , further comprising, prior to said replaying:
benchmarking the test storage node to identify the maximum thresholds associated with the other storage node; wherein a hardware configuration of the test storage node is substantially identical to a hardware configuration of the other storage node.
4 . The method of claim 2 , further comprising:
for each of the application-level metrics, identifying a maximum exhibited by the additional database during execution of the additional set of operations.
5 . The method of claim 4 , wherein the generated SLA comprises the maximums of each of the application-level metrics exhibited by the additional database during execution of the additional set of operations.
6 . The method of claim 1 , further comprising, after said installing:
recording, on the other storage node, a second snapshot of database operations encompassing the multiple databases and the additional database; replaying the second snapshot of database operations on the test storage node; and modifying SLAs of one or more databases hosted on the other storage node based on metrics exhibited by the one or more databases during replaying of the second snapshot.
7 . The method of claim 1 , further comprising, after said installing:
on the other storage node, monitoring compliance of each of the multiple databases and the additional database with corresponding SLAs that limit operations of the corresponding databases.
8 . The method of claim 1 , wherein:
for each of the multiple databases, a corresponding SLA limits operations of the database according to a plurality of application-level metrics.
9 . The method of claim 8 , wherein the application-level metrics include at least one of:
a maximum number of read operations; a maximum number of write operations; a maximum size of a read operation; and a maximum size of a write operation.
10 . The method of claim 8 , wherein the application-level metrics include at least one of:
a maximum number of database operations per predefined time period; and a maximum number of database records accessed per predefined time period.
11 . The method of claim 8 , wherein the application-level metrics include a maximum number of unique database records.
12 . The method of claim 1 , wherein, after said installing, each of the multiple databases and the additional database are accessed by different applications.
13 . A system, comprising:
a test storage node, comprising:
at least one processor;
a replay module comprising a non-transitory computer-readable medium storing instructions that, when executed, cause the test storage node to:
replay a snapshot of database operations performed on another storage node hosting partitions of multiple databases; and
during said replaying of the snapshot of database operations, execute an additional set of operations on an additional database installed on the test storage node but not installed on the other storage node prior to said replaying;
a service-level agreement (SLA) generation module comprising a non-transitory computer-readable medium storing instructions that, when executed, cause the system to automatically generate an SLA for the additional database, based on metrics exhibited by the additional database during said replaying; and
the other storage node; wherein one or more partitions of the additional database and the SLA are installed on the other storage node after the SLA is generated.
14 . The system of claim 13 , wherein the test storage node further comprises a monitor module comprising a non-transitory computer-readable medium storing instructions that, when executed, cause the test storage node to:
during said replay, monitor each of a plurality of application-level metrics for the additional database and for the test storage node; and determine whether the application-level metrics exhibited by the test storage node during said replay exceed maximum thresholds associated with the other storage node.
15 . The system of claim 14 , wherein:
the test storage node further comprises a benchmark module comprising a non-transitory computer-readable medium storing instructions that, when executed, cause the test storage node to benchmark the test storage node to identify the maximum thresholds associated with the other storage node; and a hardware configuration of the test storage node is substantially identical to a hardware configuration of the other storage node.
16 . The system of claim 13 , wherein the test storage node further comprises a monitor module comprising a non-transitory computer-readable medium storing instructions that, when executed, cause the test storage node to:
determine whether execution of the snapshot of operations and the additional set of operations causes the test storage node to exceed maximum thresholds for any of a plurality of application-level metrics; and for each of the plurality of application-level metrics, identify a maximum exhibited during execution of the additional set of operations.
17 . The system of claim 13 , wherein:
for each of the multiple databases, a corresponding SLA limits operations of the database according to a plurality of application-level metrics.
18 . An apparatus, comprising:
one or more processors; and memory storing instructions that, when executed by the one or more processors, cause the apparatus to:
replay on a test storage node a snapshot of database operations performed on another storage node hosting partitions of multiple databases;
during said replaying of the snapshot of database operations, execute an additional set of operations on an additional database installed on the test storage node but not installed on the other storage node prior to said replaying;
automatically generate a service level agreement (SLA) for the additional database, based on metrics exhibited by the additional database during said replaying; and
install on the other storage node one or more partitions of the additional database and the SLA.
19 . The apparatus of claim 18 , wherein the memory further stores instructions that, when executed by the one or more processors, cause the apparatus to:
during said replaying, monitor each of a plurality of application-level metrics for the additional database and for the test storage node; and determine whether the application-level metrics exhibited by the test storage node during said replaying exceed maximum thresholds associated with the other storage node.
20 . The apparatus of claim 19 , wherein the memory further stores instructions that, when executed by the one or more processors, cause the apparatus to:
benchmark the test storage node to identify the maximum thresholds associated with the other storage node; wherein a hardware configuration of the test storage node is substantially identical to a hardware configuration of the other storage node.Join the waitlist — get patent alerts
Track US2015302020A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.