Commit 6770c28e authored by Jim Fulton's avatar Jim Fulton

Various doc improvments

- Better intro

- ReST improvements

- Spelling

- Less misleading WRT daemonization

- Removed dead log-configuration link
parent 7c0047ce
========================== ============================================================
ZEO ZEO - Single-server client-server database server for ZODB
========================== ============================================================
ZEO is a client-server storage for `ZODB <http://www.zodb.org>`_ for
sharing a single storage among many clients. When you use ZEO, a
lower-level storage, typically a file storage, is opened in the ZEO
server process. Client programs connect to this process using a ZEO
ClientStorage. ZEO provides a consistent view of the database to all
clients. The ZEO client and server communicate using a custom
protocol layered on top of TCP.
Some alternatives to ZEO:
- `NEO <http://www.neoppod.org/>`_ is a distributed-server
client-server storage.
- `RelStorage <http://relstorage.readthedocs.io/en/latest/>`_
leverages the RDBMS servers to provide a client-server storage.
.. contents:: .. contents::
Introduction Introduction
============ ============
ZEO (Zope Enterprise Objects) is a client-server system for sharing a
single storage among many clients. When you use ZEO, a lower-level
storage, typically a file storage, is opened in the ZEO server
process. Client programs connect to this process using a ZEO
ClientStorage. ZEO provides a consistent view of the database to all
clients. The ZEO client and server communicate using a custom
protocol layered on top of TCP.
There are several features that affect the behavior of There are several features that affect the behavior of
ZEO. This section describes how a few of these features ZEO. This section describes how a few of these features
work. Subsequent sections describe how to configure every option. work. Subsequent sections describe how to configure every option.
...@@ -74,7 +82,7 @@ server. In this case, if the invalidation queue is too small, but a ...@@ -74,7 +82,7 @@ server. In this case, if the invalidation queue is too small, but a
client has been disconnected for a time interval that is less than the client has been disconnected for a time interval that is less than the
invalidation age, then invalidations are replayed by iterating over invalidation age, then invalidations are replayed by iterating over
the lower-level storage on the server. If the age is too high, and the lower-level storage on the server. If the age is too high, and
clients are disconneced for a long time, then this can put a lot of clients are disconnected for a long time, then this can put a lot of
load on the server. load on the server.
Transaction timeouts Transaction timeouts
...@@ -135,7 +143,7 @@ Installing software ...@@ -135,7 +143,7 @@ Installing software
=================== ===================
ZEO is installed like any other Python package using pip, buildout, or ZEO is installed like any other Python package using pip, buildout, or
pther Python packaging tools. other Python packaging tools.
Running the server Running the server
================== ==================
...@@ -147,7 +155,7 @@ accepts command line options, the most important of which is the ...@@ -147,7 +155,7 @@ accepts command line options, the most important of which is the
via configuration files. The ``runzeo`` script also accepts some via configuration files. The ``runzeo`` script also accepts some
command-line arguments for ad-hoc configurations, but there's an command-line arguments for ad-hoc configurations, but there's an
easier way to run an ad-hoc server described below. For more on easier way to run an ad-hoc server described below. For more on
configuraing a ZEO server see `Server configuration`_ below. configuring a ZEO server see `Server configuration`_ below.
Server quick-start/ad-hoc operation Server quick-start/ad-hoc operation
----------------------------------- -----------------------------------
...@@ -196,9 +204,9 @@ function. See it's documentation string for more information. ...@@ -196,9 +204,9 @@ function. See it's documentation string for more information.
Server configuration Server configuration
-------------------- --------------------
The script runzeo.py runs the ZEO server. The server can be The script ``runzeo`` runs the ZEO server. The server can be
configured using command-line arguments or a config file. This configured using command-line arguments or a configuration file. This
document only describes the config file. Run runzeo.py document only describes the configuration file. Run ``runzeo``
-h to see the list of command-line arguments. -h to see the list of command-line arguments.
The configuration file specifies the underlying storage the server The configuration file specifies the underlying storage the server
...@@ -236,14 +244,13 @@ typing:: ...@@ -236,14 +244,13 @@ typing::
runzeo -C zeo.config runzeo -C zeo.config
A configuration file consists of a <zeo> section and a storage A configuration file consists of a ``<zeo>`` section and a storage
section, where the storage section can use any of the valid ZODB section, where the storage section can use any of the valid ZODB
storage types. It may also contain an eventlog configuration. See storage types. It may also contain an event log configuration. See
ZODB documentation for information on configuring storages. See `ZODB documentation <http://www.zodb.org>`_ for information on
`Configuring event logs <logs.rst>`_ for information on configuring configuring storages.
server logs.
The zeo section must list the address. All the other keys are The ``zeo`` section must list the address. All the other keys are
optional. optional.
address address
...@@ -353,15 +360,12 @@ authenticate ...@@ -353,15 +360,12 @@ authenticate
Running the ZEO server as a daemon Running the ZEO server as a daemon
---------------------------------- ----------------------------------
In an operational setting, you will want to run the ZEO server a In an operational setting, you will want to run the ZEO server as a
daemon process that is restarted when it dies. The zdaemon package daemon process that is restarted when it dies. ``runzeo`` makes no
provides two tools for running daemons: zdrun.py and zdctl.py. You can attempt to implement a well behaved daemon. It expects that
find zdaemon and it's documentation at functionality to be provided by a wrapper like `zdaemon
http://pypi.python.org/pypi/zdaemon. <https://pypi.python.org/pypi/zdaemon>`_ or `supervisord
<http://supervisord.org/>`_.
Note that ``runzeo`` makes no attempt to implemnt a well behaved
daemon. It expects that functionality to be provided by a wrapper like
zdaemon or supervisord.
Rotating log files Rotating log files
------------------ ------------------
...@@ -392,8 +396,8 @@ function:: ...@@ -392,8 +396,8 @@ function::
In the example above, we created a client that connected to a storage In the example above, we created a client that connected to a storage
listening on port 8200 on local host. The first argument is an listening on port 8200 on local host. The first argument is an
address, or list of addresses to connect to. There are many additinal address, or list of addresses to connect to. There are many additional
options, decumented below that should be given as keyword arguments. options, documented below that should be given as keyword arguments.
Addresses can be: Addresses can be:
...@@ -410,7 +414,7 @@ cache_size ...@@ -410,7 +414,7 @@ cache_size
cache cache
The ZEO cache to be used. This can be a file name, which will The ZEO cache to be used. This can be a file name, which will
cause a persisetnt standard persistent ZEO cache to be used and cause a persistent standard persistent ZEO cache to be used and
stored in the given name. This can also be an object that stored in the given name. This can also be an object that
implements ``ZEO.interfaces.ICache``. implements ``ZEO.interfaces.ICache``.
...@@ -436,7 +440,7 @@ blob_cache_size ...@@ -436,7 +440,7 @@ blob_cache_size
blob_cache_size_check blob_cache_size_check
The total size of data to be downloaded to trigger blob cache size The total size of data to be downloaded to trigger blob cache size
reduction. The defaukt is 10 (percent). This controls how often to reduction. The default is 10 (percent). This controls how often to
remove blobs from the cache. remove blobs from the cache.
ssl ssl
...@@ -465,7 +469,7 @@ read_only_fallback ...@@ -465,7 +469,7 @@ read_only_fallback
server_sync server_sync
Flag, false by default, indicating whether the ``sync`` method Flag, false by default, indicating whether the ``sync`` method
should make a server request. The ``sync`` method is called at the should make a server request. The ``sync`` method is called at the
start of explcitly begin transactions. Making a server requests assures start of explicitly begin transactions. Making a server requests assures
that any invalidations outstanding at the beginning of a that any invalidations outstanding at the beginning of a
transaction are processed. transaction are processed.
...@@ -574,7 +578,7 @@ blob-cache-size ...@@ -574,7 +578,7 @@ blob-cache-size
blob-cache-size-check blob-cache-size-check
The total size of data to be downloaded to trigger blob cache size The total size of data to be downloaded to trigger blob cache size
reduction. The defaukt is 10 (percent). This controls how often to reduction. The default is 10 (percent). This controls how often to
remove blobs from the cache. remove blobs from the cache.
read-only read-only
...@@ -591,7 +595,7 @@ read-only-fallback ...@@ -591,7 +595,7 @@ read-only-fallback
If ``read_only_fallback`` is set, then ``read_only`` is ignored. If ``read_only_fallback`` is set, then ``read_only`` is ignored.
server-sync server-sync
Sets thr ``server_sync`` option described above. Sets the ``server_sync`` option described above.
wait_timeout wait_timeout
How long to wait for an initial connection, defaulting to 30 How long to wait for an initial connection, defaulting to 30
...@@ -631,7 +635,7 @@ An ``ssl`` subsection can be used to enable and configure SSL, as in:: ...@@ -631,7 +635,7 @@ An ``ssl`` subsection can be used to enable and configure SSL, as in::
In the example above, SSL is enabled in it's simplest form: In the example above, SSL is enabled in it's simplest form:
- The cient expects the server to have a signed certificate, which the - The client expects the server to have a signed certificate, which the
client validates. client validates.
- The server server host name ``zeo.example.com`` is checked against - The server server host name ``zeo.example.com`` is checked against
...@@ -658,7 +662,7 @@ authenticate ...@@ -658,7 +662,7 @@ authenticate
``ssl.SSLContext.load_verify_locations``.) ``ssl.SSLContext.load_verify_locations``.)
If this setting is used. then certificate authentication is If this setting is used. then certificate authentication is
used to authenticate the server. The server must be configuted used to authenticate the server. The server must be configured
with one of the certificates supplied using this setting. with one of the certificates supplied using this setting.
check-hostname check-hostname
...@@ -670,6 +674,6 @@ server-hostname ...@@ -670,6 +674,6 @@ server-hostname
used in the server address. This option must be used when used in the server address. This option must be used when
``check-hostname`` is true and when a server address has no host ``check-hostname`` is true and when a server address has no host
name (localhost, or unix domain socket) or when there is more name (localhost, or unix domain socket) or when there is more
than one seerver and server hostnames differ. than one server and server hostnames differ.
Using this setting implies a true value for the ``check-hostname`` setting. Using this setting implies a true value for the ``check-hostname`` setting.
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