Package com.apple.foundationdb.record

A record layer for FoundationDB based on Protocol Buffers.

This layer is a record-oriented database based on Protocol Buffers. Record instances are Protobuf Messages stored in the FoundationDB key-value store.

Highlights

Record data is mediated by a RecordMetaData, which defines RecordTypes and their transactionally-consistent secondary Indexes.

All interaction with the database is performed inside a transaction, represented by an FDBRecordContext.

An FDBRecordStore represents a specific contiguous Subspace of the key-value store used to store records for a specific meta-data.

Records can be retrieved directly from the record store by primary key. Or they can be gotten as the result of queries. A RecordQuery represents a logical query. A RecordQueryPlanner transforms a logical query into an executable RecordQueryPlan, which can be run against a record store to give a RecordCursor of records.

The same meta-data can be used to describe multiple record stores. To organize the placement of these record stores in separate key-value ranges according to hierarchical parameters, a KeySpace is used.

All database operations are instrumented by a StoreTimer, which can be hooked up to whatever logging and monitoring system a client uses.