allegro cache
- object store.
- support transactions.
- db.ac package holds symbols.
- metaclassをpersistent-classにすればよい。
- make-instance でobjectが出来る。
- 操作が出来るのはdbに接続しているときだけ。
- *allegrocache*
commit functionでdbに書き込む。
格納できるもの。
- symbol
- number
- string
- character
- cons
- vector
- object reference (in the same database)
- map (open-map)
- structs ( only if an encode-object method is defined )
indexをはれる。:indexとして:any-uniqueを指定するとuniqueになる。
indexはslotと関連づいており、slotの値を指定することでobjectを得ることが出来る。
ac-mapという永続化をサポートしたtableがある。
ac-setという永続化をサポートしたクラスがある。lispのequalで重複チェックの上、一意性を保つ。
関係演算ができる?
transactionsについて。
rdbユーザに馴染がある方式。
commit, rollbackでatomic性を保つ。
ommitを試みて状態が変わっている場合、
1. rollbackする。
2. commitする。他のtransactionが競合するオブジェクトを変更している場合は失敗する。
databaseとは、
logically : 集合。クラス、インスタンス、インデックス、マップ
physically : a directory . containing a set of files, each file holding a single B-Tree.
oid。object identifier. db-object-oidでoid取得できる。
delete-instance で削除出来る。
index-cursorやdo-classなどのAPIでいろいろ操作できる。
飽きてきた。