allegro cache

  1. object store.
  2. support transactions.
  3. db.ac package holds symbols.
  4. metaclassをpersistent-classにすればよい。
  5. make-instance でobjectが出来る。
  6. 操作が出来るのはdbに接続しているときだけ。
  7. *allegrocache*

commit functionでdbに書き込む。

格納できるもの。

  1. symbol
  2. number
  3. string
  4. character
  5. cons
  6. vector
  7. object reference (in the same database)
  8. map (open-map)
  9. 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でいろいろ操作できる。

飽きてきた。