Think Distributed

Database and Distributed Systems

database

Erasure Coding による CPU, IO 負荷を下げる案

しばらく前から仕事で Erasure Coding を使って保存されたデータを復元する処理の負荷を下げる方法について考えている。なぜこんなことをしているかというと自社製のストレージのデータが EC を使うようになっているから。 すでに実装された機能として、 I/O…

Reading: Frangipani: A Scalable Distributed File System

Frangipani: A Scalable Distributed File System システム構成 Petal 分散ストレージ。Frangipani が内部的にストレージとして使う。 Reading: Petal: Distributed Virtual Disks - Think Distributed Frangipani カーネルモジュールを提供する。 OS の Fil…

Reading: The Design and Implementation of a Log-Structured File System

https://web.stanford.edu/~ouster/cgi-bin/papers/lfs.pdf を読みました。この論文は Sprite LFS というファイルシステムについて説明している論文となります。 従来のファイルシステムの問題点 小さいデータをバラバラな場所に書いているため、HDD のシー…

Debugging PostgreSQL with GDB

PostgreSQL の install から gdb での debug をできる環境の作り方までを紹介します。 まずは PostgreSQL を git から clone してきます。 git clone git://github.com/postgres/postgres.git 次に configure から make install までします。この時に debug …

The abstraction layer of I/O in PostgreSQL

PostgreSQL の Stable Storage への IO は VFS と似たような手法で struct f_smgr として抽象化されていて、見たところ magnetic disk への実装しか登録されていませんが複数の実装を登録できるようになっています。 f_smgr の interface は以下のようになっ…