摘要:
Methods and apparatus, including computer program products, for managing a cluster of servers organized into nodes. A method of one aspect includes establishing a cluster; establishing a set of ultimate identifiers for nodes resulting from splitting in the cluster; and storing every new data object on a node that has a node identifier that identifies a subset of the set of ultimate identifiers, and providing for the object a universal identifier that combines (i) an object identifier that is unique on the node and (ii) a server identifier that is one of the ultimate identifiers in the subset. A method of another aspect includes generating for a new data object a universal identifier that has a node identifier part that uniquely identifies a node, a reserve part generated at least in part as a pseudo-random value, and an object identifier part that uniquely identifies the object in the node.
摘要:
The subject matter disclosed herein provides methods for determining the page on which a desired row position value is located. A table having a plurality of rows can be accessed. The rows can be distributed across one or more pages in an in-memory database. Each row can be associated with a unique row position value. Each page can be associated with a capacity that is representative of an amount of data stored on the page. A capacity index having a plurality of entries can be created to record changes in capacity between pages. Neighboring entries in the capacity index can have a different capacity. Each entry in the capacity index can correspond to a page. A page directory can be created based on the capacity index. The page directory can indicate all possible row position values associated with each page. Related apparatus, systems, techniques, and articles are also described.
摘要:
Metadata is stored within a database for each of a plurality of objects in different frames associated with a structure descriptor (e.g., a container directory entry, etc.). The frames are part of a metadata page and each comprising an object and a header specifying a version identifier for the object and a size of the object. The structure descriptor initially is built for a first build identifier. Thereafter, upon the structure descriptor changing from the first build identifier to a second build identifier, at least one of the objects that require migration is identified. The identification is based on the version identifier for the object being different from the second build identifier. In response, the identified objects are migrated from their corresponding frame to a new frame. The new frame includes the objects and new headers that include a version identifier equal to the second build identifier.
摘要:
An operation on a row of a table of a database is initiated. Thereafter, a multi-version concurrency control (MVCC) object is accessed to identify blocks associated with the row position of the row using bitwise operations. Subsequently, a row state block computed based on the row position of the row is accessed to determine a row state for the row. At least one other block is accessed, based in part on the row state, to obtain at least one timestamp from the computed offset based on the row. Next, the at least one timestamp is stored or retrieved. Related apparatus, systems, techniques and articles are also described.
摘要:
Lockless allocation of a block from a page is initiated by computing a needed block size from an original block header value. Thereafter, a currently used block size and a capacity of the page are determined. A new block size is then computed based on the currently used block size and the needed block size and a remaining capacity of the page. A new block header value is subsequently generated that includes the determined new block size and the determined remaining capacity of the page The original block header value is then replaced with the new block header value. Related apparatus, systems, techniques and articles are also described.
摘要:
A plurality of data records of a data set can be stored in a plurality of main part fragments, at least one of which is an old fragment stored on-disk. A number of one or more data records in the old fragment that have been marked for deletion can be determined to be greater than a threshold number, and the old fragment can be loaded into main system memory. A merge of the old fragment can be performed to remove the one or more data records marked for deletion.
摘要:
A system includes reception of a value, determination of whether the value is associated with a respective value identifier in a dictionary index associating each of a plurality of values with a respective value identifier, and in response to a determination that the value is not associated with a respective value identifier in the dictionary index: reservation of a slot of a reservation array comprising a plurality of slots, writing of the value into the reserved slot, insertion of a reserved value identifier of the reserved slot and a version counter of the reserved slot into a position of the dictionary index corresponding to the value, insertion of the value into a position of a dictionary vector storing a respective value in each of a plurality of vector positions, insertion of a first value identifier corresponding to the position of the dictionary vector into the position of the dictionary index corresponding to the value, and returning of the first value identifier.
摘要:
A data size characteristic of contents of a related unit of data to be written to a storage by an input/output module of a data storage application can be determined, and a storage page size consistent with the data size can be selected from a plurality of storage page sizes. The related unit of data can be assigned to a storage page having the selected storage page size, and the storage page can be passed to the input/output module so that the input/output module physically clusters the contents of the related unit of data when the input/output module writes the contents of the related unit of data to the storage. Related methods, systems, and articles of manufacture are also disclosed.
摘要:
A system to load a plurality of converter pages of a datastore into a database cache, the plurality of converter pages comprising a plurality of converter inner pages, and a plurality of converter leaf pages, to allocate a control block in the database cache for each of the plurality of converter inner pages, the control block of a converter inner page comprising a pointer to a control block of a parent converter inner page and a pointer to a control block of each child converter page of the converter inner page, and to allocate a control block in the database cache for each of the plurality of converter leaf pages, the control block of a converter leaf page comprising a pointer to a control block of a parent converter inner page.
摘要:
A plurality of data records of a data set can be stored in a plurality of main part fragments, at least one of which is an old fragment stored on-disk. A number of one or more data records in the old fragment that have been marked for deletion can be determined to be greater than a threshold number, and the old fragment can be loaded into main system memory. A merge of the old fragment can be performed to remove the one or more data records marked for deletion.