# US 9,519,673 B2 · Management of I/O and log size for columnar database

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,519,673 B2
- Document ID: US9519673B2
- Status: Granted
- Kind: B2
- Application number: 13/215,726
- Filed: 2011-08-23
- Published: 2013-02-28
- Granted: 2016-12-13
- Earliest claimed: 2011-08-23
- Assignees: Sap SE
- Applicants: Ivan Schreter
- Inventors: Ivan Schreter
- Web page: https://patentgrep.com/patent/US9519673B2

## CPC

- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/221: {Column-oriented storage; Management thereof}
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F 11/1461: {Backup scheduling policy}
- G06F 11/1471: involving logging of persistent data for recovery
- G06F 2201/80: Database-specific techniques
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system includes reception of a transaction to change a columnar table, recordation of the transaction within a delta structure in a volatile memory, recordation of the transaction within a log of a persisted memory, reception of an instruction to merge the delta structure in the volatile memory with a first instantiation of the columnar table in the volatile memory, and in response to the instruction, merging of the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory to create a merged columnar table in the volatile memory, and not storing the merged columnar table in the persisted memory.

## Claims

### Claim 1

A method for a database system comprising a first instantiation of a columnar table in a volatile memory and a second instantiation of the columnar table in a persisted memory, the method comprising:
receiving a transaction to change the columnar table;
recording the transaction within a delta structure in the volatile memory;
recording the transaction within a log of the persisted memory;
receiving an instruction to merge the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory;
in response to the instruction, merging the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory to create a merged columnar table in the volatile memory, and not storing the merged columnar table in the persisted memory;
receiving an instruction to execute a savepoint; and
in response to the instruction to execute the savepoint, copying the delta structure in the volatile memory to the persisted memory, and copying the merged columnar table in the volatile memory to the persisted memory.

### Claim 2

A non-transitory computer-readable medium storing program code, the program code executable by a computing system storing a first instantiation of a columnar table in a volatile memory and a second instantiation of the columnar table in a persisted memory, the program code comprising:
code to receive a transaction to change the columnar table;
code to record the transaction within a delta structure in the volatile memory;
code to record the transaction within a log of the persisted memory;
code to receive an instruction to merge the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory;
code to, in response to the instruction, merge the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory to create a merged columnar table in the volatile memory, and not store the merged columnar table in the persisted memory;
code to receive an instruction to execute a savepoint; and
code to, in response to the instruction to execute the savepoint, copy the delta structure in the volatile memory to the persisted memory, and copy the merged columnar table in the volatile memory to the persisted memory.

### Claim 3

A system comprising:
a volatile memory storing a first instantiation of a columnar table;
a persisted memory storing a second instantiation of the columnar table;
a memory storing processor-executable process steps; and
a processor to execute the processor-executable process steps to cause the system to:
receive a transaction to change the columnar table;
record the transaction within a delta structure in the volatile memory;
record the transaction within a log of the persisted memory;
receive an instruction to merge the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory;
in response to the instruction, merge the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory to create a merged columnar table in the volatile memory, and not store the merged columnar table in the persisted memory;
receive an instruction to execute a savepoint; and
in response to the instruction to execute the savepoint, copy the delta structure in the volatile memory to the persisted memory, and copy the merged columnar table in the volatile memory to the persisted memory.

### Claim 4

A method for a database system comprising a first instantiation of a columnar table in a volatile memory and a second instantiation of the columnar table in a persisted memory, the method comprising:
receiving a transaction to change the columnar table;
recording the transaction within a delta structure in the volatile memory;
recording the transaction within a log of the persisted memory;
receiving an instruction to merge the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory; and
in response to the instruction, merging the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory to create a merged columnar table in the volatile memory, and not storing the merged columnar table in the persisted memory;
wherein merging the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory is asynchronous to receiving transactions to change the columnar table, recording the transactions within the delta structure in the volatile memory, and recording the transactions within the log of the persisted memory;
the method further comprising:
receiving an instruction to execute a savepoint; and
in response to the instruction, copying the delta structure in the volatile memory to the persisted memory, and copying the merged columnar table in the volatile memory to the persisted memory.

