IP Library Granted Patent US 12,566,678
Granted Patent B2
US 12,566,678 · App. 18/900,591 · Granted Mar 3, 2026

Adaptive service level agreement for a recovery data objective

Inventors: Aditya Narain Sinha (Bangalore, IN); Balram Parmar (Bangalore, IN); Debayan Bandyopadhyay (Bangalore, IN); Saravana Selvaraj (Bangalore, IN)
Assignee: Nutanix, Inc.
G06F11/1469G06F2201/80
View Patent ↗
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 12,566,678
App. No.
18/900,591
Filed
Sep 27, 2024
Granted
Mar 3, 2026
Kind
B2
Art Unit
2156
USPC
707/682
Abstract

A method may include, obtaining, by one or more processors, transaction logs of a database server captured in a predetermined time period, identifying, by the one or more processors, a rate of change of data within the transaction logs, classifying, by the one or more processors, portions of the time period according to the rate of change of data within the portions of the time period, and setting, by the one or more processors, a service level agreement (SLA) for each portion of the time period according to the classification of each portion.

Claims (44)

1 . A method, comprising:

obtaining, by one or more processors, transaction logs of a database server captured in a predetermined time period;

identifying, by the one or more processors, a rate of change of data within the transaction logs captured in the predetermined time period;

classifying, by the one or more processors, portions of the time period according to the rate of change of data within the portions of the time period; and

dynamically setting, by the one or more processors, a service level agreement (SLA) for each portion of the time period according to the classification of each portion and the rate of change of data within the portions of the time period.

2 . The method of claim 1 , further comprising determining, by the one or more processors, a corresponding SLA for each classification of the portions of the time period.

3 . The method of claim 1 , further comprising executing, by the one or more processors, the SLAs in a subsequent time period.

4 . The method of claim 1 , further comprising requesting, by the one or more processors, a recovery data objective (RDO) from a user, wherein setting the SLA for each portion of the time period is based on the RDO.

5 . The method of claim 1 , wherein identifying, by the one or more processors, the rate of change of data within the transaction logs includes identifying a frequency of the transaction logs and a size of the transaction logs.

6 . The method of claim 1 , wherein classifying, by the one or more processors, the portions of the time period is based on a number of times an amount of data of a recovery data objective (RDO) is changed within the portions of the time period.

7 . The method of claim 1 , wherein classifying, by the one or more processors, the portions of the time period includes identifying contiguous portions of the time period having similar rates of change of data.

8 . The method of claim 1 , further comprising:

obtaining, by the one or more processors, transaction logs for a subsequent time period,

reclassifying, by the one or more processors, the portions of the subsequent time period; and

setting, by the one or more processors, a new SLA for each portion of the subsequent time period according to the reclassification of each portion.

9 . The method of claim 1 , further comprising capturing, by the one or more processors, snapshots of the database within the time period, wherein the transaction logs can be applied to the snapshots of the database for point-in-time-recovery of the database server.

10 . The method of claim 1 , wherein setting, by the one or more processors, the SLA for each portion of the time period includes generating a data structure for the time period indicating the SLA for each portion of the time period.

11 . An apparatus, comprising:

one or more processors; and

a non-transitory, computer-readable medium including instructions which, when executed by the one or more processors, cause the one or more processors to:

obtain transaction logs of a database server captured in a predetermined time period;

identify a rate of change of data within the transaction logs captured in the predetermined time period;

classify portions of the time period according to the rate of change of data within the portions of the time period; and

dynamically set a service level agreement (SLA) for each portion of the time period according to the classification of each portion and the rate of change of data within the portions of the time period.

12 . The apparatus of claim 11 , wherein the instructions cause the one or more processors to determine a corresponding SLA for each classification of the portions of the time period.

13 . The apparatus of claim 11 , wherein the instructions cause the one or more processors to execute the SLAs in a subsequent time period.

14 . The apparatus of claim 11 , wherein the instructions cause the one or more processors to request a recovery data objective (RDO) from a user, wherein setting the SLA for each portion of the time period is based on the RDO.

15 . The apparatus of claim 11 , wherein the instructions cause the one or more processors to identify the rate of change of data within the transaction logs by identifying a frequency of the transaction logs and a size of the transaction logs.

