Each conglomerate holds a set of rows. Each row has a row location. The conglomerate provides methods for:
Conglomerates do not provide any mechanism for associative access to rows within the conglomerate; this type of access is provided by scans via the ScanController interface.
Although all conglomerates have the same interface, they have different implementations. The implementation of a conglomerate determines some of its user-visible semantics; for example whether the rows are ordered or what the types of the rows' columns must be. The implementation is specified by an implementation id. Currently there are two implementations, "heap", and "btree". The details of their behavior are specified in their implementation documentation. (Currently, only "heap" is implemented).
All conglomerate operations are subject to the transactional isolation of the transaction they were opened from. Transaction rollback will close all conglomerates. Transaction commit will close all non-held conglomerates.
Scans are opened from a TransactionController.
A ConglomerateController can handle partial rows. Partial rows are described in RowUtil. @see TransactionController#openConglomerate @see RowUtil
|
|