fdb-record-layer-core 4.1.4.0 API

A record-oriented layer built for the FoundationDB key-value store.

This layer is designed to extend the FoundationDB key-value store by adding a record-oriented data model. Though this layer does not attempt to implement SQL, it does provide relational semantics (broadly defined). In particular, it attempts to provide solutions to:

  • Schema management
  • Index maintenance
  • Query planning and optimization

The basic unit of data is the "record". This corresponds to a "row" in a traditional relational system or to a "document" in a document database. Records are grouped together into "record stores", which are somewhat analogous to a "database" in a traditional relational database, and each record also has a "type" which is somewhat (but not quite) analogous to a "table". (See, however, "Are record types tables?" in the FAQ for an explanation of the differences between the two concepts.)

For a more complete overview of the features and goals of the Record Layer, consult the Record Layer overview.

Packages 
Package Description
com.apple.foundationdb.record
A record layer for FoundationDB based on Protocol Buffers.
com.apple.foundationdb.record.cursors
Cursor implementation classes.
com.apple.foundationdb.record.cursors.aggregate
Cursor implementation classes.
com.apple.foundationdb.record.locking
Implement locking to be used in RecordCursors and various IndexMaintainers for controlling concurrency in read/write data paths.
com.apple.foundationdb.record.logging
Helper classes for logging.
com.apple.foundationdb.record.metadata
Record meta-data structures.
com.apple.foundationdb.record.metadata.expressions
Record keys used in indexes and the primary storage.
com.apple.foundationdb.record.provider.common
Support classes that do not depend on FoundationDB.
com.apple.foundationdb.record.provider.common.text
Support classes for text indexing.
com.apple.foundationdb.record.provider.foundationdb
Classes for FoundationDB record storage.
com.apple.foundationdb.record.provider.foundationdb.clientlog
Classes for interacting with system key client logs in record layer terms.
com.apple.foundationdb.record.provider.foundationdb.cursors
Record cursors that depend on having access to an actual record store.
com.apple.foundationdb.record.provider.foundationdb.indexes
Index maintainer classes.
com.apple.foundationdb.record.provider.foundationdb.indexing
Classes used during index builds.
com.apple.foundationdb.record.provider.foundationdb.keyspace
A directory-like symbolic layout of keys in FoundationDB.
com.apple.foundationdb.record.provider.foundationdb.layers.interning
A layer for mapping potentially long strings to and from more compact tuple elements.
com.apple.foundationdb.record.provider.foundationdb.leaderboard
Maintain leaderboard as multiple time-windowed ranked sets (so that old scores fall off).
com.apple.foundationdb.record.provider.foundationdb.properties
Classes for a property mechanism that supports server-side configuration for Record Layer by its adopter.
com.apple.foundationdb.record.provider.foundationdb.runners
Classes for running blocks of asynchronous code with-or-without retries.
com.apple.foundationdb.record.provider.foundationdb.storestate
Classes for caching RecordStoreState information.
com.apple.foundationdb.record.provider.foundationdb.synchronizedsession
Extends the com.apple.foundationdb.synchronizedsession package to support running operations in synchronized sessions with FDBDatabaseRunners and FDBRecordContexts.
com.apple.foundationdb.record.query
Classes for querying records.
com.apple.foundationdb.record.query.combinatorics
Utility package to hold general-purpose algorithms used by the Cascades planner.
com.apple.foundationdb.record.query.expressions
Classes implementing logical query expression.
com.apple.foundationdb.record.query.plan
Query planner classes.
com.apple.foundationdb.record.query.plan.bitmap
Classes relating to bitmap operations over BITMAP_VALUE index entries.
com.apple.foundationdb.record.query.plan.cascades
This will contain design docs for the Cascades planner at some point.
com.apple.foundationdb.record.query.plan.cascades.debug
Stub for planner debugger.
com.apple.foundationdb.record.query.plan.cascades.explain
This package implements a visualization of a RelationalExpression as a graph for both internal debugging purposes and for consumption by end-users.
com.apple.foundationdb.record.query.plan.cascades.expressions
A variety of planner-specific RelationalExpression implementations which will never be used outside of the planner.
com.apple.foundationdb.record.query.plan.cascades.matching.graph
This package contains everything related to graph matching.
com.apple.foundationdb.record.query.plan.cascades.matching.structure
Classes related to the Cascades matcher system and its implementation.
com.apple.foundationdb.record.query.plan.cascades.predicates
A package for all implementations of the QueryPredicate.
com.apple.foundationdb.record.query.plan.cascades.predicates.simplification
A package for all simplification rules defined over QueryPredicates.
com.apple.foundationdb.record.query.plan.cascades.properties
A package for planner properties (in the sense that Cascades uses them).
com.apple.foundationdb.record.query.plan.cascades.rules
A package containing the rules used by the planner.
com.apple.foundationdb.record.query.plan.cascades.typing
Code to create dynamic messages from structured Types using protobuf.
com.apple.foundationdb.record.query.plan.cascades.values
A package for all implementations of the Value.
com.apple.foundationdb.record.query.plan.cascades.values.simplification
Package to contain logic to simplify a tree of Values.
com.apple.foundationdb.record.query.plan.cascades.values.translation
A package for Value translation algorithms.
com.apple.foundationdb.record.query.plan.explain
Classes supporting plan explains.
com.apple.foundationdb.record.query.plan.planning
Support classes for query planning.
com.apple.foundationdb.record.query.plan.plans
Classes implementing executable query plan elements.
com.apple.foundationdb.record.query.plan.serialization
Classes related to plan serialization/deserialization.
com.apple.foundationdb.record.query.plan.sorting
Classes relating to plan execution with in-memory / file sorting.
com.apple.foundationdb.record.query.plan.synthetic
Classes relating to hooking up join index synthetic records to the query planner.
com.apple.foundationdb.record.query.plan.visitor
A package of classes in the visitor pattern that perform substitutions on a tree of RecordQueryPlans.
com.apple.foundationdb.record.sorting
Implement sorting for RecordCursor for use in queries without a sorting index.
com.apple.foundationdb.record.util
Miscellaneous record layer support classes.
com.apple.foundationdb.record.util.pair
Classes used for utility classes for handling pairs of elements.
com.google.protobuf
Ability to support zero copy byte[] wrapping to ByteString.