1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
Max DB-Size: 7 digits -> 2**42 (4 Tera) Blocks
Blocksize 64 -> (2**48 Bytes (256 TB))
Tree
NIL -> (val *DB)
{x} -> (val '{x})
(var . {x}) -> (get '{x} 'var)
(var . +Cls) -> (get *DB '+Cls 'var)
(var +Cls . {x}) -> (get '{x} '+Cls 'var)
B-Tree root:
(cnt . node)
B-Tree node:
(less (key more . value) (key more . value) ..)
Per node
<Link> BEG EXTERN <6> .. NIX
6+1+1+6+1 = 15
Per key
BEG TRANSIENT <key> EXTERN <7> DOT EXTERN <7>
1+1+<key>+1+6+1+1+7 = 18 + <key>
Key Arguments for DB- and Pilog-functions:
123, {abc} -> (123) (123 . T)
T -> All
"abc" -> ("abc") ("abcT" . T)
(a b) -> (a b) (a b . T)
((a 1) b 2) -> (a 1) (b 2 . T)
((1 . 3) (4 . 7)) -> (33 . 61)
(a . b) -> (a) (b . T)
(b . a) -> (b . T) (a)
loaded/dirty/deleted
| | | |
| (1) | (2) | (3) |
| | | |
---------+-----------------+-----------------+-----------------+
| load | load | empty |
NIL | -> loaded | -> dirty | -> deleted |
| | | |
---------+-----------------+-----------------+-----------------+
| | | empty |
loaded | | -> dirty | -> deleted |
| | | |
---------+-----------------+-----------------+-----------------+
| | | empty |
dirty | | | -> deleted |
| | | |
---------+-----------------+-----------------+-----------------+
| | | |
deleted | | | |
| | | |
| | |
| commit | rollback |
| | |
-------------+-----------------+-----------------+
| | |
NIL | | |
| | |
-------------+-----------------+-----------------+
| | empty |
(1) loaded | | -> NIL |
| | |
-------------+-----------------+-----------------+
| save | empty |
(2) dirty | -> loaded | -> NIL |
| | |
-------------+-----------------+-----------------+
| empty | empty |
(3) deleted | -> NIL | -> NIL |
| | |
+-----+-----+
| V1 | | |
+-----+--+--+
|
V
+-----+-----+ +-----+-----+
| P1 | ---+---> | N | ---+---> @@
+-----+-----+ +-----+-----+
|