Interface FDBRecordStoreBase<M extends Message>

  • Type Parameters:
    M - type used to represent stored records
    All Superinterfaces:
    RecordMetaDataProvider
    All Known Implementing Classes:
    FDBRecordStore, FDBTypedRecordStore

    @API(MAINTAINED)
    public interface FDBRecordStoreBase<M extends Message>
    extends RecordMetaDataProvider
    Base interface for typed and untyped record stores. This interface is the main front-end for most operations inserting, modifying, or querying data through the Record Layer. A record store combines:

    All of the record store's data—including index data—are stored durably within the given subspace. Note that the meta-data is not stored by the record store directly. However, information about the store's current meta-data version is persisted with the store to detect when the meta-data have changed and to know if any action needs to be taken to begin using the new meta-data. (For example, new indexes might need to be built and removed indexes deleted.) The same meta-data may be used for multiple record stores, and separating the meta-data from the data makes updating the shared meta-data simpler as it only needs to be updated in one place. The FDBMetaDataStore may be used if one wishes to persist the meta-data into a FoundationDB cluster.

    All operations conducted by a record store are conducted within the lifetime single transaction, and no data is persisted to the database until the transaction is committed by calling FDBRecordContext.commit() or FDBRecordContext.commitAsync(). Record Layer transactions inherit all of the guarantees and limitations of the transactions exposed by FoundationDB, including their durability and consistency guarantees as well as size and duration limits. See the FoundationDB known limitations for more details.

    The record store also allows the user to tweak additional parameters such as what the parallelism of pipelined operations should be (through the FDBRecordStoreBase.PipelineSizer) and what serializer should be used to read and write data to the database. See the FDBRecordStoreBase.BaseBuilder interface for more details.

    See Also:
    FDBRecordStore, FDBTypedRecordStore