IP Library Patent Application 14792416
Patent Application
App. No. 14/792,416

MULTI-TENANCY STORAGE NODE

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
14/792,416
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 (65)

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.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2015
From: WESTERMAN, JEMIAH C.; SCHULMAN, ROBERT M.; NAGA, KRISHNA P.P.; AURADKAR, ADITYA A.
To: LINKEDIN CORPORATION
Reel/Frame 036155/0318 →