IP Library Granted Patent US 11,126,600
Granted Patent B2
US 11,126,600 · App. 15/961,421 · Granted Sep 21, 2021

System and method to accelerate compaction

Inventors: Chidamber Kulkarni (Hyderabad, IN); Prasanna Sundararajan (Palo Alto, CA)
Assignee: RENIAC, INC.
G06F16/215G06F16/2365
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,126,600
App. No.
15/961,421
Granted
Sep 21, 2021
Kind
B2
Abstract

A system and method for accelerating compaction includes a compaction accelerator. The accelerator includes a compactor separate from a processor performing read and write operations for a database or a data store. The compactor is configured to receive a table to be compacted and entries written in the table, each of the entries being associated with a timestamp indicating when they were respectively written; identify, using a plurality of sort engines operating in parallel, the entries that were written last based on the timestamps; mark, using a plurality of marker engines operating in parallel, older copies of the entries for deletion; create, using the plurality of marker engines, tombstones for the older copies; create a compacted table, including the entries that were last written; delete the tombstones and the entries associated with the tombstones; and generate a freemap based on storage locations of the entries associated with the tombstones.

Claims (48)

1. A compaction accelerator comprising:

a compactor separate from a processor performing read and write operations for a database or a data store based on user traffic, wherein the compactor is coupled to the processor via a bus that implements a bus standard for coupling the processor and peripherals devices, wherein the compactor performs a compaction algorithm that is separate from the read and write operations for the database or the data store based on the user traffic;

wherein the compactor is configured to:

receive a table to be compacted;

receive entries written in the table by the processor, each of the entries being associated with a timestamp indicating when they were respectively written;

identify, using a plurality of sort engines operating in parallel, the entries that were written last based on the timestamps;

mark, using a plurality of marker engines operating in parallel, older copies of the entries for deletion;

create, using the plurality of marker engines, tombstones for the older copies;

create a compacted table, including the entries that were last written, to be written to persistent storage; and

delete the tombstones and the entries associated with the tombstones.

2. The compaction accelerator of claim 1 , wherein the compactor comprises one or more field-programmable gate arrays (FPGA), graphics processing engines, or application specific interface chips (ASICs).

3. The compaction accelerator of claim 1 , wherein each of the sort engines uses custom-width sorters to sort based on respective timestamps.

4. The compaction accelerator of claim 1 , wherein the compactor is further configured to store rows of the table in custom width registers.

5. The compaction accelerator of claim 1 , wherein the table comprises a plurality of stored string tables.

6. The compaction accelerator of claim 1 , wherein the deleted tombstones are further used to free up a commit log space on the persistent storage.

7. The compaction accelerator of claim 1 , wherein the compaction accelerator is configured to receive the table and the entries written in the table by accessing the persistent storage.

8. The compaction accelerator of claim 1 , wherein the compaction accelerator is configured to receive the table and the entries written in the table from a memory local to the compaction accelerator.

9. The compaction accelerator of claim 1 , wherein the bus standard comprises the Peripheral Component Interconnect Express (PCIe) standard.

10. The compaction accelerator of claim 1 , wherein the compactor includes a bus interface for communicating with the processor, the bus interface comprising a Peripheral Component Interconnect Express (PCIe) bus interface.

11. A method of database compaction, the method comprising:

performing the database compaction via a compactor that is separate from a processor performing read and write operations for a database or a data store based on user traffic, wherein the compactor is coupled to the processor via a bus that implements a bus standard for coupling the processor and peripherals devices, wherein the compactor performs a compaction algorithm that is separate from the read and write operations for the database or the data store based on the user traffic, the compactor performing the steps of:

receiving a table to be compacted;

receiving entries written in the table by the processor, each of the entries being associated with a timestamp indicating when they were respectively written;

identifying, using a plurality of sort engines operating in parallel, the entries that were written last based on the timestamps;

marking, using a plurality of marker engines operating in parallel, older copies of the entries for deletion;

creating, using the plurality of marker engines, tombstones for the older copies;

creating a compacted table, including the entries that were last written, to be written to persistent storage; and

deleting the tombstones and the entries associated with the tombstones.

12. The method of claim 11 , further comprising sorting the entries based on respective timestamps using custom-width sorters in each of the sort engines.

13. The method of claim 11 , further comprising storing rows of the table in custom width registers.

14. The method of claim 11 , wherein the table comprises a plurality of stored string tables.

15. The method of claim 11 , further comprising freeing up a commit log space on the persistent storage based on the deleted tombstones.

16. The method of claim 11 , wherein receiving the table and the entries written in the table comprises accessing the persistent storage.

17. The method of claim 11 , wherein receiving the table and the entries written in the table comprises reading them from a memory local to the compactor.

18. A system comprising:

a plurality of compaction accelerators, each of the compaction accelerators comprising a respective compactor separate from a processor performing read and write operations for a database or a data store based on user traffic, wherein the respective compactor is coupled to the processor via a bus that implements a bus standard for coupling the processor and peripherals devices, wherein the respective compactor performs a compaction algorithm that is separate from the read and write operations for the database or the data store based on the user traffic;

wherein each respective compactor is configured to:

receive a table to be compacted;

receive entries written in the table by the processor, each of the entries being associated with a timestamp indicating when they were respectively written;

identify, using a plurality of sort engines operating in parallel, the entries that were written last based on the timestamps;

mark, using a plurality of marker engines operating in parallel, older copies of the entries for deletion;

create, using the plurality of marker engines, tombstones for the older copies;

create a compacted table, including the entries that were last written, to be written to persistent storage; and

delete the tombstones and the entries associated with the tombstones.

19. The system of claim 18 , wherein a number of the plurality of compaction accelerators is configurable.

20. The system of claim 18 , wherein a number of the plurality of compaction accelerators is configurable by a user.

21. The system of claim 18 , wherein the system is available as a cloud-based service.

22. The system of claim 18 , wherein the compaction accelerators operate in parallel.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2021
From: RENIAC, INC.
To: MARVELL ASIA PTE LTD.
Reel/Frame 058031/0630 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2018
From: KULKARNI, CHIDAMBER; SUNDARARAJAN, PRASANNA
To: RENIAC, INC.
Reel/Frame 045625/0691 →
Priority Claims (1)
IN 201741014424 · Apr 24, 2017 · national
Continuity (2)
Provisional Application 62526252 · Jun 28, 2017
Related Publication 20180307711A1 · Oct 25, 2018