Document mongodb's driver deployments

This patch adds a base documentation for mongodb's driver. This
documentation is useful for both users, developers and operators, and it
should be probably moved to the users-guide.

Lets work and brainstorm on it as a developers doc first and then move
it.

Change-Id: I532c3d5edf20497eb9eae1f691dd706c5fe10b2a
This commit is contained in:
Flavio Percoco 2014-10-03 13:33:27 +02:00 committed by Flavio Percoco
parent 38a4cbab00
commit 0097597f6c
5 changed files with 65 additions and 5 deletions

View File

@ -89,7 +89,7 @@ Zaqar is composed of two layers:
:maxdepth: 1 :maxdepth: 1
transport transport
storage storage/autoindex
The **transport drivers** are responsible for interacting with Zaqar clients. The **transport drivers** are responsible for interacting with Zaqar clients.
Every query made by clients is processed by the transport layer, Every query made by clients is processed by the transport layer,

View File

@ -1,6 +1,6 @@
------- ---------------------------------
Storage API reference for storage drivers
------- ---------------------------------
.. currentmodule:: zaqar.queues.storage.base .. currentmodule:: zaqar.queues.storage.base

View File

@ -0,0 +1,12 @@
-------------
Storage Layer
-------------
The **storage drivers** are responsible for interacting with the storage backends
and, that way, store or retrieve the data coming from the transport layer.
.. toctree::
:maxdepth: 1
api
mongodb

View File

@ -0,0 +1,5 @@
--------------
MongoDB Driver
--------------
.. automodule:: zaqar.queues.storage.mongodb

View File

@ -11,7 +11,50 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
"""MongoDB Storage Driver for Zaqar""" r"""
MongoDB Storage Driver for Zaqar.
About the store
---------------
MongoDB is a nosql, eventually consistent, reliable database with support for
horizontal-scaling and capable of handling different levels of throughputs.
Supported Features
------------------
- FIFO
- Unlimited horizontal-scaling [1]_
- Reliability [2]_
.. [1] This is only possible with a sharding environment
.. [2] Write concern must be equal or higher than 2
Supported Deployments
---------------------
MongoDB can be deployed in 3 different ways. The first and most simple one is
to deploy a standalone `mongod` node. The second one is to use a Replica Sets
which gives a master-slave deployment but cannot be scaled unlimitedly. The
third and last one is a sharded cluster.
The second and third methods are the ones recommended for production
environments where durability and scalability are a must-have. The driver
itself forces operators to use such environments by checking whether it is
talking to a replica-set or sharded cluster. Such enforcement can be disabled
by running Zaqar in an unreliable mode.
Replica Sets
------------
When running on a replica-set, Zaqar won't try to be smart and it'll rely as
much as possible on the database and pymongo.
Sharded Cluster
---------------
TBD
"""
from zaqar.queues.storage.mongodb import driver from zaqar.queues.storage.mongodb import driver