Commit 3674c507 authored by Jim Fulton's avatar Jim Fulton Committed by GitHub

Merge pull request #117 from zopefoundation/doc-storages

Noteworthy non-included storages: split base storages from others, NEO
parents 7223554a 392901f9
...@@ -135,7 +135,7 @@ Demo storages are configured using the ``demostorage`` section:: ...@@ -135,7 +135,7 @@ Demo storages are configured using the ``demostorage`` section::
``demostorage`` sections can contain up to 2 storage subsections, ``demostorage`` sections can contain up to 2 storage subsections,
named ``base`` and ``changes``, specifying the demo storage's base and named ``base`` and ``changes``, specifying the demo storage's base and
changes storages. See :meth:`ZODB.DemoStorage.DemoStorage.__init__` changes storages. See :meth:`ZODB.DemoStorage.DemoStorage.__init__`
for more on the base anc changes storages. for more on the base and changes storages.
Options: Options:
...@@ -144,31 +144,46 @@ Options: ...@@ -144,31 +144,46 @@ Options:
Noteworthy non-included storages Noteworthy non-included storages
================================ ================================
A number of important ZODB storages are distributed separately, including: A number of important ZODB storages are distributed separately.
Base storages
-------------
Unlike the included storages, all the implementations listed in this section
allow multiple processes to share the same database.
NEO
`NEO <https://lab.nexedi.com/nexedi/neoppod>`_ can spread data among several
computers for load-balancing and multi-master replication. It also supports
asynchronous replication to off-site NEO databases for further disaster
resistance without affecting local operation latency.
For more information, see https://lab.nexedi.com/nexedi/neoppod.
RelStorage RelStorage
`RelStorage <http://relstorage.readthedocs.io/en/latest/>`_ `RelStorage <http://relstorage.readthedocs.io/en/latest/>`_
stores data in relational databases. This is especially stores data in relational databases. This is especially
useful when you have requirements or existing infrastructure for useful when you have requirements or existing infrastructure for
storing data in relational databases. Unlike the included storages, storing data in relational databases.
multiple processes can share the same database.
For more information, see http://relstorage.readthedocs.io/en/latest/. For more information, see http://relstorage.readthedocs.io/en/latest/.
ZEO ZEO
`ZEO <https://github.com/zopefoundation/ZEO>`_ is a client-server `ZEO <https://github.com/zopefoundation/ZEO>`_ is a client-server
database implementation for ZODB. To use ZEO, you run a ZEO server, database implementation for ZODB. To use ZEO, you run a ZEO server,
and use ZEO clients in your application. Unlike the included and use ZEO clients in your application.
storages, multiple processes can share the same database.
For more information, see https://github.com/zopefoundation/ZEO. For more information, see https://github.com/zopefoundation/ZEO.
Optional layers
---------------
ZRS ZRS
`ZRS <https://github.com/zc/zrs>`_ `ZRS <https://github.com/zc/zrs>`_
provides replication from one database to another. It's most provides replication from one database to another. It's most
commonly used with ZEO. With ZRS, you create a ZRS primary database commonly used with ZEO. With ZRS, you create a ZRS primary database
around a :class:`~ZODB.FileStorage.FileStorage.FileStorage` and in a around a :class:`~ZODB.FileStorage.FileStorage.FileStorage` and in a
separate process, you creatre a ZRS secondary storage around any separate process, you create a ZRS secondary storage around any
:interface:`storage <ZODB.interfaces.IStorage>`. As transactions are :interface:`storage <ZODB.interfaces.IStorage>`. As transactions are
committed on the primary, they're copied asynchronously to committed on the primary, they're copied asynchronously to
secondaries. secondaries.
......
...@@ -9,7 +9,7 @@ ZODB module functions ...@@ -9,7 +9,7 @@ ZODB module functions
.. method:: DB(storage, *args, **kw) .. method:: DB(storage, *args, **kw)
Create a databse. See :py:class:`ZODB.DB`. Create a database. See :py:class:`ZODB.DB`.
.. autofunction:: ZODB.connection .. autofunction:: ZODB.connection
...@@ -126,7 +126,7 @@ TimeStamp (transaction ids) ...@@ -126,7 +126,7 @@ TimeStamp (transaction ids)
.. method:: raw() .. method:: raw()
Get an 8-byte representatin of the time stamp for use in APIs Get an 8-byte representation of the time stamp for use in APIs
that require a time stamp. that require a time stamp.
.. method:: second() .. method:: second()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment