Mutations in a column store
AssigneeCloudera, Inc.
InventorTodd Lipcon
Life of this patent
Estimating the term…
Abstract
Columnar storage provides many performance and space saving benefits for analytic workloads, but previous mechanisms for handling single row update transactions in column stores suffer from poor performance. A columnar data layout facilitates both low-latency random access capabilities together with high-throughput analytical access capabilities, simplifying Hadoop architectures for use cases involving real-time data. In disclosed embodiments, mutations within a single row are executed atomically across columns and do not necessarily include the entirety of a row. This allows for faster updates without the overhead of reading or rewriting larger columns.
Claims20
A method for implementing read or scan in a distributed database system, the method comprising:
- creating a scanner that operates as a point-in-time snapshot of a tablet in memory, wherein the tablet includes a row, newly inserted in the memory, with one or more mutations applied thereto;
- taking a snapshot of the tablet, using the created scanner, to determine which of the one or more mutations should be considered committed;
- upon determining that the row is committed in the taken snapshot, copying data of the row into an output buffer of the scanner;
- and
- for each particular mutation of the one or more mutations:
- upon determining that the particular mutation is committed in the snapshot, applying the particular mutation to the row in the memory.
A computing system comprising:
- one or more processors;
- and
- one or more memories storing instructions that, when executed by the one or more processors, cause the computing system to perform a process for implementing read or scan in a distributed database system, the process comprising:
- creating a scanner that operates as a point-in-time snapshot of a tablet in memory, wherein the tablet includes a row, newly inserted in the memory, with one or more mutations applied thereto;
- taking a snapshot of the tablet, using the created scanner, to determine which of the one or more mutations should be considered committed;
- upon determining that the row is committed in the taken snapshot, copying data of the row into an output buffer of the scanner;
- and
- for each particular mutation of the one or more mutations:
- upon determining that the particular mutation is committed in the snapshot, applying the particular mutation to the row in the memory.
A non-transitory computer-readable medium storing instructions that, when executed by a computing system, cause the computing system to perform a process for implementing read or scan in a distributed database system, the process comprising:
- creating a scanner that operates as a point-in-time snapshot of a tablet in memory, wherein the tablet includes a row, newly inserted in the memory, with one or more mutations applied thereto;
- taking a snapshot of the tablet, using the created scanner, to determine which of the one or more mutations should be considered committed;
- upon determining that the row is committed in the taken snapshot, copying data of the row into an output buffer of the scanner;
- and
- for each particular mutation of the one or more mutations:
- upon determining that the particular mutation is committed in the snapshot, applying the particular mutation to the row in the memory.
Dependencies are inferred from the claim text.