Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
neoppod
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Levin Zimmermann
neoppod
Commits
b04cd609
Commit
b04cd609
authored
Jul 24, 2017
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
517db5de
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
1397 additions
and
63 deletions
+1397
-63
go/zodb/storage/fs1/filestorage.go
go/zodb/storage/fs1/filestorage.go
+113
-63
go/zodb/storage/fs1/fs1tools/dump_test.go
go/zodb/storage/fs1/fs1tools/dump_test.go
+23
-0
go/zodb/storage/fs1/fs1tools/testdata/1.fsdump.ok
go/zodb/storage/fs1/fs1tools/testdata/1.fsdump.ok
+186
-0
go/zodb/storage/fs1/fs1tools/testdata/1.fsdumpv.ok
go/zodb/storage/fs1/fs1tools/testdata/1.fsdumpv.ok
+1074
-0
go/zodb/zodb.go
go/zodb/zodb.go
+1
-0
No files found.
go/zodb/storage/fs1/filestorage.go
View file @
b04cd609
...
@@ -892,8 +892,74 @@ func (fs *FileStorage) Load(xid zodb.Xid) (data []byte, tid zodb.Tid, err error)
...
@@ -892,8 +892,74 @@ func (fs *FileStorage) Load(xid zodb.Xid) (data []byte, tid zodb.Tid, err error)
return
data
,
tid
,
nil
return
data
,
tid
,
nil
}
}
// --- raw iteration ---
// zodb.IStorage iteration
// TxnIter is iterator over transaction records
type
TxnIter
struct
{
fsSeq
*
xbufio
.
SeqReaderAt
Txnh
TxnHeader
// current transaction record information
Flags
iterFlags
// XXX iterate forward (> 0) / backward (< 0) / EOF reached (== 0)
}
// DataIter is iterator over data records inside one transaction
type
DataIter
struct
{
fsSeq
*
xbufio
.
SeqReaderAt
Txnh
*
TxnHeader
// header of transaction we are iterating inside
Datah
DataHeader
// current data record information
}
// Iter is combined 2-level iterator over transaction and data records
type
Iter
struct
{
TxnIter
DataIter
}
// NextTxn iterates to next/previous transaction record according to iteration direction
func
(
ti
*
TxnIter
)
NextTxn
(
flags
TxnLoadFlags
)
error
{
var
err
error
if
ti
.
Flags
&
iterDir
!=
0
{
err
=
ti
.
Txnh
.
LoadNext
(
ti
.
fsSeq
,
flags
)
}
else
{
err
=
ti
.
Txnh
.
LoadPrev
(
ti
.
fsSeq
,
flags
)
}
//fmt.Println("loaded:", ti.Txnh.Tid)
return
err
}
// NextData iterates to next data record header
func
(
di
*
DataIter
)
NextData
()
error
{
return
di
.
Datah
.
LoadNext
(
di
.
fsSeq
,
di
.
Txnh
)
}
// NextTxn iterates to next transaction record and resets data iterator to iterate inside it
func
(
iter
*
Iter
)
NextTxn
()
error
{
err
:=
iter
.
TxnIter
.
NextTxn
()
if
err
!=
nil
{
return
err
}
// set .DataIter to iterate over .TxnIter.Txnh
iter
.
DataIter
.
Datah
.
Pos
=
fsi
.
txnIter
.
Txnh
.
DataPos
()
iter
.
DataIter
.
Datah
.
DataLen
=
-
DataHeaderSize
// first iteration will go to first data record
}
// IterateRaw ... XXX
func
(
fs
*
FileStorage
)
IterateRaw
(
dir
/*XXX fwd/back*/
)
*
Iter
{
// when iterating use IO optimized for sequential access
fsSeq
:=
xbufio
.
NewSeqReaderAt
(
fs
.
file
)
// XXX setup .TxnIter.dir and start
iter
.
TxnIter
.
fsSeq
=
fsSeq
iter
.
DataIter
.
fsSeq
=
fsSeq
iter
.
DataIter
.
Txnh
=
&
iter
.
txnIter
.
Txnh
return
iter
}
// --- zodb.IStorage iteration ---
type
iterFlags
int
type
iterFlags
int
const
(
const
(
...
@@ -902,61 +968,41 @@ const (
...
@@ -902,61 +968,41 @@ const (
iterPreloaded
// data for this iteration was already preloaded
iterPreloaded
// data for this iteration was already preloaded
)
)
//
txnIter is iterator over transaction records
//
zIter is transaction/data-records iterator as specified by zodb.IStorage
type
txn
Iter
struct
{
type
z
Iter
struct
{
fsSeq
*
xbufio
.
SeqReaderAt
iter
Iter
Txnh
TxnHeader
// current transaction information
TidStop
zodb
.
Tid
// iterate up to tid <= tidStop | tid >= tidStop depending on .dir
TidStop
zodb
.
Tid
// iterate up to tid <= tidStop | tid >= tidStop depending on .dir
Flags
iterFlags
// iterate forward (> 0) / backward (< 0) / EOF reached (== 0)
Flags
iterFlags
}
// dataIter is iterator over data records inside one transaction
type
dataIter
struct
{
fsSeq
*
xbufio
.
SeqReaderAt
Txnh
*
TxnHeader
// header of transaction we are iterating inside
Datah
DataHeader
// data header for data loading
// data header for data loading
// XXX need to use separate dh because x.LoadData() changes x state while going through backpointers.
// ( NOTE: need to use separate dh because x.LoadData() changes x state
// XXX here to avoid allocations
// while going through backpointers.
//
// here to avoid allocations )
dhLoading
DataHeader
dhLoading
DataHeader
sri
zodb
.
StorageRecordInformation
// ptr to this will be returned by NextData
sri
zodb
.
StorageRecordInformation
// ptr to this will be returned by NextData
dataBuf
[]
byte
dataBuf
[]
byte
}
}
// iterator is transaction/data-records iterator as specified by zodb.IStorage
// NextTxn iterates to next/previous transaction record according to iteration direction
type
iterator
struct
{
func
(
zi
*
zIter
)
NextTxn
()
(
*
zodb
.
TxnInfo
,
zodb
.
IStorageRecordIterator
,
error
)
{
txnIter
txnIter
dataIter
dataIter
}
func
(
ti
*
txnIter
)
NextTxn
(
flags
TxnLoadFlags
)
error
{
switch
{
switch
{
case
ti
.
Flags
&
iterEOF
!=
0
:
case
ti
.
Flags
&
iterEOF
!=
0
:
//println("already eof")
//println("already eof")
return
io
.
EOF
return
io
.
EOF
// XXX needed?
case
ti
.
Flags
&
iterPreloaded
!=
0
:
case
ti
.
Flags
&
iterPreloaded
!=
0
:
// first element is already there - preloaded by who initialized
t
xnIter
// first element is already there - preloaded by who initialized
T
xnIter
ti
.
Flags
&=
^
iterPreloaded
ti
.
Flags
&=
^
iterPreloaded
//fmt.Println("preloaded:", ti.Txnh.Tid)
//fmt.Println("preloaded:", ti.Txnh.Tid)
default
:
default
:
var
err
error
err
:=
zi
.
iter
.
NextTxn
(
LoadAll
)
if
ti
.
Flags
&
iterDir
!=
0
{
err
=
ti
.
Txnh
.
LoadNext
(
ti
.
fsSeq
,
flags
)
}
else
{
err
=
ti
.
Txnh
.
LoadPrev
(
ti
.
fsSeq
,
flags
)
}
// XXX EOF ^^^ is not expected (range pre-cut to valid tids) ?
// XXX EOF ^^^ is not expected (range pre-cut to valid tids) ?
//fmt.Println("loaded:", ti.Txnh.Tid)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -970,48 +1016,51 @@ func (ti *txnIter) NextTxn(flags TxnLoadFlags) error {
...
@@ -970,48 +1016,51 @@ func (ti *txnIter) NextTxn(flags TxnLoadFlags) error {
return
io
.
EOF
return
io
.
EOF
}
}
return
nil
return
&
zi
.
iter
.
Txnh
.
TxnInfo
,
zi
,
nil
}
}
func
(
di
*
dataIter
)
NextData
()
(
*
zodb
.
StorageRecordInformation
,
error
)
{
// NextData iterates to next data record and loads data content
err
:=
di
.
Datah
.
LoadNext
(
di
.
fsSeq
,
di
.
Txnh
)
func
(
zi
*
zIter
)
NextData
()
(
*
zodb
.
StorageRecordInformation
,
error
)
{
err
:=
zi
.
iter
.
NextData
()
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
// XXX recheck
return
nil
,
err
// XXX recheck
}
}
di
.
sri
.
Oid
=
di
.
Datah
.
Oid
zi
.
sri
.
Oid
=
zi
.
iter
.
Datah
.
Oid
di
.
sri
.
Tid
=
di
.
Datah
.
Tid
zi
.
sri
.
Tid
=
zi
.
iter
.
Datah
.
Tid
// NOTE dh.LoadData() changes dh state while going through backpointers -
// NOTE dh.LoadData() changes dh state while going through backpointers -
// - need to use separate dh because of this
// - need to use separate dh because of this
di
.
dhLoading
=
di
.
Datah
zi
.
dhLoading
=
zi
.
iter
.
Datah
di
.
sri
.
Data
=
d
i
.
dataBuf
zi
.
sri
.
Data
=
z
i
.
dataBuf
err
=
di
.
dhLoading
.
LoadData
(
di
.
fsSeq
,
&
d
i
.
sri
.
Data
)
err
=
zi
.
dhLoading
.
LoadData
(
zi
.
iter
.
DataIter
.
fsSeq
,
&
z
i
.
sri
.
Data
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
// XXX recheck
return
nil
,
err
// XXX recheck
}
}
// if memory was reallocated - use it next time
// if memory was reallocated - use it next time
if
cap
(
di
.
sri
.
Data
)
>
cap
(
d
i
.
dataBuf
)
{
if
cap
(
zi
.
sri
.
Data
)
>
cap
(
z
i
.
dataBuf
)
{
di
.
dataBuf
=
d
i
.
sri
.
Data
zi
.
dataBuf
=
z
i
.
sri
.
Data
}
}
di
.
sri
.
DataTid
=
d
i
.
dhLoading
.
Tid
zi
.
sri
.
DataTid
=
z
i
.
dhLoading
.
Tid
return
&
d
i
.
sri
,
nil
return
&
z
i
.
sri
,
nil
}
}
func
(
fsi
*
iterator
)
NextTxn
()
(
*
zodb
.
TxnInfo
,
zodb
.
IStorageRecordIterator
,
error
)
{
err
:=
fsi
.
txnIter
.
NextTxn
(
LoadAll
)
if
err
!=
nil
{
return
nil
,
nil
,
err
// XXX recheck
}
// set .dataIter to iterate over .txnIter.Txnh
fsi
.
dataIter
.
Datah
.
Pos
=
fsi
.
txnIter
.
Txnh
.
DataPos
()
fsi
.
dataIter
.
Datah
.
DataLen
=
-
DataHeaderSize
// first iteration will go to first data record
return
&
fsi
.
txnIter
.
Txnh
.
TxnInfo
,
&
fsi
.
dataIter
,
nil
// iterStartError is the iterator created when there are preparatory errors
// this way we offload clients, besides handling NextTxn errors, from also
// handling error cases from Iterate.
//
// XXX bad idea? (e.g. it will prevent from devirtualizing what Iterate returns)
type
iterStartError
struct
{
err
error
}
func
(
e
*
iterStartError
)
NextTxn
(
*
zodb
.
TxnInfo
,
zodb
.
IStorageIterator
,
error
)
{
return
nil
,
nil
,
e
.
err
}
}
func
(
fs
*
FileStorage
)
Iterate
(
tidMin
,
tidMax
zodb
.
Tid
)
zodb
.
IStorageIterator
{
func
(
fs
*
FileStorage
)
Iterate
(
tidMin
,
tidMax
zodb
.
Tid
)
zodb
.
IStorageIterator
{
...
@@ -1024,14 +1073,15 @@ func (fs *FileStorage) Iterate(tidMin, tidMax zodb.Tid) zodb.IStorageIterator {
...
@@ -1024,14 +1073,15 @@ func (fs *FileStorage) Iterate(tidMin, tidMax zodb.Tid) zodb.IStorageIterator {
tidMax
=
fs
.
txnhMax
.
Tid
tidMax
=
fs
.
txnhMax
.
Tid
}
}
// XXX naming
// XXX naming
-> ziter?
Iter
:=
iterator
{
}
ziter
:=
&
zIter
{
iter
}
// when iterating use IO optimized for sequential access
// when iterating use IO optimized for sequential access
// XXX -> IterateRaw
fsSeq
:=
xbufio
.
NewSeqReaderAt
(
fs
.
file
)
fsSeq
:=
xbufio
.
NewSeqReaderAt
(
fs
.
file
)
I
ter
.
txnIter
.
fsSeq
=
fsSeq
i
ter
.
txnIter
.
fsSeq
=
fsSeq
I
ter
.
dataIter
.
fsSeq
=
fsSeq
i
ter
.
dataIter
.
fsSeq
=
fsSeq
Iter
.
dataIter
.
Txnh
=
&
I
ter
.
txnIter
.
Txnh
iter
.
dataIter
.
Txnh
=
&
i
ter
.
txnIter
.
Txnh
if
tidMin
>
tidMax
{
if
tidMin
>
tidMax
{
Iter
.
txnIter
.
Flags
|=
iterEOF
// empty
Iter
.
txnIter
.
Flags
|=
iterEOF
// empty
...
@@ -1065,7 +1115,7 @@ func (fs *FileStorage) Iterate(tidMin, tidMax zodb.Tid) zodb.IStorageIterator {
...
@@ -1065,7 +1115,7 @@ func (fs *FileStorage) Iterate(tidMin, tidMax zodb.Tid) zodb.IStorageIterator {
}
}
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
err
)
// XXX
return
&
iterStartError
{
err
}
// XXX err ctx
}
}
//fmt.Printf("tidRange: %v..%v -> found %v @%v\n", tidMin, tidMax, iter.Txnh.Tid, iter.Txnh.Pos)
//fmt.Printf("tidRange: %v..%v -> found %v @%v\n", tidMin, tidMax, iter.Txnh.Tid, iter.Txnh.Pos)
...
@@ -1075,9 +1125,9 @@ func (fs *FileStorage) Iterate(tidMin, tidMax zodb.Tid) zodb.IStorageIterator {
...
@@ -1075,9 +1125,9 @@ func (fs *FileStorage) Iterate(tidMin, tidMax zodb.Tid) zodb.IStorageIterator {
iter
.
Flags
&=
^
iterEOF
iter
.
Flags
&=
^
iterEOF
if
iter
.
Flags
&
iterDir
!=
0
{
if
iter
.
Flags
&
iterDir
!=
0
{
// when ^^^ we were searching forward first txn was already found
// when ^^^ we were searching forward first txn was already found
err
=
iter
.
Txnh
.
loadStrings
(
fs
.
file
)
// XXX ok? XXX -> move NextTxn() ?
err
=
iter
.
Txnh
.
loadStrings
(
fs
Seq
)
// XXX ok? XXX -> move NextTxn() ?
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
err
)
// XXX
return
&
iterStartError
{
err
}
}
}
iter
.
Flags
|=
iterPreloaded
iter
.
Flags
|=
iterPreloaded
}
}
...
...
go/zodb/storage/fs1/fs1tools/dump_test.go
0 → 100644
View file @
b04cd609
// Copyright (C) 2017 Nexedi SA and Contributors.
// Kirill Smelkov <kirr@nexedi.com>
//
// This program is free software: you can Use, Study, Modify and Redistribute
// it under the terms of the GNU General Public License version 3, or (at your
// option) any later version, as published by the Free Software Foundation.
//
// You can also Link and Combine this program with other software covered by
// the terms of any of the Free Software licenses or any of the Open Source
// Initiative approved licenses and Convey the resulting work. Corresponding
// source of such a combination shall include the source code for all other
// software used.
//
// This program is distributed WITHOUT ANY WARRANTY; without even the implied
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//
// See COPYING file for full licensing terms.
// See https://www.nexedi.com/licensing for rationale and options.
package
fs1tools
//go:generate sh -c "python2 -c 'from ZODB.FileStorage import fsdump; fsdump.main()' ../testdata/1.fs >testdata/1.fsdump.ok"
//go:generate sh -c "python2 -c 'from ZODB.FileStorage.fsdump import Dumper; import sys; d = Dumper(sys.argv[1]); d.dump()' ../testdata/1.fs >testdata/1.fsdumpv.ok"
go/zodb/storage/fs1/fs1tools/testdata/1.fsdump.ok
0 → 100644
View file @
b04cd609
Trans #00000 tid=0285cbac258bf266 time=1979-01-03 21:00:08.800000 offset=52
status=' ' user='' description='initial database creation'
data #00000 oid=0000000000000000 size=57 class=persistent.mapping.PersistentMapping
Trans #00001 tid=0285cbac3d0369e6 time=1979-01-03 21:00:14.300000 offset=250
status=' ' user='user0.0' description='step 0.0'
data #00000 oid=0000000000000000 size=95 class=persistent.mapping.PersistentMapping
data #00001 oid=0000000000000001 size=29 class=__main__.Object
Trans #00002 tid=0285cbac41b4e833 time=1979-01-03 21:00:15.400000 offset=557
status=' ' user='user0.1' description='step 0.1'
data #00000 oid=0000000000000000 size=116 class=persistent.mapping.PersistentMapping
data #00001 oid=0000000000000002 size=29 class=__main__.Object
Trans #00003 tid=0285cbac46666680 time=1979-01-03 21:00:16.500000 offset=885
status=' ' user='user0.2' description='step 0.2'
data #00000 oid=0000000000000000 size=136 class=persistent.mapping.PersistentMapping
data #00001 oid=0000000000000003 size=29 class=__main__.Object
Trans #00004 tid=0285cbac4b17e4cc time=1979-01-03 21:00:17.600000 offset=1233
status=' ' user='user0.3' description='step 0.3'
data #00000 oid=0000000000000002 size=29 class=__main__.Object
Trans #00005 tid=0285cbac4fc96319 time=1979-01-03 21:00:18.700000 offset=1403
status=' ' user='user0.4' description='step 0.4'
data #00000 oid=0000000000000000 size=156 class=persistent.mapping.PersistentMapping
data #00001 oid=0000000000000004 size=29 class=__main__.Object
Trans #00006 tid=0285cbac547ae166 time=1979-01-03 21:00:19.800000 offset=1771
status=' ' user='user0.5' description='step 0.5'
data #00000 oid=0000000000000000 size=176 class=persistent.mapping.PersistentMapping
data #00001 oid=0000000000000005 size=29 class=__main__.Object
Trans #00007 tid=0285cbac592c5fb3 time=1979-01-03 21:00:20.900000 offset=2159
status=' ' user='user0.6' description='step 0.6'
data #00000 oid=0000000000000004 size=29 class=__main__.Object
Trans #00008 tid=0285cbac5dddde00 time=1979-01-03 21:00:22.000000 offset=2329
status=' ' user='user0.7' description='step 0.7'
data #00000 oid=0000000000000005 size=29 class=__main__.Object
Trans #00009 tid=0285cbac628f5c4c time=1979-01-03 21:00:23.100000 offset=2499
status=' ' user='user0.8' description='step 0.8'
data #00000 oid=0000000000000000 size=196 class=persistent.mapping.PersistentMapping
data #00001 oid=0000000000000006 size=29 class=__main__.Object
Trans #00010 tid=0285cbac6740da99 time=1979-01-03 21:00:24.200001 offset=2907
status=' ' user='user0.9' description='step 0.9'
data #00000 oid=0000000000000006 size=29 class=__main__.Object
Trans #00011 tid=0285cbac6bf258e6 time=1979-01-03 21:00:25.300001 offset=3079
status=' ' user='user0.10' description='step 0.10'
data #00000 oid=0000000000000003 size=30 class=__main__.Object
Trans #00012 tid=0285cbac70a3d733 time=1979-01-03 21:00:26.400001 offset=3252
status=' ' user='user0.11' description='step 0.11'
data #00000 oid=0000000000000003 size=30 class=__main__.Object
Trans #00013 tid=0285cbac75555580 time=1979-01-03 21:00:27.500001 offset=3425
status=' ' user='user0.12' description='step 0.12'
data #00000 oid=0000000000000001 size=30 class=__main__.Object
Trans #00014 tid=0285cbac7a06d3cc time=1979-01-03 21:00:28.600001 offset=3598
status=' ' user='user0.13' description='step 0.13'
data #00000 oid=0000000000000005 size=30 class=__main__.Object
Trans #00015 tid=0285cbac7eb85219 time=1979-01-03 21:00:29.700001 offset=3771
status=' ' user='user0.14' description='step 0.14'
data #00000 oid=0000000000000005 size=30 class=__main__.Object
Trans #00016 tid=0285cbac8369d066 time=1979-01-03 21:00:30.800001 offset=3944
status=' ' user='user0.15' description='step 0.15'
data #00000 oid=0000000000000006 size=30 class=__main__.Object
Trans #00017 tid=0285cbac881b4eb3 time=1979-01-03 21:00:31.900001 offset=4117
status=' ' user='user0.16' description='step 0.16'
data #00000 oid=0000000000000005 size=30 class=__main__.Object
Trans #00018 tid=0285cbac8ccccd00 time=1979-01-03 21:00:33.000001 offset=4290
status=' ' user='user0.17' description='step 0.17'
data #00000 oid=0000000000000004 size=30 class=__main__.Object
Trans #00019 tid=0285cbac917e4b4c time=1979-01-03 21:00:34.100001 offset=4463
status=' ' user='user0.18' description='step 0.18'
data #00000 oid=0000000000000004 size=30 class=__main__.Object
Trans #00020 tid=0285cbac962fc999 time=1979-01-03 21:00:35.200001 offset=4636
status=' ' user='user0.19' description='step 0.19'
data #00000 oid=0000000000000005 size=30 class=__main__.Object
Trans #00021 tid=0285cbac9ae147e6 time=1979-01-03 21:00:36.300001 offset=4809
status=' ' user='user0.20' description='step 0.20'
data #00000 oid=0000000000000002 size=30 class=__main__.Object
Trans #00022 tid=0285cbac9f92c633 time=1979-01-03 21:00:37.400001 offset=4982
status=' ' user='user0.21' description='step 0.21'
data #00000 oid=0000000000000002 size=30 class=__main__.Object
Trans #00023 tid=0285cbaca4444480 time=1979-01-03 21:00:38.500001 offset=5155
status=' ' user='user0.22' description='step 0.22'
data #00000 oid=0000000000000000 size=216 class=persistent.mapping.PersistentMapping
data #00001 oid=0000000000000007 size=30 class=__main__.Object
Trans #00024 tid=0285cbaca8f5c2cc time=1979-01-03 21:00:39.600001 offset=5586
status=' ' user='user0.23' description='step 0.23'
data #00000 oid=0000000000000007 size=30 class=__main__.Object
Trans #00025 tid=0285cbacada74119 time=1979-01-03 21:00:40.700001 offset=5759
status=' ' user='user0.24' description='step 0.24'
data #00000 oid=0000000000000003 size=30 class=__main__.Object
Trans #00026 tid=0285cbacb258bf66 time=1979-01-03 21:00:41.800001 offset=5995
status=' ' user='root0.0\nYour\nMagesty ' description='undo 0.0\nmore detailed description\n\nzzz ...'
data #00000 oid=0000000000000007 size=30 class=__main__.Object bp=0285cbaca4444480
Trans #00027 tid=0285cbacb70a3db3 time=1979-01-03 21:00:42.900001 offset=6210
status=' ' user='root0.1\nYour\nMagesty ' description='undo 0.1\nmore detailed description\n\nzzz ...\t'
data #00000 oid=0000000000000003 size=30 class=__main__.Object bp=0285cbac70a3d733
Trans #00028 tid=0285cbacbbbbbc00 time=1979-01-03 21:00:44.000001 offset=6302
status=' ' user='' description='predelete 7'
data #00000 oid=0000000000000000 size=216 class=persistent.mapping.PersistentMapping
data #00001 oid=0000000000000008 size=28 class=__main__.Object
Trans #00029 tid=0285cbacc06d3a4c time=1979-01-03 21:00:45.100001 offset=6826
status=' ' user="root0\nYour\nRoyal\nMagesty' \x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" description='delete 0\nalpha beta gamma\'delta"lambda\n\nqqq ...'
data #00000 oid=0000000000000007 class=undo or abort of object creation
Trans #00030 tid=0285cbacfd70a433 time=1979-01-03 21:00:59.400001 offset=6975
status=' ' user='user1.0' description='step 1.0'
data #00000 oid=0000000000000008 size=29 class=__main__.Object
Trans #00031 tid=0285cbad02222280 time=1979-01-03 21:01:00.500001 offset=7145
status=' ' user='user1.1' description='step 1.1'
data #00000 oid=0000000000000006 size=29 class=__main__.Object
Trans #00032 tid=0285cbad06d3a0cc time=1979-01-03 21:01:01.600001 offset=7315
status=' ' user='user1.2' description='step 1.2'
data #00000 oid=0000000000000004 size=29 class=__main__.Object
Trans #00033 tid=0285cbad0b851f19 time=1979-01-03 21:01:02.700001 offset=7485
status=' ' user='user1.3' description='step 1.3'
data #00000 oid=0000000000000003 size=29 class=__main__.Object
Trans #00034 tid=0285cbad10369d66 time=1979-01-03 21:01:03.800001 offset=7655
status=' ' user='user1.4' description='step 1.4'
data #00000 oid=0000000000000003 size=29 class=__main__.Object
Trans #00035 tid=0285cbad14e81bb3 time=1979-01-03 21:01:04.900001 offset=7825
status=' ' user='user1.5' description='step 1.5'
data #00000 oid=0000000000000008 size=29 class=__main__.Object
Trans #00036 tid=0285cbad19999a00 time=1979-01-03 21:01:06.000001 offset=7995
status=' ' user='user1.6' description='step 1.6'
data #00000 oid=0000000000000001 size=29 class=__main__.Object
Trans #00037 tid=0285cbad1e4b184c time=1979-01-03 21:01:07.100001 offset=8165
status=' ' user='user1.7' description='step 1.7'
data #00000 oid=0000000000000002 size=29 class=__main__.Object
Trans #00038 tid=0285cbad22fc9699 time=1979-01-03 21:01:08.200001 offset=8335
status=' ' user='user1.8' description='step 1.8'
data #00000 oid=0000000000000008 size=29 class=__main__.Object
Trans #00039 tid=0285cbad27ae14e6 time=1979-01-03 21:01:09.300001 offset=8505
status=' ' user='user1.9' description='step 1.9'
data #00000 oid=0000000000000008 size=29 class=__main__.Object
Trans #00040 tid=0285cbad2c5f9333 time=1979-01-03 21:01:10.400002 offset=8677
status=' ' user='user1.10' description='step 1.10'
data #00000 oid=0000000000000006 size=30 class=__main__.Object
Trans #00041 tid=0285cbad31111180 time=1979-01-03 21:01:11.500002 offset=8850
status=' ' user='user1.11' description='step 1.11'
data #00000 oid=0000000000000005 size=30 class=__main__.Object
Trans #00042 tid=0285cbad35c28fcc time=1979-01-03 21:01:12.600002 offset=9023
status=' ' user='user1.12' description='step 1.12'
data #00000 oid=0000000000000008 size=30 class=__main__.Object
Trans #00043 tid=0285cbad3a740e19 time=1979-01-03 21:01:13.700002 offset=9196
status=' ' user='user1.13' description='step 1.13'
data #00000 oid=0000000000000006 size=30 class=__main__.Object
Trans #00044 tid=0285cbad3f258c66 time=1979-01-03 21:01:14.800002 offset=9369
status=' ' user='user1.14' description='step 1.14'
data #00000 oid=0000000000000003 size=30 class=__main__.Object
Trans #00045 tid=0285cbad43d70ab3 time=1979-01-03 21:01:15.900002 offset=9542
status=' ' user='user1.15' description='step 1.15'
data #00000 oid=0000000000000003 size=30 class=__main__.Object
Trans #00046 tid=0285cbad48888900 time=1979-01-03 21:01:17.000002 offset=9715
status=' ' user='user1.16' description='step 1.16'
data #00000 oid=0000000000000002 size=30 class=__main__.Object
Trans #00047 tid=0285cbad4d3a074c time=1979-01-03 21:01:18.100002 offset=9888
status=' ' user='user1.17' description='step 1.17'
data #00000 oid=0000000000000003 size=30 class=__main__.Object
Trans #00048 tid=0285cbad51eb8599 time=1979-01-03 21:01:19.200002 offset=10061
status=' ' user='user1.18' description='step 1.18'
data #00000 oid=0000000000000001 size=30 class=__main__.Object
Trans #00049 tid=0285cbad569d03e6 time=1979-01-03 21:01:20.300002 offset=10234
status=' ' user='user1.19' description='step 1.19'
data #00000 oid=0000000000000005 size=30 class=__main__.Object
Trans #00050 tid=0285cbad5b4e8233 time=1979-01-03 21:01:21.400002 offset=10407
status=' ' user='user1.20' description='step 1.20'
data #00000 oid=0000000000000003 size=30 class=__main__.Object
Trans #00051 tid=0285cbad60000080 time=1979-01-03 21:01:22.500002 offset=10580
status=' ' user='user1.21' description='step 1.21'
data #00000 oid=0000000000000003 size=30 class=__main__.Object
Trans #00052 tid=0285cbad64b17ecc time=1979-01-03 21:01:23.600002 offset=10753
status=' ' user='user1.22' description='step 1.22'
data #00000 oid=0000000000000006 size=30 class=__main__.Object
Trans #00053 tid=0285cbad6962fd19 time=1979-01-03 21:01:24.700002 offset=10926
status=' ' user='user1.23' description='step 1.23'
data #00000 oid=0000000000000005 size=30 class=__main__.Object
Trans #00054 tid=0285cbad6e147b66 time=1979-01-03 21:01:25.800002 offset=11099
status=' ' user='user1.24' description='step 1.24'
data #00000 oid=0000000000000005 size=30 class=__main__.Object
Trans #00055 tid=0285cbad77777800 time=1979-01-03 21:01:28.000002 offset=11336
status=' ' user='root1.0\nYour\nMagesty ' description='undo 1.0\nmore detailed description\n\nzzz ...\t'
data #00000 oid=0000000000000006 size=30 class=__main__.Object bp=0285cbad3a740e19
Trans #00056 tid=0285cbad7c28f64c time=1979-01-03 21:01:29.100002 offset=11552
status=' ' user='root1.1\nYour\nMagesty ' description='undo 1.1\nmore detailed description\n\nzzz ...\t\t'
data #00000 oid=0000000000000005 size=30 class=__main__.Object bp=0285cbad6962fd19
Trans #00057 tid=0285cbad80da7499 time=1979-01-03 21:01:30.200002 offset=11644
status=' ' user='' description='predelete 6'
data #00000 oid=0000000000000000 size=216 class=persistent.mapping.PersistentMapping
data #00001 oid=0000000000000009 size=28 class=__main__.Object
Trans #00058 tid=0285cbad858bf2e6 time=1979-01-03 21:01:31.300002 offset=12168
status=' ' user="root1\nYour\nRoyal\nMagesty' \x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" description='delete 1\nalpha beta gamma\'delta"lambda\n\nqqq ...'
data #00000 oid=0000000000000006 class=undo or abort of object creation
go/zodb/storage/fs1/fs1tools/testdata/1.fsdumpv.ok
0 → 100644
View file @
b04cd609
************************************************************
file identifier: 'FS21'
============================================================
offset: 4
end pos: 151
transaction id: 0285cbac258bf266
trec len: 147
status: ' '
user: ''
description: 'initial database creation'
len(extra): 0
------------------------------------------------------------
offset: 52
oid: 0000000000000000
revid: 0285cbac258bf266
previous record offset: 0
transaction offset: 4
len(data): 57
redundant trec len: 147
============================================================
offset: 159
end pos: 458
transaction id: 0285cbac3d0369e6
trec len: 299
status: ' '
user: 'user0.0'
description: 'step 0.0'
len(extra): 53
------------------------------------------------------------
offset: 250
oid: 0000000000000000
revid: 0285cbac3d0369e6
previous record offset: 52
transaction offset: 159
len(data): 95
------------------------------------------------------------
offset: 387
oid: 0000000000000001
revid: 0285cbac3d0369e6
previous record offset: 0
transaction offset: 159
len(data): 29
redundant trec len: 299
============================================================
offset: 466
end pos: 786
transaction id: 0285cbac41b4e833
trec len: 320
status: ' '
user: 'user0.1'
description: 'step 0.1'
len(extra): 53
------------------------------------------------------------
offset: 557
oid: 0000000000000000
revid: 0285cbac41b4e833
previous record offset: 250
transaction offset: 466
len(data): 116
------------------------------------------------------------
offset: 715
oid: 0000000000000002
revid: 0285cbac41b4e833
previous record offset: 0
transaction offset: 466
len(data): 29
redundant trec len: 320
============================================================
offset: 794
end pos: 1134
transaction id: 0285cbac46666680
trec len: 340
status: ' '
user: 'user0.2'
description: 'step 0.2'
len(extra): 53
------------------------------------------------------------
offset: 885
oid: 0000000000000000
revid: 0285cbac46666680
previous record offset: 557
transaction offset: 794
len(data): 136
------------------------------------------------------------
offset: 1063
oid: 0000000000000003
revid: 0285cbac46666680
previous record offset: 0
transaction offset: 794
len(data): 29
redundant trec len: 340
============================================================
offset: 1142
end pos: 1304
transaction id: 0285cbac4b17e4cc
trec len: 162
status: ' '
user: 'user0.3'
description: 'step 0.3'
len(extra): 53
------------------------------------------------------------
offset: 1233
oid: 0000000000000002
revid: 0285cbac4b17e4cc
previous record offset: 715
transaction offset: 1142
len(data): 29
redundant trec len: 162
============================================================
offset: 1312
end pos: 1672
transaction id: 0285cbac4fc96319
trec len: 360
status: ' '
user: 'user0.4'
description: 'step 0.4'
len(extra): 53
------------------------------------------------------------
offset: 1403
oid: 0000000000000000
revid: 0285cbac4fc96319
previous record offset: 885
transaction offset: 1312
len(data): 156
------------------------------------------------------------
offset: 1601
oid: 0000000000000004
revid: 0285cbac4fc96319
previous record offset: 0
transaction offset: 1312
len(data): 29
redundant trec len: 360
============================================================
offset: 1680
end pos: 2060
transaction id: 0285cbac547ae166
trec len: 380
status: ' '
user: 'user0.5'
description: 'step 0.5'
len(extra): 53
------------------------------------------------------------
offset: 1771
oid: 0000000000000000
revid: 0285cbac547ae166
previous record offset: 1403
transaction offset: 1680
len(data): 176
------------------------------------------------------------
offset: 1989
oid: 0000000000000005
revid: 0285cbac547ae166
previous record offset: 0
transaction offset: 1680
len(data): 29
redundant trec len: 380
============================================================
offset: 2068
end pos: 2230
transaction id: 0285cbac592c5fb3
trec len: 162
status: ' '
user: 'user0.6'
description: 'step 0.6'
len(extra): 53
------------------------------------------------------------
offset: 2159
oid: 0000000000000004
revid: 0285cbac592c5fb3
previous record offset: 1601
transaction offset: 2068
len(data): 29
redundant trec len: 162
============================================================
offset: 2238
end pos: 2400
transaction id: 0285cbac5dddde00
trec len: 162
status: ' '
user: 'user0.7'
description: 'step 0.7'
len(extra): 53
------------------------------------------------------------
offset: 2329
oid: 0000000000000005
revid: 0285cbac5dddde00
previous record offset: 1989
transaction offset: 2238
len(data): 29
redundant trec len: 162
============================================================
offset: 2408
end pos: 2808
transaction id: 0285cbac628f5c4c
trec len: 400
status: ' '
user: 'user0.8'
description: 'step 0.8'
len(extra): 53
------------------------------------------------------------
offset: 2499
oid: 0000000000000000
revid: 0285cbac628f5c4c
previous record offset: 1771
transaction offset: 2408
len(data): 196
------------------------------------------------------------
offset: 2737
oid: 0000000000000006
revid: 0285cbac628f5c4c
previous record offset: 0
transaction offset: 2408
len(data): 29
redundant trec len: 400
============================================================
offset: 2816
end pos: 2978
transaction id: 0285cbac6740da99
trec len: 162
status: ' '
user: 'user0.9'
description: 'step 0.9'
len(extra): 53
------------------------------------------------------------
offset: 2907
oid: 0000000000000006
revid: 0285cbac6740da99
previous record offset: 2737
transaction offset: 2816
len(data): 29
redundant trec len: 162
============================================================
offset: 2986
end pos: 3151
transaction id: 0285cbac6bf258e6
trec len: 165
status: ' '
user: 'user0.10'
description: 'step 0.10'
len(extra): 53
------------------------------------------------------------
offset: 3079
oid: 0000000000000003
revid: 0285cbac6bf258e6
previous record offset: 1063
transaction offset: 2986
len(data): 30
redundant trec len: 165
============================================================
offset: 3159
end pos: 3324
transaction id: 0285cbac70a3d733
trec len: 165
status: ' '
user: 'user0.11'
description: 'step 0.11'
len(extra): 53
------------------------------------------------------------
offset: 3252
oid: 0000000000000003
revid: 0285cbac70a3d733
previous record offset: 3079
transaction offset: 3159
len(data): 30
redundant trec len: 165
============================================================
offset: 3332
end pos: 3497
transaction id: 0285cbac75555580
trec len: 165
status: ' '
user: 'user0.12'
description: 'step 0.12'
len(extra): 53
------------------------------------------------------------
offset: 3425
oid: 0000000000000001
revid: 0285cbac75555580
previous record offset: 387
transaction offset: 3332
len(data): 30
redundant trec len: 165
============================================================
offset: 3505
end pos: 3670
transaction id: 0285cbac7a06d3cc
trec len: 165
status: ' '
user: 'user0.13'
description: 'step 0.13'
len(extra): 53
------------------------------------------------------------
offset: 3598
oid: 0000000000000005
revid: 0285cbac7a06d3cc
previous record offset: 2329
transaction offset: 3505
len(data): 30
redundant trec len: 165
============================================================
offset: 3678
end pos: 3843
transaction id: 0285cbac7eb85219
trec len: 165
status: ' '
user: 'user0.14'
description: 'step 0.14'
len(extra): 53
------------------------------------------------------------
offset: 3771
oid: 0000000000000005
revid: 0285cbac7eb85219
previous record offset: 3598
transaction offset: 3678
len(data): 30
redundant trec len: 165
============================================================
offset: 3851
end pos: 4016
transaction id: 0285cbac8369d066
trec len: 165
status: ' '
user: 'user0.15'
description: 'step 0.15'
len(extra): 53
------------------------------------------------------------
offset: 3944
oid: 0000000000000006
revid: 0285cbac8369d066
previous record offset: 2907
transaction offset: 3851
len(data): 30
redundant trec len: 165
============================================================
offset: 4024
end pos: 4189
transaction id: 0285cbac881b4eb3
trec len: 165
status: ' '
user: 'user0.16'
description: 'step 0.16'
len(extra): 53
------------------------------------------------------------
offset: 4117
oid: 0000000000000005
revid: 0285cbac881b4eb3
previous record offset: 3771
transaction offset: 4024
len(data): 30
redundant trec len: 165
============================================================
offset: 4197
end pos: 4362
transaction id: 0285cbac8ccccd00
trec len: 165
status: ' '
user: 'user0.17'
description: 'step 0.17'
len(extra): 53
------------------------------------------------------------
offset: 4290
oid: 0000000000000004
revid: 0285cbac8ccccd00
previous record offset: 2159
transaction offset: 4197
len(data): 30
redundant trec len: 165
============================================================
offset: 4370
end pos: 4535
transaction id: 0285cbac917e4b4c
trec len: 165
status: ' '
user: 'user0.18'
description: 'step 0.18'
len(extra): 53
------------------------------------------------------------
offset: 4463
oid: 0000000000000004
revid: 0285cbac917e4b4c
previous record offset: 4290
transaction offset: 4370
len(data): 30
redundant trec len: 165
============================================================
offset: 4543
end pos: 4708
transaction id: 0285cbac962fc999
trec len: 165
status: ' '
user: 'user0.19'
description: 'step 0.19'
len(extra): 53
------------------------------------------------------------
offset: 4636
oid: 0000000000000005
revid: 0285cbac962fc999
previous record offset: 4117
transaction offset: 4543
len(data): 30
redundant trec len: 165
============================================================
offset: 4716
end pos: 4881
transaction id: 0285cbac9ae147e6
trec len: 165
status: ' '
user: 'user0.20'
description: 'step 0.20'
len(extra): 53
------------------------------------------------------------
offset: 4809
oid: 0000000000000002
revid: 0285cbac9ae147e6
previous record offset: 1233
transaction offset: 4716
len(data): 30
redundant trec len: 165
============================================================
offset: 4889
end pos: 5054
transaction id: 0285cbac9f92c633
trec len: 165
status: ' '
user: 'user0.21'
description: 'step 0.21'
len(extra): 53
------------------------------------------------------------
offset: 4982
oid: 0000000000000002
revid: 0285cbac9f92c633
previous record offset: 4809
transaction offset: 4889
len(data): 30
redundant trec len: 165
============================================================
offset: 5062
end pos: 5485
transaction id: 0285cbaca4444480
trec len: 423
status: ' '
user: 'user0.22'
description: 'step 0.22'
len(extra): 53
------------------------------------------------------------
offset: 5155
oid: 0000000000000000
revid: 0285cbaca4444480
previous record offset: 2499
transaction offset: 5062
len(data): 216
------------------------------------------------------------
offset: 5413
oid: 0000000000000007
revid: 0285cbaca4444480
previous record offset: 0
transaction offset: 5062
len(data): 30
redundant trec len: 423
============================================================
offset: 5493
end pos: 5658
transaction id: 0285cbaca8f5c2cc
trec len: 165
status: ' '
user: 'user0.23'
description: 'step 0.23'
len(extra): 53
------------------------------------------------------------
offset: 5586
oid: 0000000000000007
revid: 0285cbaca8f5c2cc
previous record offset: 5413
transaction offset: 5493
len(data): 30
redundant trec len: 165
============================================================
offset: 5666
end pos: 5831
transaction id: 0285cbacada74119
trec len: 165
status: ' '
user: 'user0.24'
description: 'step 0.24'
len(extra): 53
------------------------------------------------------------
offset: 5759
oid: 0000000000000003
revid: 0285cbacada74119
previous record offset: 3252
transaction offset: 5666
len(data): 30
redundant trec len: 165
============================================================
offset: 5839
end pos: 6045
transaction id: 0285cbacb258bf66
trec len: 206
status: ' '
user: 'root0.0\nYour\nMagesty '
description: 'undo 0.0\nmore detailed description\n\nzzz ...'
len(extra): 69
------------------------------------------------------------
offset: 5995
oid: 0000000000000007
revid: 0285cbacb258bf66
previous record offset: 5586
transaction offset: 5839
len(data): 0
backpointer: 5413
redundant trec len: 206
============================================================
offset: 6053
end pos: 6260
transaction id: 0285cbacb70a3db3
trec len: 207
status: ' '
user: 'root0.1\nYour\nMagesty '
description: 'undo 0.1\nmore detailed description\n\nzzz ...\t'
len(extra): 69
------------------------------------------------------------
offset: 6210
oid: 0000000000000003
revid: 0285cbacb70a3db3
previous record offset: 5759
transaction offset: 6053
len(data): 0
backpointer: 3252
redundant trec len: 207
============================================================
offset: 6268
end pos: 6630
transaction id: 0285cbacbbbbbc00
trec len: 362
status: ' '
user: ''
description: 'predelete 7'
len(extra): 0
------------------------------------------------------------
offset: 6302
oid: 0000000000000000
revid: 0285cbacbbbbbc00
previous record offset: 5155
transaction offset: 6268
len(data): 216
------------------------------------------------------------
offset: 6560
oid: 0000000000000008
revid: 0285cbacbbbbbc00
previous record offset: 0
transaction offset: 6268
len(data): 28
redundant trec len: 362
============================================================
offset: 6638
end pos: 6876
transaction id: 0285cbacc06d3a4c
trec len: 238
status: ' '
user: "root0\nYour\nRoyal\nMagesty' \x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
description: 'delete 0\nalpha beta gamma\'delta"lambda\n\nqqq ...'
len(extra): 60
------------------------------------------------------------
offset: 6826
oid: 0000000000000007
revid: 0285cbacc06d3a4c
previous record offset: 5995
transaction offset: 6638
len(data): 0
backpointer: 0
redundant trec len: 238
============================================================
offset: 6884
end pos: 7046
transaction id: 0285cbacfd70a433
trec len: 162
status: ' '
user: 'user1.0'
description: 'step 1.0'
len(extra): 53
------------------------------------------------------------
offset: 6975
oid: 0000000000000008
revid: 0285cbacfd70a433
previous record offset: 6560
transaction offset: 6884
len(data): 29
redundant trec len: 162
============================================================
offset: 7054
end pos: 7216
transaction id: 0285cbad02222280
trec len: 162
status: ' '
user: 'user1.1'
description: 'step 1.1'
len(extra): 53
------------------------------------------------------------
offset: 7145
oid: 0000000000000006
revid: 0285cbad02222280
previous record offset: 3944
transaction offset: 7054
len(data): 29
redundant trec len: 162
============================================================
offset: 7224
end pos: 7386
transaction id: 0285cbad06d3a0cc
trec len: 162
status: ' '
user: 'user1.2'
description: 'step 1.2'
len(extra): 53
------------------------------------------------------------
offset: 7315
oid: 0000000000000004
revid: 0285cbad06d3a0cc
previous record offset: 4463
transaction offset: 7224
len(data): 29
redundant trec len: 162
============================================================
offset: 7394
end pos: 7556
transaction id: 0285cbad0b851f19
trec len: 162
status: ' '
user: 'user1.3'
description: 'step 1.3'
len(extra): 53
------------------------------------------------------------
offset: 7485
oid: 0000000000000003
revid: 0285cbad0b851f19
previous record offset: 6210
transaction offset: 7394
len(data): 29
redundant trec len: 162
============================================================
offset: 7564
end pos: 7726
transaction id: 0285cbad10369d66
trec len: 162
status: ' '
user: 'user1.4'
description: 'step 1.4'
len(extra): 53
------------------------------------------------------------
offset: 7655
oid: 0000000000000003
revid: 0285cbad10369d66
previous record offset: 7485
transaction offset: 7564
len(data): 29
redundant trec len: 162
============================================================
offset: 7734
end pos: 7896
transaction id: 0285cbad14e81bb3
trec len: 162
status: ' '
user: 'user1.5'
description: 'step 1.5'
len(extra): 53
------------------------------------------------------------
offset: 7825
oid: 0000000000000008
revid: 0285cbad14e81bb3
previous record offset: 6975
transaction offset: 7734
len(data): 29
redundant trec len: 162
============================================================
offset: 7904
end pos: 8066
transaction id: 0285cbad19999a00
trec len: 162
status: ' '
user: 'user1.6'
description: 'step 1.6'
len(extra): 53
------------------------------------------------------------
offset: 7995
oid: 0000000000000001
revid: 0285cbad19999a00
previous record offset: 3425
transaction offset: 7904
len(data): 29
redundant trec len: 162
============================================================
offset: 8074
end pos: 8236
transaction id: 0285cbad1e4b184c
trec len: 162
status: ' '
user: 'user1.7'
description: 'step 1.7'
len(extra): 53
------------------------------------------------------------
offset: 8165
oid: 0000000000000002
revid: 0285cbad1e4b184c
previous record offset: 4982
transaction offset: 8074
len(data): 29
redundant trec len: 162
============================================================
offset: 8244
end pos: 8406
transaction id: 0285cbad22fc9699
trec len: 162
status: ' '
user: 'user1.8'
description: 'step 1.8'
len(extra): 53
------------------------------------------------------------
offset: 8335
oid: 0000000000000008
revid: 0285cbad22fc9699
previous record offset: 7825
transaction offset: 8244
len(data): 29
redundant trec len: 162
============================================================
offset: 8414
end pos: 8576
transaction id: 0285cbad27ae14e6
trec len: 162
status: ' '
user: 'user1.9'
description: 'step 1.9'
len(extra): 53
------------------------------------------------------------
offset: 8505
oid: 0000000000000008
revid: 0285cbad27ae14e6
previous record offset: 8335
transaction offset: 8414
len(data): 29
redundant trec len: 162
============================================================
offset: 8584
end pos: 8749
transaction id: 0285cbad2c5f9333
trec len: 165
status: ' '
user: 'user1.10'
description: 'step 1.10'
len(extra): 53
------------------------------------------------------------
offset: 8677
oid: 0000000000000006
revid: 0285cbad2c5f9333
previous record offset: 7145
transaction offset: 8584
len(data): 30
redundant trec len: 165
============================================================
offset: 8757
end pos: 8922
transaction id: 0285cbad31111180
trec len: 165
status: ' '
user: 'user1.11'
description: 'step 1.11'
len(extra): 53
------------------------------------------------------------
offset: 8850
oid: 0000000000000005
revid: 0285cbad31111180
previous record offset: 4636
transaction offset: 8757
len(data): 30
redundant trec len: 165
============================================================
offset: 8930
end pos: 9095
transaction id: 0285cbad35c28fcc
trec len: 165
status: ' '
user: 'user1.12'
description: 'step 1.12'
len(extra): 53
------------------------------------------------------------
offset: 9023
oid: 0000000000000008
revid: 0285cbad35c28fcc
previous record offset: 8505
transaction offset: 8930
len(data): 30
redundant trec len: 165
============================================================
offset: 9103
end pos: 9268
transaction id: 0285cbad3a740e19
trec len: 165
status: ' '
user: 'user1.13'
description: 'step 1.13'
len(extra): 53
------------------------------------------------------------
offset: 9196
oid: 0000000000000006
revid: 0285cbad3a740e19
previous record offset: 8677
transaction offset: 9103
len(data): 30
redundant trec len: 165
============================================================
offset: 9276
end pos: 9441
transaction id: 0285cbad3f258c66
trec len: 165
status: ' '
user: 'user1.14'
description: 'step 1.14'
len(extra): 53
------------------------------------------------------------
offset: 9369
oid: 0000000000000003
revid: 0285cbad3f258c66
previous record offset: 7655
transaction offset: 9276
len(data): 30
redundant trec len: 165
============================================================
offset: 9449
end pos: 9614
transaction id: 0285cbad43d70ab3
trec len: 165
status: ' '
user: 'user1.15'
description: 'step 1.15'
len(extra): 53
------------------------------------------------------------
offset: 9542
oid: 0000000000000003
revid: 0285cbad43d70ab3
previous record offset: 9369
transaction offset: 9449
len(data): 30
redundant trec len: 165
============================================================
offset: 9622
end pos: 9787
transaction id: 0285cbad48888900
trec len: 165
status: ' '
user: 'user1.16'
description: 'step 1.16'
len(extra): 53
------------------------------------------------------------
offset: 9715
oid: 0000000000000002
revid: 0285cbad48888900
previous record offset: 8165
transaction offset: 9622
len(data): 30
redundant trec len: 165
============================================================
offset: 9795
end pos: 9960
transaction id: 0285cbad4d3a074c
trec len: 165
status: ' '
user: 'user1.17'
description: 'step 1.17'
len(extra): 53
------------------------------------------------------------
offset: 9888
oid: 0000000000000003
revid: 0285cbad4d3a074c
previous record offset: 9542
transaction offset: 9795
len(data): 30
redundant trec len: 165
============================================================
offset: 9968
end pos: 10133
transaction id: 0285cbad51eb8599
trec len: 165
status: ' '
user: 'user1.18'
description: 'step 1.18'
len(extra): 53
------------------------------------------------------------
offset: 10061
oid: 0000000000000001
revid: 0285cbad51eb8599
previous record offset: 7995
transaction offset: 9968
len(data): 30
redundant trec len: 165
============================================================
offset: 10141
end pos: 10306
transaction id: 0285cbad569d03e6
trec len: 165
status: ' '
user: 'user1.19'
description: 'step 1.19'
len(extra): 53
------------------------------------------------------------
offset: 10234
oid: 0000000000000005
revid: 0285cbad569d03e6
previous record offset: 8850
transaction offset: 10141
len(data): 30
redundant trec len: 165
============================================================
offset: 10314
end pos: 10479
transaction id: 0285cbad5b4e8233
trec len: 165
status: ' '
user: 'user1.20'
description: 'step 1.20'
len(extra): 53
------------------------------------------------------------
offset: 10407
oid: 0000000000000003
revid: 0285cbad5b4e8233
previous record offset: 9888
transaction offset: 10314
len(data): 30
redundant trec len: 165
============================================================
offset: 10487
end pos: 10652
transaction id: 0285cbad60000080
trec len: 165
status: ' '
user: 'user1.21'
description: 'step 1.21'
len(extra): 53
------------------------------------------------------------
offset: 10580
oid: 0000000000000003
revid: 0285cbad60000080
previous record offset: 10407
transaction offset: 10487
len(data): 30
redundant trec len: 165
============================================================
offset: 10660
end pos: 10825
transaction id: 0285cbad64b17ecc
trec len: 165
status: ' '
user: 'user1.22'
description: 'step 1.22'
len(extra): 53
------------------------------------------------------------
offset: 10753
oid: 0000000000000006
revid: 0285cbad64b17ecc
previous record offset: 9196
transaction offset: 10660
len(data): 30
redundant trec len: 165
============================================================
offset: 10833
end pos: 10998
transaction id: 0285cbad6962fd19
trec len: 165
status: ' '
user: 'user1.23'
description: 'step 1.23'
len(extra): 53
------------------------------------------------------------
offset: 10926
oid: 0000000000000005
revid: 0285cbad6962fd19
previous record offset: 10234
transaction offset: 10833
len(data): 30
redundant trec len: 165
============================================================
offset: 11006
end pos: 11171
transaction id: 0285cbad6e147b66
trec len: 165
status: ' '
user: 'user1.24'
description: 'step 1.24'
len(extra): 53
------------------------------------------------------------
offset: 11099
oid: 0000000000000005
revid: 0285cbad6e147b66
previous record offset: 10926
transaction offset: 11006
len(data): 30
redundant trec len: 165
============================================================
offset: 11179
end pos: 11386
transaction id: 0285cbad77777800
trec len: 207
status: ' '
user: 'root1.0\nYour\nMagesty '
description: 'undo 1.0\nmore detailed description\n\nzzz ...\t'
len(extra): 69
------------------------------------------------------------
offset: 11336
oid: 0000000000000006
revid: 0285cbad77777800
previous record offset: 10753
transaction offset: 11179
len(data): 0
backpointer: 9196
redundant trec len: 207
============================================================
offset: 11394
end pos: 11602
transaction id: 0285cbad7c28f64c
trec len: 208
status: ' '
user: 'root1.1\nYour\nMagesty '
description: 'undo 1.1\nmore detailed description\n\nzzz ...\t\t'
len(extra): 69
------------------------------------------------------------
offset: 11552
oid: 0000000000000005
revid: 0285cbad7c28f64c
previous record offset: 11099
transaction offset: 11394
len(data): 0
backpointer: 10926
redundant trec len: 208
============================================================
offset: 11610
end pos: 11972
transaction id: 0285cbad80da7499
trec len: 362
status: ' '
user: ''
description: 'predelete 6'
len(extra): 0
------------------------------------------------------------
offset: 11644
oid: 0000000000000000
revid: 0285cbad80da7499
previous record offset: 6302
transaction offset: 11610
len(data): 216
------------------------------------------------------------
offset: 11902
oid: 0000000000000009
revid: 0285cbad80da7499
previous record offset: 0
transaction offset: 11610
len(data): 28
redundant trec len: 362
============================================================
offset: 11980
end pos: 12218
transaction id: 0285cbad858bf2e6
trec len: 238
status: ' '
user: "root1\nYour\nRoyal\nMagesty' \x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
description: 'delete 1\nalpha beta gamma\'delta"lambda\n\nqqq ...'
len(extra): 60
------------------------------------------------------------
offset: 12168
oid: 0000000000000006
revid: 0285cbad858bf2e6
previous record offset: 11336
transaction offset: 11980
len(data): 0
backpointer: 0
redundant trec len: 238
go/zodb/zodb.go
View file @
b04cd609
...
@@ -165,6 +165,7 @@ type IStorage interface {
...
@@ -165,6 +165,7 @@ type IStorage interface {
// tpc_finish(txn, callback) XXX clarify about callback
// tpc_finish(txn, callback) XXX clarify about callback
// tpc_abort(txn)
// tpc_abort(txn)
// XXX text
Iterate
(
tidMin
,
tidMax
Tid
)
IStorageIterator
// XXX , error ?
Iterate
(
tidMin
,
tidMax
Tid
)
IStorageIterator
// XXX , error ?
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment