Hybrid data storage and load system with rowid lookup
US-2020387495-A1 · Dec 10, 2020 · US
US12393565B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12393565-B2 |
| Application number | US-202318535176-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 11, 2023 |
| Priority date | Dec 11, 2023 |
| Publication date | Aug 19, 2025 |
| Grant date | Aug 19, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A database system detects a query targeting a first database object stored in a unified persistence format in a persistence store, where a first load unit is specified for loading the first database object into an in-memory store. The database system determines whether to convert the first load unit to a second load unit based on one or more conditions. In response to determining to convert the first load unit to the second load unit for the first database object, the first database object is loaded into the in-memory store according to the second load unit without performing a rewrite of the first database object in the persistence store. In an example, the first load unit is a column-loadable unit and the second load unit is a page-loadable unit.
Opening claim text (preview).
What is claimed: 1. A method performed by a database system, comprising: detecting a first query targeting a first database object stored in a unified persistence format in a persistence store, wherein a first load unit is specified for loading the first database object into an in-memory store; determining whether to convert the first load unit to a second load unit based on one or more conditions; and responsive to determining to convert the first load unit to the second load unit for the first database object, loading the first database object into the in-memory store according to the second load unit without performing a rewrite of the first database object in the persistence store, wherein loading the first database object into the in-memory store according to the second load unit comprises: creating a first column fragment object in the in-memory store, wherein the first column fragment object corresponds to the first database object; incrementing a reference count associated with a first persistence page chain referenced by the first column fragment object and copying metadata associated with the first persistence page chain to the first column fragment object in response to creating the first column fragment object in the in-memory store; instantiating, with the copied metadata, a first in-memory representation of the first persistence page chain; and maintaining the first persistence page chain in the persistence store for as long as the reference count is greater than zero. 2. The method of claim 1 , wherein the first load unit is a column-loadable unit, and wherein the second load unit is a page-loadable unit. 3. The method of claim 2 , wherein loading the first database object into the in-memory store according to the page-loadable unit comprises loading only pages relevant to the first query. 4. The method of claim 3 , wherein the column-loadable unit comprises having a data subcomponent, a dictionary subcomponent, and an index subcomponent of a corresponding database object serialized together into a single page chain, and wherein the page-loadable unit comprises having a separate page chain for each of the data subcomponent, the dictionary subcomponent, and the index subcomponent of the first database object. 5. The method of claim 1 , further comprising: determining whether persistence page chains may be shared for individual subcomponents of the first database object; creating a new version of a column fragment object for the first database object according to the second load unit; sharing a second persistence page chain between the new version of the column fragment object and an old version of the column fragment object for a first subcomponent in response to determining the first subcomponent meets one or more second conditions for the second persistence page chain to be shared; incrementing a second reference count corresponding to the second persistence page chain; preventing a third persistence page chain from being shared between the new version of the column fragment object and the old version of the column fragment object for a second subcomponent in response to determining the third persistence page chain may not be shared for the second subcomponent; creating a new attribute value container and copying data for the second subcomponent to the new attribute value container; and saving the new attribute value container to make the new version of the column fragment object visible to subsequent load threads. 6. The method of claim 1 , wherein the first load unit is a page-loadable unit, wherein the second load unit is a column-loadable unit, and wherein loading the first database object into the in-memory store according to the column-loadable unit comprises loading an entirety of the first database object into the in-memory store. 7. The method of claim 1 , wherein the copied metadata comprises: a first pointer to a starting address of the first persistence page chain in the persistence store; and a second pointer to an ending address of the first persistence page chain in the persistence store. 8. The method of claim 1 , wherein the unified persistence format comprises having a separate page chain for each of a data subcomponent, a dictionary subcomponent, and an index subcomponent of the first database object, and wherein a first condition, of the one or more conditions, comprises an access frequency of the first database object being less than a threshold. 9. A system, comprising: at least one processor; and at least one memory including program instructions which when executed by the at least one processor causes operations comprising: detecting a first query targeting a first database object stored in a unified persistence format in a persistence store, wherein a first load unit is specified for loading the first database object into an in-memory store; determining whether to convert the first load unit to a second load unit based on one or more conditions; and responsive to determining to convert the first load unit to the second load unit for the first database object, loading the first database object into the in-memory store according to the second load unit without performing a rewrite of the first database object in the persistence store, wherein loading the first database object into the in-memory store according to the second load unit comprises: creating a first column fragment object in the in-memory store, wherein the first column fragment object corresponds to the first database object; incrementing a reference count associated with a first persistence page chain referenced by the first column fragment object and copying metadata associated with the first persistence page chain to the first column fragment object in response to creating the first column fragment object in the in-memory store; instantiating, with the copied metadata, a first in-memory representation of the first persistence page chain; and maintaining the first persistence page chain in the persistence store for as long as the reference count is greater than zero. 10. The system of claim 9 , wherein the first load unit is a column-loadable unit, and wherein the second load unit is a page-loadable unit. 11. The system of claim 10 , wherein loading the first database object into the in-memory store according to the page-loadable unit comprises loading only pages relevant to the first query. 12. The system of claim 11 , wherein the column-loadable unit comprises having a data subcomponent, a dictionary subcomponent, and an index subcomponent of a corresponding database object serialized together into a single page chain, and wherein the page-loadable unit comprises having a separate page chain for each of the data subcomponent, the dictionary subcomponent, and the index subcomponent of the first database object. 13. The system of claim 9 , wherein the program instructions are further executable by the at least one processor to cause operations comprising: determining whether persistence page chains may be shared for individual subcomponents of the first database object; creating a new version of a column fragment object for the first database object according to the second load unit; sharing a second persistence page chain between the new version of the column fragment object and an old version of the column fragment object for a first subcomponent in response to determining the first subcomponent meets one or more second conditions for the second persistence page chain to be shared; incrementing a second reference count corresponding to the second persistence page chain; preventing a third persistence page chain from be
using page tables, e.g. page table structures · CPC title
Tablespace storage structures; Management thereof · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.