16 . The apparatus of claim 11 , wherein the instructions cause the one or more processors to classify the portions of the time period based on a number of times an amount of data of a recovery data objective (RDO) is changed within the portions of the time period.

17 . The apparatus of claim 11 , wherein the instructions cause the one or more processors to classify the portions of the time period by identifying contiguous portions of the time period having similar rates of change of data.

18 . The apparatus of claim 11 , wherein the instructions cause the one or more processors to:

obtain transaction logs for a subsequent time period,

reclassify the portions of the subsequent time period; and

set a new SLA for each portion of the subsequent time period according to the reclassification of each portion.

19 . The apparatus of claim 11 , wherein the instructions cause the one or more processors to capture snapshots of the database within the time period, wherein the transaction logs can be applied to the snapshots of the database for point-in-time-recovery of the database server.

20 . The apparatus of claim 11 , wherein the instructions cause the one or more processors to set the SLA for each portion of the time period by generating a data structure for the time period indicating the SLA for each portion of the time period.

21 . The method of claim 1 , further comprising automatically determining the rate of change from transaction logs and segmenting the time period accordingly.

22 . The method of claim 1 , further comprising dynamically assigning SLAs based on classified data change intervals.

23 . The method of claim 1 , wherein the database server is hosted on a node of a hyperconverged cluster comprising:

a plurality of nodes each including at least one database virtual machine (VM), a hypervisor, and a controller/service VM; and

a distributed storage pool accessible via a network, wherein the obtaining of transaction logs comprises retrieving the transaction logs from the database VM through the controller/service VM of the node.

24 . The method of claim 1 , wherein the hyperconverged cluster comprises direct-attached storage within each node and network-attached storage accessible to all nodes, and wherein setting the service level agreement (SLA) further comprises allocating backup storage in the distributed storage pool according to the classified portions of the time period.

25 . The apparatus of claim 11 , wherein the database server is a virtual machine executing on a node of a hyperconverged cluster, each node comprising a hypervisor, at least one database virtual machine, a controller VM, and direct-attached storage, with the nodes coupled via a network to a distributed storage pool.

26 . The apparatus of claim 11 , wherein the instructions are further configured to obtain transaction logs from the database virtual machine via the controller VM of the node on which the database virtual machine is hosted.

Assignments (2)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2024
From: SINHA, ADITYA NARAIN; PARMAR, BALRAM; BANDYOPADHYAY, DEBAYAN; SELVARAJ, SARAVANA
To: NUTANIX, INC.
Reel/Frame 068732/0383 →
Priority Claims (1)
IN 202441058406 · Aug 1, 2024 · national
Continuity (1)
Related Publication 20260037391A1 · Feb 5, 2026
References Cited (22)
US 8549518B1 · Aron et al. · 2013 [cited by applicant]
US 8601473B1 · Aron et al. · 2013 [cited by applicant]
US 8850130B1 · Aron et al. · 2014 [cited by applicant]
US 8863124B1 · Aron · 2014 [cited by applicant]
US 9009106B1 · Aron et al. · 2015 [cited by applicant]
US 9069708B2 · Gill et al. · 2015 [cited by applicant]
US 9336132B1 · Aron et al. · 2016 [cited by applicant]
US 9652265B1 · Narayanasamy et al. · 2017 [cited by applicant]
US 9772866B1 · Aron et al. · 2017 [cited by applicant]
US 10977132B2 · Deshpande et al. · 2021 [cited by applicant]
US 20200110675A1 · Wang · 2020 [cited by examiner]
US 20200393960A1 · Kuchibhotla · 2020 [cited by examiner]
US 20240054106A1 · Ahn et al. · 2024 [cited by applicant]
Cano, Ignacio, et al. “Curator: Self-Managing Storage for Enterprise Clusters” (Mar. 27, 2017), from https://www.usenix.org/conference/nsdi17/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 11, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Oct. 15, 2013), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Sep. 17, 2019), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 20, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 7, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
“Automated backups in Azure SQL ManagedInstance”, Jun. 6, 2025, https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/automated-backups-overview?view=azuresql. [cited by applicant]
Commvault, “Adding an Automatic Database Log Backup Schedule to a Schedule Policy”, updated Apr. 1, 2025, https://documentation.commvault.com/11.20/adding_automatic_database_log_backup_schedule_to_schedule_policy.html. [cited by applicant]