Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
137 lines (94 sloc) 4.98 KB

Zope Object Database - ZODB

Sobre este artículo

Autor(es):Leonardo J. Caballero G.
Correo(s):leonardoc@plone.org
Compatible con:Plone 3.x, Plone 4.x
Fecha:21 de Marzo de 2015

La Zope Object Database (ZODB) es una base de datos orientada a objetos para almacenar de forma transparente y persistente objetos en el lenguaje de programación Python. Se incluye como parte de Zope, un Servidor de aplicaciones Web, pero también puede ser utilizado independientemente de Zope.

Características

Las características de la ZODB se incluyen:

  • Transacciones.
  • Historial / deshacer.
  • Almacenamiento conectable de forma transparente.
  • Almacenamiento en caché.
  • Control de concurrencia multiversión (multiversion concurrency control - MVCC).
  • Escalabilidad a través de una red (usando :ref:`ZEO <que_es_zeo>`).

Historia

  • Creado por Jim Fulton de Zope Corporation a finales de los años 90.
  • Inicio como un simple sistema de persistencia de Objetos (Persistent Object System - POS) durante el desarrollo de Principia (el cual posteriormente sería Zope).
  • ZODB 3 fue renombrada cuando un cambio significante de la arquitectura fue publicado.
  • ZODB 4 fue un proyecto de corta duración para volver a poner re-implementar todo el paquete de ZODB 3 usando 100% Python.

ZEO

ZEO (Zope Enterprise Objects), es una implementación de almacenamiento de ZODB que permite varios procesos de clientes a la persistencia de objetos en un único servidor ZEO. Esto permite la escalabilidad transparente, pero el servidor ZEO es todavía un punto único de fallo.

Almacenes de datos basado en conectores

  • FileStorage - Permite que un único proceso de Python para hablar con un archivo en el disco.
  • BlobStorage - Permite a los grandes datos binarios ser gestionado por la ZODB, pero separado de su habitual base de datos FileStorage, es decir :file:`Data.fs`. Esto tiene varias ventajas, la más importante un archivo :file:`Data.fs` mucho más pequeños y un mejor rendimiento tanto en CPU, así como de la memoria.
  • RelStorage - Permite el almacenamiento de respaldo persistencia para ser un RDBMS.
  • :ref:`NetworkStorage <que_es_zeo>` (también conocido como :ref:`ZEO <que_es_zeo>`) - Permite cargar varios procesos de Python y almacenar instancias persistentes al mismo tiempo.
  • DirectoryStorage - Cada dato persistente se almacena como un archivo separado en el sistema de archivos. Al igual que en FSFS en :ref:`Subversion <rcs_subversion>`.
  • DemoStorage - Un fondo en memoria para el almacenamiento persistente. Proporcione un ejemplo de implementación de un almacenamiento completo sin distraer información acerca del almacenamiento, este tipo de almacenamiento es volátil lo cual es útil para dar demostraciones.
  • BDBStorage - que utiliza Berkeley DB back-end. Ahora abandonada.

Tecnologías de conmutación por error

  • Servicios de replicación de Zope (ZRS) Es un producto que elimina el punto único de fallo, proporcionando copia de seguridad en caliente de las escrituras y lecturas de balanceo de carga.
  • ZEORaid, es una solución de código abierto que proporciona un servidor proxy de red que distribuye el almacenamiento de objetos y la recuperación a través de una serie de servidores de red.
  • RelStorage, usa las tecnologías de RDBMS así de esta forma se evitas la necesidad de servidor :ref:`ZEO <que_es_zeo>`.
  • NEO - Distribuido (tolerancia a fallos, equilibrio de carga) la aplicación de almacenamiento. No está listo para su uso en producción todavía (a partir de 01/2011).

Directorios de ZODB

En el directorio :file:`var/filestorage/` se encuentran los siguiente archivos:

You can’t perform that action at this time.