二〇二六年 レンタル Mac Mini七時二十四分:LMDB と RocksDB 意思決定マトリクス(バルク書込・圧縮窓・checkpoint・ディスク閾値)
埋め込み KVをレンタル Mac Miniで七時二十四分回すと、RocksDB の圧縮とcheckpoint、LMDB のmapsizeが同居ワーカーと同一 APFSで衝突します。表とINI、夜間窓、黄赤閾値で固定します。Timescale/Postgres 取込稿・水位 FAQ・LanceDB durable memory 稿。
- 圧縮とバルクが同じ深夜帯に重なると、stall と尾遅延が先に顕在化します。
- mapsize 不足やWAL 肥大は黙停止ではなく書込失敗や巻枯渇として現れます。
- checkpoint 直後の古 SST 掃除がバックアップと重なると、二倍時間が平常のしきい値を超えやすいです。
リスクの骨格
LMDBは単一ライタ前提、RocksDBは圧縮が帯域を奪います。水位 FAQの黄赤で投入ゲートを配線します。
意思決定マトリクス(出発点)
読み多・小実装ならLMDB、書き多・TTLならRocksDB。
| 観点 | LMDB | RocksDB |
|---|---|---|
| 書込モデル | 単一ライタ直列・B+木 mmap | LSM・WAL+memtable |
| 圧縮 | 実質環境複製で整理 | Compaction 本格・帯域大 |
| checkpoint | 静止+ファイルコピー | Checkpoint API・WAL 整合 |
実行可能な設定項(INI 抜粋)
OPTIONS を版管理します。
[Version]
rocksdb_version=9.x
[DBOptions]
max_background_jobs=6
bytes_per_sync=1048576
[CFOptions "default"]
write_buffer_size=67108864
max_write_buffer_number=3
min_write_buffer_number_to_merge=2
level0_file_num_compaction_trigger=4
max_bytes_for_level_base=536870912
compaction_pri=3
periodic_compaction_seconds=86400
LMDB:mdb_env_set_mapsizeに余裕、mdb_env_syncはバッチ境界。
圧縮窓・checkpoint・夜間帯
- JST 二〜五時にCompaction、checkpointは十五分以上ずらす。
- checkpoint後にWAL 掃除。
caffeinate -dimsuで夜間帯を守る。
監視とディスク水位(黄赤)
- immutable 列が平常の二倍なら窓不足。stall続きならrate limit。
しきい値一覧
| 指標 | 黄 | 赤 | アクション |
|---|---|---|---|
| APFS 空き率 | 約二割未満 | 約一割未満 | 投入減速・圧縮延期 |
| 絶対空き | 約五ギビ未満 | 約二ギビ未満 | checkpoint 延期・退避 |
| 圧縮所要比 | 平常の一・五倍 | 平常の二倍超 | 窓延長・並列見直し |
長時間運用ランブック(五手順)
- db_path とログを論理分離し基線を残す。
- INIを版管理し起動で読む。
- JST 二〜五時にCompaction、checkpointは十五分空ける。
- 黄で投入半速、赤でcheckpoint 停止と退避。
- 四半期に検証巻リストアで閾値見直し。
引用ゲート:write_buffer_size 六十四メガ、level0_file_num_compaction_trigger 四、空き黄二割赤一割、圧縮と checkpoint は離す。
FAQ
- NW マウント
- 主データは内蔵巻へ。
- mapsize/TTL
- mapsizeは余裕二倍。periodic_compaction_secondsは夜間窓と同じ表で管理。
購入・プランの選び方
RAMはmmapとOSとワーカー。SSDはSST・WAL・退避の合算。
まとめ:表でエンジンを選び、INIと夜間窓で衝突を外し、黄赤で投入減速。公開購入で余白ノードを確保。