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.
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.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.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.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 FDBDatabaseRunner s
and FDBRecordContext s. |
com.apple.foundationdb.record.query |
Classes for querying records.
|
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.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.synthetic |
Classes relating to hooking up join index synthetic records to the query planner.
|
com.apple.foundationdb.record.query.plan.temp |
This will contain design docs for the Cascades planner at some point.
|
com.apple.foundationdb.record.query.plan.temp.debug |
Stub for planner debugger
|
com.apple.foundationdb.record.query.plan.temp.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.temp.expressions |
A variety of planner-specific
RelationalExpression implementations
which will never be used outside of the planner. |
com.apple.foundationdb.record.query.plan.temp.matchers |
Classes related to the Cascades matcher system and its implementation.
|
com.apple.foundationdb.record.query.plan.temp.matching |
This package contains everything related to graph matching.
|
com.apple.foundationdb.record.query.plan.temp.properties |
A package for planner properties (in the sense that Cascades uses them).
|
com.apple.foundationdb.record.query.plan.temp.rules |
A package containing the rules used by the planner.
|
com.apple.foundationdb.record.query.plan.temp.view |
Classes related to the
ViewExpression abstraction. |
com.apple.foundationdb.record.query.plan.visitor |
A package of classes in the visitor pattern that perform substitutions on a tree of
RecordQueryPlan s. |
com.apple.foundationdb.record.query.predicates |
Implementations of query predicates
|
com.apple.foundationdb.record.util |
Miscellaneous record layer support classes.
|