foundationdb/documentation/sphinx/source/technical-overview.rst

48 lines
2.6 KiB
ReStructuredText

##################
Technical Overview
##################
These documents explain the engineering design of FoundationDB, with detailed information on its features, architecture, and performance.
* :doc:`architecture` provides a diagrammatic description of FoundationDB's logical architecture.
* :doc:`layer-concept`: Applications use layers to add capabilities to FoundationDB's minimal key-value API. A layer can provide a new data model, encapsulate an algorithm, or even be an entire framework.
* :doc:`transaction-processing`: FoundationDB supports transaction processing over a distributed cluster. We use optimistic concurrency control with a transactional authority running on a small number of transaction servers.
* :doc:`performance` describes the scaling, latency, throughput, and concurrency behavior of FoundationDB under various workloads and configurations.
* :doc:`benchmarking` describes how we approach testing FoundationDB using different client concurrencies and cluster sizes.
* :doc:`features` describes the fundamental properties of FoundationDB, as well as those that relate to performance, concurrency, and operations.
* :doc:`anti-features`: What a system *isn't* is sometimes as important as what it is. FoundationDB explicitly excludes some features either because they are at odds with the overall system design, or because they are better implemented as :doc:`layers <layer-concept>`.
* :doc:`engineering` summarizes the unique tools and capabilities behind FoundationDB.
* :doc:`fault-tolerance`: FoundationDB provides fault tolerance by intelligently replicating data across a distributed cluster of machines. Our architecture is designed to minimize service interruption and data loss in the event of machine failures.
* :doc:`flow`: FoundationDB faces rigorous engineering challenges for high performance and scalability. To meet these challenges, we implemented Flow, an extension to C++ that supports actor-based concurrency with new keywords and control-flow primitives while retaining speed and I/O efficiency.
* :doc:`testing`: FoundationDB uses a combined regime of robust simulation, live performance testing, and hardware-based failure testing to meet exacting standards of correctness and performance.
* :doc:`kv-architecture` provides a description of every major role a process in FoundationDB can fulfill.
.. toctree::
:maxdepth: 1
:titlesonly:
:hidden:
architecture
performance
benchmarking
engineering
features
layer-concept
anti-features
transaction-processing
fault-tolerance
flow
testing
kv-architecture