IP Library Granted Patent US 11,080,299
Granted Patent B2
US 11,080,299 · App. 16/050,712 · Granted Aug 3, 2021

Methods and apparatus to partition a database

Inventors: Brian Howard Stewart (Idaho Falls, ID); Brian Roland Rhees (Idaho Falls, ID); Seth D. Grover (Idaho Falls, ID)
Assignee: McAfee, LLC
G06F16/278G06F3/062G06F3/0644G06F3/0689G06F16/2282G06F16/245
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 11,080,299
App. No.
16/050,712
Granted
Aug 3, 2021
Kind
B2
Abstract

Methods, apparatus, systems, and articles of manufacture to partition a database are disclosed. An example apparatus includes a variant identifier to identify a variant of unstructured data included in a query. The variant identifier is to identify a size of the identified variant, the query including unstructured data to be written to a database. A partition manager is to select a partition into which data is to be written based on the size of the identified variant. A partition creator is to, in response to the selected partition not existing in the database, create the selected partition. A data writer to write the data to the selected partition.

Claims (65)

1. An apparatus to partition a database, the apparatus comprising:

memory; and

at least one processor to execute instructions that, when executed, cause the processor to:

in response to a first query being received:

identify a first variant of first unstructured data included in the first query, the first unstructured data to be written to a database;

identify a first size of the first variant; and

select a first partition into which the first unstructured data is to be written based on the first size of the first variant;

in response to a second query being received:

identify a second variant of second unstructured data included in the second query, the second unstructured data to be written to the database, the second query different from the first query;

identify a second size of the second variant, the second size being different from the first size; and

select a second partition into which the second unstructured data is to be written based on the second size of the second variant;

identify a third variant of third unstructured data included in a third query, the third unstructured data to be written to the database;

identify a third size of the third variant, the third size being the same as the second size;

select the second partition into which the third unstructured data is to be written based on the third size of the third variant;

in response to a determination that at least one of the selected first partition or the selected second partition do not exist in the database, create the at least one of the selected first partition or the selected second partition in the database; and

write the first, second, and third unstructured data to a corresponding one of the created first partition or the created second partition.

2. The apparatus of claim 1 , wherein the processor is to identify the size of the first variant by rounding a number of bytes of the first unstructured data to a next greatest power of two.

3. The apparatus of claim 1 , wherein the processor is to store a variant identifier as an index in association with the selected first partition.

4. The apparatus of claim 1 , wherein the processor is to store an association between the third identified variant and an identifier of the second partition.

5. The apparatus of claim 4 , wherein the processor is to, in response to at least one of the selected first partition and the selected second partition not existing in the database, store a record to associate one or more variants with the at least one of the selected first partition and the selected second partition.

6. The apparatus of claim 1 , wherein the processor is to:

identify a fourth variant included in a fourth query, the fourth query including a request for the fourth variant;

select a partition for reading based on the fourth variant; and

read data from the selected partition.

7. A non-transitory computer-readable medium comprising instructions that, when executed, cause a machine to at least:

in response to a first query being received:

identify a first variant of first unstructured data included in the first query, the first unstructured data to be written to a database;

identify a first size of the first variant; and

select a first partition into which the first unstructured data is to be written based on the first size of the first variant;

in response to a second query being received:

identify a second variant of second unstructured data included in the second query, the second unstructured data to be written to the database, the second query different from the first query;

identify a second size of the second variant, the second size being different from the first size; and

select a second partition into which the second unstructured data is to be written based on the second size of the second variant;

identify a third variant of third unstructured data included in a third query, the third unstructured data to be written to the database;

identify a third size of the third variant, the third size being the same as the second size;

select the second partition into which the third unstructured data is to be written based on the third size of the third variant;

in response to a determination that at least one of the selected first partition or the selected second partition do not exist in the database, create the at least one of the selected first partition or the selected second partition in the database; and

write the first, second, and third unstructured data to a corresponding one of the created first partition or the created second partition.

8. The non-transitory computer-readable medium of claim 7 , wherein the instructions, when executed, cause the machine to determine the size of the first variant by rounding a number of bytes of the first unstructured data to a next greatest power of two.

9. The non-transitory computer-readable medium of claim 7 , wherein the instructions, when executed, cause the machine to store a variant identifier as an index in association with the selected first partition.

10. The non-transitory computer-readable medium of claim 7 , wherein the instructions, when executed, cause the machine to, in response to at least one of the selected first partition and the selected second partition not existing in the database, store a record to associate one or more variants with the at least one of the selected first partition and the selected second partition.

11. The non-transitory computer-readable medium of claim 7 , the instructions, when executed, further cause the machine to at least:

identify a fourth variant requested by a fourth query;

select a partition for reading based on the fourth variant; and

read data from the selected partition.

12. An apparatus to partition a database, the apparatus comprising:

means for identifying to, in response to a first query being received, identify a first variant of first unstructured data included in the first query, the first unstructured data to be written to a database;

means for identifying to, in response to the first query being received, identify a first size of the first variant;

means for selecting to, in response to the first query being received, select a first partition into which the first unstructured data is to be written based on the first size of the first variant;

means for identifying to, in response to a second query being received, identify a second variant of second unstructured data included in the second query, the second unstructured data to be written to a database, the second query different from the first query;

means for identifying to, in response to the second query being received, identify a second size of the second variant, the second size being different from the first size;

means for selecting to, in response to the second query being received, select a second partition into which the second unstructured data is to be written based on the second size of the second variant;

means for identifying a third variant of third unstructured data included in a third query, the third unstructured data to be written to a database;

means for identifying a third size of the third variant, the third size being the same as the second size;

means for selecting the second partition into which the third unstructured data is to be written based on the third size of the third variant;

means for creating the at least one of the selected first partition or the selected second partition in the database in response to at least one of the selected first partition or the selected second partition not existing in the database; and

means for writing the first, second, and third unstructured data to a corresponding one of the first created partition or the second created partition.

13. The apparatus of claim 12 , further including means for identifying to identify a size of the first variant by rounding a number of bytes of the first unstructured data to a next greatest power of two.

14. The apparatus of claim 12 , wherein the means for creating is further to store a variant identifier as an index in association with the selected first partition.

15. The apparatus of claim 12 , further including means for storing an association between the third identified variant and an identifier of the second partition.

16. The apparatus of claim 12 , wherein the means for creating is to, in response to at least one of the selected first and second partitions not existing in the database, store a record in the database to associate identified one or more variants with the selected first and second partitions.

17. The apparatus of claim 12 , further including:

means for identifying a fourth variant included in a fourth query, the fourth query including a request for the fourth variant;

means for selecting a partition for reading based on the fourth variant; and

means for reading data from the selected partition.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2018
From: STEWART, BRIAN HOWARD; RHEES, BRIAN ROLAND; GROVER, SETH D.
To: MCAFEE,LLC
Reel/Frame 047072/0283 →
Continuity (1)
Related Publication 20200042634A1 · Feb 6, 2020