### Claim 5 (depends on 1)

A method according to claim 1, wherein merging the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory is asynchronous to receiving transactions to change the columnar table, recording the transactions within the delta structure in the volatile memory, and recording the transactions within the log of the persisted memory.

### Claim 6 (depends on 1)

A method according to claim 1, further comprising:
receiving an instruction to recover from a database crash; and
in response to the instruction,
copying the delta structure in the persisted memory to the volatile memory;
copying the second instantiation of the columnar table in the persisted memory to the volatile memory; and
committing the transaction recorded within the log to the copied delta structure in the volatile memory.

### Claim 7 (depends on 1)

A method according to claim 1, further comprising:
receiving an instruction to execute a savepoint; and
in response to the instruction, copying the delta structure in the volatile memory to the persisted memory, and copying the merged columnar table in the volatile memory to the persisted memory.

### Claim 8 (depends on 2)

A medium according to claim 2, wherein the code to merge the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory is asynchronous with the code to receive the transaction to change the columnar table, the code to record the transaction within the delta structure in the volatile memory, and the code to record the transaction within the log of the persisted memory.

### Claim 9 (depends on 2)

A medium according to claim 2, the program code further comprising:
code to receive an instruction to recover from a database crash; and
code to, in response to the instruction,
copy the delta structure in the persisted memory to the volatile memory;
copy the second instantiation of the columnar table in the persisted memory to the volatile memory; and
commit the transaction recorded within the log to the copied delta structure in the volatile memory.

### Claim 10 (depends on 2)

A medium according to claim 2, the program code further comprising:
code to receive an instruction to execute a savepoint; and
code to, in response to the instruction, copy the delta structure in the volatile memory to the persisted memory, and copy the merged columnar table in the volatile memory to the persisted memory.

### Claim 11 (depends on 3)

A system according to claim 3, wherein the merging of the delta structure in the volatile memory with the first instantiation of the columnar table in the volatile memory is asynchronous with reception of transactions to change the columnar table, recordation of the transactions within the delta structure in the volatile memory, and recordation of the transactions within the log of the persisted memory.

### Claim 12 (depends on 3)

A system according to claim 3, the processor further to execute the processor-executable process steps to cause the system to:
receive an instruction to recover from a database crash; and
in response to the instruction,
copy the delta structure in the persisted memory to the volatile memory;
copy the second instantiation of the columnar table in the persisted memory to the volatile memory; and
commit the transaction recorded within the log to the copied delta structure in the volatile memory.

### Claim 13 (depends on 3)

A system according to claim 3, the processor further to execute the processor-executable process steps to cause the system to:
receive an instruction to execute a savepoint; and
in response to the instruction, copy the delta structure in the volatile memory to the persisted memory, and copy the merged columnar table in the volatile memory to the persisted memory.

### Claim 14 (depends on 7)

A method according to claim 7, further comprising:
receiving an instruction to recover from a database crash; and
in response to the instruction,
copying the delta structure in the persisted memory to the volatile memory;
copying the second instantiation of the columnar table in the persisted memory to the volatile memory; and
committing the transaction recorded within the log to the copied delta structure in the volatile memory.

### Claim 15 (depends on 10)

A medium according to claim 10, the program code further comprising:
code to receive an instruction to recover from a database crash; and
code to, in response to the instruction,
copy the delta structure in the persisted memory to the volatile memory;
copy the second instantiation of the columnar table in the persisted memory to the volatile memory; and
commit the transaction recorded within the log to the copied delta structure in the volatile memory.

### Claim 16 (depends on 13)

A system according to claim 13, the processor further to execute the processor-executable process steps to cause the system to:
receive an instruction to recover from a database crash; and
in response to the instruction,
copy the delta structure in the persisted memory to the volatile memory;
copy the second instantiation of the columnar table in the persisted memory to the volatile memory; and
commit the transaction recorded within the log to the copied delta structure in the volatile memory.
