bknrのodb

prevalenceモデルらしい。なんだ。
RAMに全てを持つって、大丈夫なのかな。
Linuxのpagingだより?

いまいちな気がしてきた。用途にもよるんだろうが。

トランザクションをサポートしている。odbとは違うと言っているのか?

slotにインデックスを張る。クラスを文字どおり集合として扱う感じ。

      (defclass gorilla ()
        *1
        (:metaclass indexed-class))
We have to recreate the gorillas though, as the old instances don’t get up-
dated for now.
      (make-instance ’gorilla :name "Lucy" :description :aggressive)
      (make-instance ’gorilla :name "Robert" :description :playful)
      (make-instance ’gorilla :name "John" :description :aggressive)))

   (all-gorillas)
   ; => (# # #)
   (gorilla-with-name "Lucy")
   ; => #
   ;T
   (gorillas-with-description :aggressive)
   ; => (# #)
   ;T


デストラクタもある。

prevalence model

  1. 動作時はデータは全てRAMにある
  2. スナップショットをとることが出来る。
  3. 起動時スナップショットを読み込む。
  4. 変更操作はログに記録する。もちろんスナップショット以降のね。
  5. オブジェクト指向DBとは違う←理由が読み取れない。

*1:name :initarg :name :reader gorilla-name :index-type slot-index :index-initargs (:test #’equal) :index-reader gorilla-with-name :index-values all-gorillas) (description :initarg :description :reader gorilla-description :index-type keyword-index :index-reader gorillas-with-description