ストレージエンジンを書くにあたって知っているといいかもな知識

ってどのあたりなんだろ。マインドマップ的に。
たとえば memcached のストレージ書くなら、

  • I/O API
    • p?(read|write)v, fsync
    • async API?
  • Memory Mapping API
  • Multithreading
    • pthread API
    • various locks: mutex, rwlock, etc.

あたりかなぁ。耐障害性が必要になってくるなら、

  • Block Device
    • HDD, SSD
    • block size, random vs. sequential access, etc.
  • Journalling
  • Replication

あたりも必要? より本格的なストレージを書くなら

  • MVCC
  • Transaction
  • Data Arrangement
    • logging, indexing, cluster index, row-based vs. column-based

みたいな感じになってくるのかなぁ。なんかいろいろ抜けがありそう。