| Trees | Indices | Help |
|
|---|
|
|
object --+
|
ioengine.PersistenceEngine --+
|
Sea
This storage works exactly like the Ocean storage but the format of data storage is different. It assumes that each data value is a list/set of fixed length records (true for ls, lv, lo but not memes or links) With this assumption, it does not need pickling and is capable of writing partial records (to speed up commits). During a partial write, in case there is no space, it uses binomial expansion to allocate more space at the end of the file
This scheme is similar to MySQL except that we are storing 'multiple tables' in one file (since each data value is a 'table') Hence, binomial expansion is required for automatic tablespace management.
Multi Version Concurrency Control This is easily done in Ocean. However, there are some complications for Sea. The thread local index must also track the (old) length of each table so that it knows how much data to read. In this way, the reference AND the num_rows of each table is read from the index Hence, the header parsing of the tablespace is only for validity checking (i.e the num_rows is stored redundantly in the tablespace header as well as the index)
| Instance Methods | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
Inherited from Inherited from |
|||
| Class Variables | |
|
Inherited from |
| Properties | |
|
Inherited from |
| Method Details |
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
|
|
|
Read the datafile and create the index file
|
|
|
Return useful statistics on the store.
|
| Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Fri Jun 27 12:35:57 2008 | http://epydoc.sourceforge.net |