Table of Contents

Module: MappingStorage Zope-2.2.1-src/lib/python/ZODB/MappingStorage.py

Very Simple Mapping ZODB storage

The Mapping storage provides an extremely simple storage implementation that doesn't provide undo or version support.

It is meant to illustrate the simplest possible storage.

The Mapping storage uses a single data structure to map object ids to data.

The Demo storage serves two purposes:

  • Provide an example implementation of a full storage without distracting storage details,

  • Provide a volatile storage that is useful for giving demonstrations.

The demo strorage can have a "base" storage that is used in a read-only fashion. The base storage must not not to contain version data.

There are three main data structures:

_data

Transaction logging information necessary for undo

This is a mapping from transaction id to transaction, where a transaction is simply a 4-tuple:

packed, user, description, extension_data, records

where extension_data is a dictionary or None and records are the actual records in chronological order. Packed is a flag indicating whethe the transaction has been packed or not

_index

A mapping from oid to record

_vindex

A mapping from version name to version data

where version data is a mapping from oid to record

A record is a tuple:

oid, serial, pre, vdata, p,

where:

oid

object id

serial

object serial number

pre

The previous record for this object (or None)

vdata

version data

None if not a version, ortherwise: version, non-version-record

p

the pickle data or None

The pickle data will be None for a record for an object created in an aborted version.

It is instructive to watch what happens to the internal data structures as changes are made. Foe example, in Zope, you can create an external method:

  import Zope

  def info(RESPONSE):
      RESPONSE['Content-type']= 'text/plain'

      return Zope.DB._storage._splat()

and call it to minotor the storage.

Imported modules   
import BaseStorage
import POSException
from TimeStamp import TimeStamp
import string
import utils
Classes   
MappingStorage

Table of Contents

This document was automatically generated on Mon Sep 4 07:33:06 2000 by HappyDoc version r0_6