IP Library Granted Patent US 9,165,050
Granted Patent B2
US 9,165,050 · App. 13/946,303 · Granted Oct 20, 2015

Data availability during columnar table merges

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 9,165,050
App. No.
13/946,303
Granted
Oct 20, 2015
Kind
B2
Abstract

Improved availability of data in columnar tables can be provided via use of additional data structures, such as for example a second delta part, a shadow second delta part, and a second main part, that are employed during a merge operation of a first delta part into a main part. Related apparatus, systems, techniques and articles are also described.

Claims (44)

1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one computing system comprising at least one programmable processor, cause the at least one system to perform operations comprising:

copying, to a shadow second delta part of a columnar table as part of a merge operation of a first delta part and a first main part of the columnar table, any uncommitted rows in the first delta part;

writing, to a second delta part of the columnar table, any data manipulations occurring during the merge operation;

completing the merge operation, the completing comprising copying, to a second main part of the columnar table, any row in the first main part not marked for deletion in the first delta part, and adding, to the second main part, any committed row in the first delta part;

linking the second delta part to the shadow second delta part after completing the merge operation; and

switching to a new delta part and a new main part using an atomic set of operations, the new delta part comprising the linked second delta part and shadow second delta part, and the new main part comprising the second main part.

2. A computer program product as in claim 1 , wherein the operations further comprise: generating the second delta part, the second shadow delta part, and the second main part upon initiation of the merge operation.

3. A computer program product as in claim 1 , wherein the operations further comprise: initially setting multi-version concurrency control information for a row in the shadow second delta part to indicate that the row is in-process by the merge operation.

4. A computer program product as in claim 1 , wherein the operations further comprise: responding to data read requests occurring during the merge operation using the first delta part, the second delta part, and the first main part.

5. A computer program product as in claim 1 , wherein the atomic set of operations comprise:

activating the new current delta part and the new main part;

deactivating the first delta part, the first main part, and the second delta part, the deactivating occurring atomically; and

marking the first delta part, the first main part, and the second delta part for deletion.

6. A computer program product as in claim 1 , wherein the operations further comprise: copying, to the new delta part, multi-version concurrency control information for the uncommitted rows copied from the first delta part to the new delta part.

7. A system comprising:

computer hardware configured to perform operations comprising:

copying, to a shadow second delta part of a columnar table as part of a merge operation of a first delta part and a first main part of the columnar table, any uncommitted rows in the first delta part;

writing, to a second delta part of the columnar table, any data manipulations occurring during the merge operation;

completing the merge operation, the completing comprising copying, to a second main part of the columnar table, any row in the first main part not marked for deletion in the first delta part, and adding, to the second main part, any committed row in the first delta part;

linking the second delta part to the shadow second delta part after completing the merge operation; and

switching to a new delta part and a new main part using an atomic set of operations, the new delta part comprising the linked second delta part and shadow second delta part, and the new main part comprising the second main part.

8. A system as in claim 7 , wherein the operations further comprise: generating the second delta part, the second shadow delta part, and the second main part upon initiation of the merge operation.

9. A system as in claim 7 , wherein the operations further comprise: initially setting multi-version concurrency control information for a row in the shadow second delta part to indicate that the row is in-process by the merge operation.

10. A system as in claim 7 , wherein the operations further comprise: responding to data read requests occurring during the merge operation using the first delta part, the second delta part, and the first main part.

11. A system as in claim 7 , wherein the atomic set of operations comprise:

activating the new current delta part and the new main part;

deactivating the first delta part, the first main part, and the second delta part, the deactivating occurring atomically; and

marking the first delta part, the first main part, and the second delta part for deletion.

12. A system as in claim 7 , wherein the operations further comprise: copying, to the new delta part, multi-version concurrency control information for the uncommitted rows copied from the first delta part to the new delta part.

13. A computer-implemented method comprising:

copying, to a shadow second delta part of a columnar table as part of a merge operation of a first delta part and a first main part of the columnar table, any uncommitted rows in the first delta part;

writing, to a second delta part of the columnar table, any data manipulations occurring during the merge operation;

completing the merge operation, the completing comprising copying, to a second main part of the columnar table, any row in the first main part not marked for deletion in the first delta part, and adding, to the second main part, any committed row in the first delta part;

linking the second delta part to the shadow second delta part after completing the merge operation; and

switching to a new delta part and a new main part using an atomic set of operations, the new delta part comprising the linked second delta part and shadow second delta part, and the new main part comprising the second main part.

14. A computer-implemented method as in claim 13 , further comprising: generating the second delta part, the second shadow delta part, and the second main part upon initiation of the merge operation.

15. A computer-implemented method as in claim 13 , further comprising: initially setting multi-version concurrency control information for a row in the shadow second delta part to indicate that the row is in-process by the merge operation.

16. A computer-implemented method as in claim 13 , further comprising: responding to data read requests occurring during the merge operation using the first delta part, the second delta part, and the first main part.

17. A computer-implemented method as in claim 13 , wherein the atomic set of operations comprise:

activating the new current delta part and the new main part;

deactivating the first delta part, the first main part, and the second delta part, the deactivating occurring atomically; and

marking the first delta part, the first main part, and the second delta part for deletion.

18. A computer-implemented method as in claim 13 , further comprising: copying, to the new delta part, multi-version concurrency control information for the uncommitted rows copied from the first delta part to the new delta part.

19. A computer-implemented method as in claim 13 , wherein at least one of the copying, the writing, the completing, the linking, and the switching is performed by at least one system comprising at least one programmable processor.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2015
From: SCHRETER, IVAN
To: SAP SE
Reel/Frame 036023/0989 →
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →