[FrontPage] | 更新履歴 - サイトマップ - "DirectoryStorageStructure" 配下のコンテンツ - 過去を発掘 | [Snap.Shot] |
DirectoryStorageStructure |
これはlawnフォーマットの例。 順番に:
/vol-x1/zope/storage: 合計 312 drwxr-xr-x 6714 zope zope 217088 5月 30 06:02 A drwxr-xr-x 2 zope zope 6 5月 30 05:50 B drwxr-xr-x 2 zope zope 36 5月 30 05:50 config drwxr-xr-x 2 zope zope 6 5月 30 06:09 journal drwxr-xr-x 2 zope zope 31 5月 30 05:56 misc /vol-x1/zope/storage/A: 合計 8 drwxr-xr-x 2 zope zope 83 5月 30 05:56 o0000000000000000 drwxr-xr-x 2 zope zope 152 5月 30 06:02 o0000000000000001 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000002 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000003 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000004 drwxr-xr-x 2 zope zope 4096 5月 30 05:57 o0000000000000005 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000006 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000007 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000008 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000009 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o000000000000000A drwxr-xr-x 2 zope zope 37 5月 30 05:56 o000000000000000B drwxr-xr-x 2 zope zope 37 5月 30 05:56 o000000000000000C drwxr-xr-x 2 zope zope 37 5月 30 05:56 o000000000000000D drwxr-xr-x 2 zope zope 37 5月 30 05:56 o000000000000000E drwxr-xr-x 2 zope zope 37 5月 30 05:56 o000000000000000F drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000010 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000011 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000012 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000013 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000014 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000015 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000016 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000017 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000018 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o0000000000000019 drwxr-xr-x 2 zope zope 37 5月 30 05:56 o000000000000001A drwxr-xr-x 2 zope zope 37 5月 30 05:56 o000000000000001B drwxr-xr-x 2 zope zope 37 5月 30 05:56 o000000000000001C ...(中略) /vol-x1/zope/storage/A/o0000000000000005: 合計 392 drwxr-xr-x 2 zope zope 4096 5月 30 05:57 . drwxr-xr-x 6714 zope zope 217088 5月 30 06:02 .. -rw-r--r-- 1 zope zope 116 5月 30 05:56 034516E86534A2E6 -rw-r--r-- 1 zope zope 231 5月 30 05:56 034516E86AA1A933 -rw-r--r-- 1 zope zope 326 5月 30 05:56 034516E86ABF1A5D -rw-r--r-- 1 zope zope 403 5月 30 05:56 034516E86B4610CC -rw-r--r-- 1 zope zope 470 5月 30 05:56 034516E86E717933 -rw-r--r-- 1 zope zope 535 5月 30 05:56 034516E86EF034F7 -rw-r--r-- 1 zope zope 592 5月 30 05:56 034516E87A19DC00 -rw-r--r-- 1 zope zope 667 5月 30 05:56 034516E89318E208 -rw-r--r-- 1 zope zope 742 5月 30 05:56 034516E8A7718580 -rw-r--r-- 1 zope zope 807 5月 30 05:56 034516E8AFC29CC4 -rw-r--r-- 1 zope zope 876 5月 30 05:56 034516E8BC93616E -rw-r--r-- 1 zope zope 967 5月 30 05:56 034516E8BF6CDAAA -rw-r--r-- 1 zope zope 1046 5月 30 05:56 034516E8C5F5F144 -rw-r--r-- 1 zope zope 1115 5月 30 05:56 034516E8D0F8EB80 -rw-r--r-- 1 zope zope 1180 5月 30 05:56 034516E8D80EFCEE -rw-r--r-- 1 zope zope 1247 5月 30 05:56 034516E8DD69EE22 -rw-r--r-- 1 zope zope 1318 5月 30 05:56 034516E8DF179088 -rw-r--r-- 1 zope zope 1391 5月 30 05:56 034516E8F19E1455 -rw-r--r-- 1 zope zope 12 5月 30 05:56 c $ cat c | perl -pe "s/([\0-\377])/sprintf('%02X', ord(\$1))/ge" 0BFEE8EC034516E8F19E1455 (注: 最初の4バイトが不明だけど、残りの8バイトはcurrentを指しているぽい。 ちゃんとnetwork byte orderな模様) $ cat 034516E8F19E1455 | perl -pe "s/([\0-\377])/sprintf('%02X ', ord(\$1))/ge" BD B8 2A 71 00 00 05 6F 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E2 48 CA 9B EF 82 90 D4 7C 67 6C 20 C6 25 51 C4 03 45 16 E8 DF 17 90 88 03 45 16 E8 F1 9E 14 55 28 28 55 0B 41 70 70 2E 50 72 6F 64 75 63 74 71 01 55 0D 50 72 6F 64 75 63 74 46 6F 6C 64 65 72 71 02 74 71 03 4E 74 2E 7D 71 04 28 55 0D 50 79 74 68 6F 6E 53 63 72 69 70 74 73 71 05 28 55 08 00 00 00 00 00 00 0B 63 71 06 28 68 01 55 07 50 72 6F 64 75 63 74 71 07 74 74 51 55 0B 5A 53 51 4C 4D 65 74 68 6F 64 73 71 08 28 55 08 00 00 00 00 00 00 15 D9 71 09 28 ... $ strings 034516E8F19E1455 App.Productq ProductFolderq PythonScriptsq Productq ZSQLMethodsq Productq ZCatalogq Productq ... (注: プロダクトフォルダっぽいね。問題はほとんど初期状態なのに、 どしてこんなトランザクション伸びるかと。各プロダクトをそれぞれparseして、そのたびに こつこつ追加しているようだ…)
で、気がついたのですが、結局これ、既存のZODBが信頼性に乏しい単一ファイルに対して書いてたところを そのまま複数ファイルに落とし込んでいるだけっぽいんですな。 結局はPython pickleかためうちなので、データと管理情報が分離しているわけでもないし、 どっか途中の枝をロストしたらそりゃもう大騒ぎになりそうな。
同一オブジェクトのトランザクションは同一ディレクトリの別ファイルとして残るので、 ここだけは少し光がさしたかも。
フォーマットはformats.pyを見てみよう。けっこう単純…
てゆーか、 doc/install
にあったbushy4なんてフォーマットは無いぞ!
代わりにbushy2とbushy5があった。