- Zope Object Database
Infobox_Software
name = Zope Object Database
caption =
collapsible = yes
developer = Zope Corporation
status =
latest_release_version =
latest_release_date =
latest_preview_version =
latest_preview_date =
operating_system =Cross-platform
size =
programming_language = Python
genre =Object Database
license =Zope Public License
website = http://www.zope.org/The Zope Object Database (ZODB) is an object-oriented database for transparently and persistently storing Python objects. It is included as part of theZope webapplication server , but can also be used independently of Zope.Features of the ZODB include: transactions, history/undo, transparently pluggable storage, built-in caching, multiversion concurrency control (MVCC), and scalability across a network (using ZEO).
The ZODB is a mature Python datastore that has hundreds of thousands of systems today running on top of it.
History of ZODB
* Created by Jim Fulton of Zope Corporation in the late 90s.
* Started as simple Peristent Object System (POS) during Principia development (which later became Zope)
* The persistence from ZODB leverages ExtensionClass which was the precursor to current Python metaclass implementation
* ZODB 3 was renamed when a significant architecture change was landed.
* ZODB 4 was a short lived project to re-implement the entire ZODB 3 package using 100% Python.
ZEO
ZEO (Zope Enterprise Objects) is a ZODB storage implementation that allows multiple client processes to persist objects to a single ZEO server. This allows transparent scaling, but the ZEO server is still a single point of failure.
Pluggable Storages
* Network Storage (aka ZEO) - Enables multiple python processes load and store persistent instances concurrently.
* File Storage - Enables a single python process to talk to a file on disk.
* relstorage - Enables the persistence backing store to be a RDBMS.
* Directory Storage - Each persistent data is stored as a separate file on the filesystem. Similar to FSFS in Subversion.
* Demo Storage - An in-memory back end for the persistent store.
* BDBStorage - Which uses Berkeley DB back end. Now abandoned.
Failover Technologies
* Zope Replication Services (ZRS) - A commercial add-on that removes the single point of failure, providing hot backup for writes and load-balancing for reads.
* zeoraid - An open source solution that provides a proxy Network Server that distributes object stores and recovery across a series of Network Servers.
* relstorage - since RDBMS technologies are used this obviates need for ZEO server.
ee also
*
Object database External links
* [http://www.python.org/workshops/2000-01/proceedings/papers/fulton/zodb3.html Introduction to the Zope Object Database]
* [http://wiki.zope.org/zope2/ZODB ZODB page on wiki.zope.org]
* [http://wiki.zope.org/ZODB/guide/index.html ZODB/ZEO Programming Guide]
* [http://www.zope.org/Members/adytumsolutions/HowToLoveZODB_PartII/HowToLoveZODB_PartI How To Love ZODB and Forget RDBMS]
* [http://www.zope.com/products/zope_replication_services.html Zope Replication Services (ZRS)]
* [http://dirstorage.sourceforge.net/ DirectoryStorage, a high-reliability storage for ZODB]
* [http://svn.zope.org/relstorage/trunk/ RelStrage, a storage to RDBs: MySQL, PostGreDQL, Oracle]
* [http://svn.zope.org/zc.demostorage2/trunk DemoStorage2, a revision of DemoStorage which ships with ZODB]
* [http://svn.zope.org/gocept.zeoraid/trunk/ ZEORaid]
Wikimedia Foundation. 2010.