IP Library Granted Patent US 12,321,328
Granted Patent B2
US 12,321,328 · App. 18/341,575 · Granted Jun 3, 2025

Autonomous table partition management

Inventors: Rajorshi Kumar Sen (Redmond, WA); Gabriel Adrian Lam (Mercer Island, WA); Travis Willem Morrissey (Pleasanton, CA); Manjunath Chinni (Saratoga, CA)
Assignee: Rubrik, Inc.
G06F16/2282G06F11/1402G06F16/125G06F16/2453
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,321,328
App. No.
18/341,575
Granted
Jun 3, 2025
Kind
B2
Abstract

Methods, systems, and devices for data management are described. A database instance associated with managing data of one or more users may be generated. In the database instance, a table of a database for a user of the one or more users may be generated. The table may be configured to store metadata for managing data of the user and may include a partitioning category. Based on generating the table, a file that indicates a policy for partitioning the table and for retaining partitions in the table may be identified. The policy may be based on a data retention policy associated with the data of the user. Based on identifying the file, partitions for the table may be generated in accordance with the partitioning category and the file, and based on generating the partitions, one or more partitions of the partitions may be deleted in accordance with the file.

Claims (66)

1. A method, comprising:

generating, by a data management system, a database instance associated with managing data of a plurality of users;

generating, by the data management system, in the database instance, a table in a database for a user of the plurality of users, wherein the table is configured to store metadata for managing data of the user and comprises a partitioning category;

identifying, by the data management system, a file that indicates a partition management policy that is based at least in part on a data retention policy associated with the data of the user, the partition management policy for partitioning the table and for retaining partitions in the table;

determining, based at least in part on identifying the file, a quantity of partitions to retain from the file;

generating, by the data management system, a plurality of partitions for the table in accordance with the partition management policy indicated by the file and based at least in part on the partitioning category;

determining, based at least in part on generating the plurality of partitions, that at least a subset of the generated plurality of partitions exceeds the quantity of partitions to retain; and

deleting, by the data management system, after generating the plurality of partitions, one or more partitions of the plurality of partitions in accordance with the file and based at least in part on the quantity of the generated plurality of partitions exceeding the quantity of partitions to retain.

2. The method of claim 1 , further comprising:

selecting, based at least in part on generating the table, the partitioning category for the table, wherein the partitioning category is selected based at least in part on the data retention policy associated with the data of the user.

3. The method of claim 2 , wherein the partitioning category is a time-based category, and wherein an adherence with the data retention policy associated with the data of the user is determinable based at least in part on the time-based category.

4. The method of claim 2 , wherein the partitioning category is a non-time-based category.

5. The method of claim 1 , further comprising:

obtaining, from the file, a time interval for partitions of the table and a quantity of partitions of the table to retain during operation of the table, wherein a duration of the time interval and a value for the quantity of partitions of the table to retain are based at least in part on a duration for retaining captured versions of the data of the user that is determined from the data retention policy.

6. The method of claim 1 , wherein the plurality of partitions is generated based at least in part on a time interval for partitions of the table, a quantity of partitions to retain during operation of the table, and the partitioning category.

7. The method of claim 1 , wherein generating the plurality of partitions comprises:

assigning respective time ranges to the plurality of partitions in accordance with a time interval for partitions of the table indicated in the file; and

storing rows of the table in the plurality of partitions based at least in part on respective values, for the rows, of the partitioning category.

8. The method of claim 7 , wherein storing the rows of the table in the plurality of partitions comprises:

identifying a row included in the rows of the table;

determining, for the row, a respective value of the partitioning category;

identifying, from among the respective time ranges, a time range that includes the respective value of the partitioning category for the row; and

storing the row in a partition of the plurality of partitions that has been assigned the time range identified as including the respective value of the partitioning category for the row.

9. The method of claim 1 , wherein:

determining that at least the subset of the generated plurality of partitions exceeds the quantity of partitions to retain comprises determining that, within the generated plurality of partitions, a quantity of partitions having data from one or more prior time periods exceeds the quantity of partitions to retain, and

the one or more partitions that are deleted are associated with one or more captured versions of the data of the user for which a retention duration associated with the data retention policy has expired.

10. The method of claim 1 , further comprising:

performing, based at least in part on generating the plurality of partitions, an operation for deleting the one or more partitions of the plurality of partitions;

determining, based at least in part on the performing, a failure of the operation; and

retrying, based at least in part on determining the failure of the operation, the operation for deleting the one or more partitions of the plurality of partitions until the one or more partitions of the plurality of partitions are deleted.

11. The method of claim 1 , further comprising:

performing, based at least in part on generating the plurality of partitions, for a first time, an operation for generating a partition of the plurality of partitions;

determining, based at least in part on the performing, a failure of the operation; and

retrying, based at least in part on determining the failure of the operation, the operation for deleting the one or more partitions of the plurality of partitions until the partition is generated.

