外部エンジン対応
実験的に,
この改造をMySQLのBrian Akerに見せたら,
外部エンジン対応の必要性
世の中に多数存在するmemcachedのfork
外部エンジンのロードメカニズムでは,
簡素なAPI設計が成功の鍵
このプロジェクトで我々がもっとも重要視したことはAPIの設計です。ファンクションの数が多すぎるとエンジンデベロッパーに面倒な思いをさせてしまったり,
- エンジン情報
(バージョンなど) - エンジンの初期化
- エンジンのシャットダウン
- エンジンの統計情報
- 容量的に特定のレコードを保存する事が可能かの評価
- item
(レコード) 構造体のメモリ確保 - item
(レコード) のメモリ解放 - レコードの削除
- レコードの保存
- レコードの回収
- レコードのタイムスタンプを更新
- 数値演算系の処理
- データのFLUSH
詳しい仕様に興味のある方はengineプロジェクトのコードをチェックアウトしてengine.
現状のアーキテクチャを見直す
memcachedを外部ストレージ対応にさせる点で難しいことは,
リファクタ後にバージョン1.
外部エンジンのロードをサポートする過程で,
これらのハックによりmemcachedの可能性が広がればと思います。
まとめ
memcachedのタイムアウトの仕組みや,
さて,
次回からは長野がmemcachedの運用ノウハウや互換アプリケーションなどを紹介します。