ZODB - a native object database for Python

Plone中使用ZODB做为存储的解决方案,下面是来自其官方网站和维基的介绍。学习


---------------------------------------------From ZODB Homesite-------------------------------------------

Python programs are written with the object-oriented paradigm. You use objects that reference each other freely and can be of any form and shape: no object has to adhere to a specific schema and can hold arbitrary information.

Storing those objects in relational databases requires you to give up on the freedom of reference and schema. The constraints of the relational model reduces your ability to write object-oriented code.

The ZODB is a native object database, that stores your objects while allowing you to work with any paradigms that can be expressed in Python. Thereby your code becomes simpler, more robust and easier to understand.

Also, there is no gap between the database and your program: no glue code to write, no mappings to configure. Have a look at the tutorial to see, how easy it is.

Some of the features that ZODB brings to you:

  • Transparent persistence for Python objects
  • Full ACID-compatible transaction support (including savepoints)
  • History/undo ability
  • Efficient support for binary large objects (BLOBs)
  • Pluggable storages
  • Scalable architecture

---------------------------------------------From Wikipidea-------------------------------------------

The Zope Object Database (ZODB) is an object-oriented database for transparently and persistently storing Pythonobjects. It is included as part of the Zope web application 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.[citation needed]

Contents

  [hide]

[edit]History

  • Created by Jim Fulton of Zope Corporation in the late 90s.
  • Started as simple Persistent 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.

[edit]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.

[edit]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.
  • NEO - Distributed (fault tolerance, load-balancing) storage implementation. Not ready for production use yet (as of 01/2011).
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值