12. The method of claim 1 , further comprising:

generating, based at least in part on generating the plurality of partitions, one or more buffer partitions ahead of a schedule indicated by the partition management policy.

13. The method of claim 1 , further comprising:

identifying a plurality of files that indicate a plurality of partition management policies for a plurality of tables, the plurality of partition management policies for partitioning the plurality of tables and for retaining partitions in the plurality of tables based at least in part on respective data retention policies associated with respective tables of the plurality of tables; and

initiating a plurality of computing threads associated with generating and deleting partitions in the plurality of tables.

14. The method of claim 1 , wherein generating the database instance comprises:

generating a plurality of databases associated with managing the data of the plurality of users, the plurality of databases comprising the database;

identifying a plurality of files that indicate a plurality of partition management policies for a plurality of tables across the plurality of databases, the plurality of partition management policies for partitioning the plurality of tables across the plurality of databases and for retaining partitions in the plurality of tables based at least in part on respective data retention policies associated with respective tables of the plurality of tables; and

initiating a plurality of computing threads associated with generating and deleting partitions in the plurality of tables across the plurality of databases.

15. The method of claim 14 , further comprising:

modifying, based at least in part on initiating the plurality of computing threads, a quantity of the plurality of computing threads based at least in part on a duration for completing an operation for generating and deleting the partitions in the plurality of tables.

16. The method of claim 1 , further comprising:

generating a catch-all partition for the table, wherein the catch-all partition is configured to store rows of the table not stored in the plurality of partitions in accordance with the file.

17. The method of claim 1 , wherein the data retention policy associated with the data of the user indicates one or more time windows for retaining captured versions of the data of the user, one or more quantities of captured versions of the data of the user to retain, or a combination thereof.

18. An apparatus, comprising:

memory; and

at least one processor coupled with the memory, wherein instructions stored in the memory are executable by the at least one processor to cause the apparatus to:

generate, by a data management system, a database instance associated with managing data of a plurality of users;

generate, by the data management system, in the database instance, a table in a database for a user of the plurality of users, wherein the table is configured to store metadata for managing data of the user and comprises a partitioning category;

identify, by the data management system, a file that indicates a partition management policy that is based at least in part on a data retention policy associated with the data of the user, the partition management policy for partitioning the table and for retaining partitions in the table;

determine, based at least in part on identifying the file, a quantity of partitions to retain from the file;

generate, by the data management system, a plurality of partitions for the table in accordance with the partition management policy indicated by the file and based at least in part on the partitioning category;

determine, based at least in part on generating the plurality of partitions, that at least a subset of the generated plurality of partitions exceeds the quantity of partitions to retain; and

delete, by the data management system, after generating the plurality of partitions, one or more partitions of the plurality of partitions in accordance with the file and based at least in part on the quantity of the generated plurality of partitions exceeding the quantity of partitions to retain.

19. A non-transitory, computer-readable medium storing code comprising instructions that are executable by at least one processor of at least one device to cause the at least one device to:

generate, by a data management system, a database instance associated with managing data of a plurality of users;

generate, by the data management system, in the database instance, a table in a database for a user of the plurality of users, wherein the table is configured to store metadata for managing data of the user and comprises a partitioning category;

identify, by the data management system, a file that indicates a partition management policy that is based at least in part on a data retention policy associated with the data of the user, the partition management policy for partitioning the table and for retaining partitions in the table;

determine, based at least in part on identifying the file, a quantity of partitions to retain from the file;

generate, by the data management system, a plurality of partitions for the table in accordance with the partition management policy indicated by the file and based at least in part on the partitioning category;

determine, based at least in part on generating the plurality of partitions, that at least a subset of the generated plurality of partitions exceeds the quantity of partitions to retain; and

delete, by the data management system, after generating the plurality of partitions, one or more partitions of the plurality of partitions in accordance with the file and based at least in part on the quantity of the generated plurality of partitions exceeding the quantity of partitions to retain.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 64659/0236 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071566/0187 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Aug 21, 2023
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 064659/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2023
From: SEN, RAJORSHI KUMAR; LAM, GABRIEL ADRIAN; MORRISSEY, TRAVIS WILLEM; CHINNI, MANJUNATH
To: RUBRIK, INC.
Reel/Frame 064063/0296 →
Continuity (1)
Related Publication 20240427754A1 · Dec 26, 2024
References Cited (7)
US 9499443B2 · Foret · 2016 [cited by examiner]
US 11075984B1 · Mercier · 2021 [cited by examiner]
US 12072868B1 · Opincariu · 2024 [cited by examiner]
US 20150269239A1 · Swift · 2015 [cited by examiner]
US 20170142442A1 · Tsukuba · 2017 [cited by examiner]
US 20180322017A1 · Maccanti · 2018 [cited by examiner]
US 20220004462A1 · Vig · 2022 [cited by examiner]