2018-01-01から1年間の記事一覧

systemd-resolvedで特定ドメインのDNSSEC検証を無効にする

arch linuxのsystemd 239から、systemd-resolvedでDNSSECでの検証がデフォルトで有効になったらしい。 手元の環境では、自分で所有しているが、実際に存在する名前を使って権威サーバを立てているために、DNSSECでの検証が失敗してアドレスが引けない問題が…

distrobuilder で lxc 用のイメージを作る

lxc 3.0 ではコンテナイメージ作成に使われていたテンプレートスクリプトが削除されて、 https://github.com/lxc/lxc-templates に移動された。 今後は distrobuilder を使うのがおすすめらしい。 ということで distrobuilder でイメージを作ってみる。 dist…

linux kernel library で遊ぶ

AsiaBSDCon 2018 で linux rumpkernel についての発表があったらしく気になっていた。 Linux rumpkernel - ABC2018 (AsiaBSDCon 2018) from Hajime Tazaki www.slideshare.net 当日は参加していないのでわからないが、linux kernel をライブラリとして使って…

Ceph storage backend bluestore について

分散オブジェクトストレージ Ceph はそのバックエンドとして、ファイルシステムを使う filestore の他に、ブロックデバイスを使う bluestore をサポートしている。 bluestore については公式ブログの記事 や slideshare に概要がある。 大雑把に書くと、メタ…

LevelDB のルックアップ

今更という感じだが、LevelDB について調べた。 table_format にあるように、LevelDB の SST の中身は block に分かれている。 block のなかは key-value の組が複数個入っている。 block ではキーのプレフィックスを圧縮したり block そのものを圧縮してい…

Transactional write の調査: MySQL 編その2

前回は主に redo log を調査した。 InnoDB ではいわゆる redo log は MTR によって実装されていることがわかった。 今回はロールバック周りを見ていく。 redo log があれば ACID を実装することが可能なのは SQLite で調べたとおりだが、InnoDB は MVCC なの…

Transactional write の調査: MySQL 編

引き続き trx write の実装について調べていく。 今回は MySQL を見ている。 MySQL はめちゃくちゃたくさんログを書いているしどれが何をしているのかというのは初見ではわかりにくい。 実際にトランザクションに関係するログは、innodb_log_* 系で設定する …

Transactional write の調査: SQLite wal 編

今回は、SQLite の wal モードについて調べた。 こちらもドキュメントが豊富で、以下の2つが参考になる。 Write-Ahead Logging Database File Format wal モードは、redo log のみを使って永続化を行っている。 書き込みの時に以下のような動作を行う。 wal …

Transactional write の調査: SQLite rollback journal 編

プログラミングをしていると、電源断などの障害時でも不整合が起こらないようにデータを保存したいという要求がしばしばある。 通常こういう要求は DBMS やライブラリなどで担保することになるわけであるが、データ自体が DBMS に収まらない場合、 2 phase c…