Package com.apple.foundationdb.record
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.
-
ClassDescriptionException thrown when an aggregate function is not supported.AsyncLoadingCache<K,
V> A cache for retaining the result of some asynchronous operation up until some expiration time.A map of bound parameter values passed to query evaluation.A builder forBindings.Bindings slots used internally by plan operators.A shim to wrap old-style byte array continuations.Track the number of bytes scanned up to some limit, after which record scans should not be allowed.A factory that produces implementations ofByteScanLimiters.The streaming mode to use when openingRecordCursors.The type of one of the endpoints of aTupleRange.A context for query evaluation.A builder forEvaluationContext.Limits on the execution of a query.A builder forExecuteProperties.An encapsulation of the mutable state of query or scan execution.Property keys for theFDBRecordStoreand related classes.Names of core-supported query functions.AnIndexEntrycarries around the key and value read from an index (as the name would imply).An indicator for the index fetch method to use for a query or an index scan.The way in which an index should be scanned.Different states an index might be in within a given store.The isolation level for reads from the database.A range within a subspace specified by two byte value endpoints.Subclass of TimeoutException with support for adding logging info in the form of keys and values.A record store that can be modified to reflect changes made to the database.This class implements a planHash for the member classes of the query plan.Kind of asynchronous pipelined operation being performed.Interface that needs to be implemented separately for every class that isPlanSerializable.A more stable version ofObject.hashCode().The "kinds" of planHash calculations.A mode for a plan hash which captures both kind and version.Base interface to indicate that a java class is reachable through aRecordQueryPlanand therefore needs to be capable of serialization/deserialization.Context class defining the state of serialization/deserialization currently in-flight.A interface indicating whether a given type can be serialized into a ProtoBufMessage.Functional equivalent ofIllegalArgumentException.An exception thrown by the core of the Record Layer.Exception thrown when an inconsistency in core record layer behavior is detected.Functional equivalent ofInterruptedException.An exception from transaction processing that ought to be retried.Exceptions due to problems with the state of or connection to a particular record store.RecordCursor<T>An asynchronous iterator that supports continuations.Transformation to apply to a continuation.The reason thatRecordCursorResult.hasNext()returnedfalse.An interface for types that represent the continuation of aRecordCursor.A concrete continuation representing that aRecordCursorhas returned all of the records that it ever will.An asynchronous iterator that wraps aRecordCursorand presents an iterator-style interface for advancing the cursor.A result obtained when aRecordCursoradvances.An exception thrown whenRecordCursorResult.getNoNextReason()is called on a result that has a next value.An exception thrown whenRecordCursorResult.get()is called on a result without a next value.A continuation representing the start of a cursor's execution.A hierarchical visitor for record cursor trees designed mostly to allow tests to gather information without adding invasive query methods to theRecordCursorinterface.A function to be applied to a record as part of query execution.An exception thrown when there is an attempt to store a duplicate value in a unique index.Meta-data for Record Layer record stores.A builder forRecordMetaData.Exception thrown when meta-data cannot be loaded from serialized form.A source ofRecordMetaData.Track number of records scanned up to some limit, after which record scans should not be allowed.A factory that produces implementations ofRecordScanLimiters.TheRecordStoreStateinterface handles information that might differ between otherwise identical record stores.Exception thrown when a transaction tries to scan more than the allowed number of key-value pairs.A group of properties that pertain to a single scan.Error being thrown when attempting to update a record while the store is locked for record updates.Track time remaining until a given time limit, after which record scans should not be allowed.A range within a subspace specified by twoTupleendpoints.Exception thrown when range endpoint is not consistent withCONTINUATIONendpoint type.ValueRange<T>A range defines the boundaries around a contiguous span of values of some type.