Skip to main content

山椒の実

Caveat-Scriptor: Write Anywhere Shingled Disks

これも魅力的なタイトルですね。Garth GibsonのところのCMUの人。Shingled Diskまだまだ熱いですからね。

Caveat-Scriptorはラテン語でlet the writer bewareという意味らしい。それでも意味がわからないんだけど、書き込む側が何らかの負担をするという意味みたい。

Host-Managed software for Caveat-Scriptor shingled disks is allowed to write anywhere, but if it fails to respect these distance parameters, it may destroy data.

とのこと。Shingled Diskはピッチを狭めて書き込んでいるので、両側から書き込まれると真ん中が消えてしまう。つまり基本的にシーケンシャルに書き込まなければならない。たまに飛んでもいいけど、制約があったりする。普通はディスクのファーム側に制約を満たしつつうまくやってくれる(SSDのファームと非常に似た処理をする)層をつける。ここでログ構造にしてLSM treeみたいにするのが一般的と言えると思います。いま売られているSeagateのArchive系のシリーズは中身がそうなってる奴ですね。こういうのは当然、各社出してくると思います。この論文ではホスト側でやったほうがうまくいくはずなのでその方法を考えたよ、という話。

スコット親子、日本を駆ける: 父と息子の自転車縦断4000キロ (チャールズ・R. スコット)

日本縦断にチャレンジした親子の話。父は米国人のインテルの法人営業、母は日本出身の国連勤務、長男は8歳…というエリート一家だったが、ある日冒険を思いつく。父子で自転車で日本を縦断しようと。まじですか。インテルでは無給休暇が年に2ヶ月まで認められているらしい。その2ヶ月を使った冒険。認められてるって言っても無給だからなー。あとリーマンショックの直後で、クビになる可能性もあったらしい。

前後に連結した自転車があるみたい。後ろに子供が乗り、気が向いたらこぐことができる。テントを含む重い荷物。過酷な戦いがはじまる。原題はRising Sonっていうね。まー息子の成長のためと言いつつ自分のためでもあるんだよな。息子に対する苛立ちも非常に分かる。

Edelta: A Word-Enlarging Based Fast Delta Compression Approach

HotStorage15の論文。

delta compressionの話。以前何かやろうとしたなぁ、delta encodingなつかしー。world enlargeだと思ったらword enlargeだった。

delta encodingで共通部分を見つけるときに、一度見つけたら続きもつながっていることが多く、それを利用してスループットを上げるという話だった。あんまり難しいことを言ってるようには聞こえないが、効果は出ている。edeltaはdelta encodingを高速に処理できるのだ。

LSM-trie: An LSM-tree-based Ultra-Large Key-Value Store for Small Data

コード → https://github.com/wuxb45/lsm-trie-release

USENIX ATC15の論文。これはタイトルだけで読みたくなる論文ですね。LSMで、trieですよ。

LSMは普通はtreeですよね。Log Structured Merged Treeという古くからある有名なデータ構造。私も何度か実装しました。追加がシーケンシャルwriteになるので高速になり、けっこう便利なのですよね。一方でtrieというのはインデックスがエッジに含まれるtreeで、これも非常に古くからあるデータ構造。組み合わせたらどんな素敵なんだろう、という話。

孤児列車(クリスティナ・ベイカー・クライン)

その昔、アメリカで孤児を集めて里親を探しに走った孤児列車というものがあったらしい。確かに慈善事業なんだけど、家畜の品評会のようなものを受けさせられる子供には残酷でもある。その歴史的事実を元に記された小説。売れて評判が良いらしいということから、恐らくハッピーエンドになってみんな救われるんだろうなと思って読むことにした。やはりバッドエンドで終わる後味の悪い小説は読みたくないもので。

その地獄から地獄へと向かう旅路。受け入れる里親は里親としての責務を果たさず、単に無償の労働力として扱い、孤児の人生をすり減らしていく。そして行き着く先で出会った救い。人生と人生の交錯。いろいろと考えさせられた。ヘビーではあるが割と安心して読めるところもいい。

2040年の新世界: 3Dプリンタの衝撃 (ホッド リプソン, メルバ カーマン)

3Dプリンタが今後どのように生活を変えていくのかを語った本。使い方ガイドとかそういう話ではなくて、こういう技術があってこう発展しているから将来はこういうことができるようになる、という感じの書き方。

中身を読んで、今後起きる革命について思いを馳せた私は、半分ほど読んだところで部屋を歩き回りながら物思いに沈み、そして安い3Dプリンタを発注するのだった。まあ発注したものは入荷が遅れたため、まだ来てないんだけどね。でも発注後はその日に備えて123D Designでモデリングの練習に明け暮れる日々。これがなかなか難しい。結局残り半分を読まずに図書館に返却した。3Dプリンタで遊んでああだこうだという話に関してはまた別の機会に語ることがあろう。その過程で少しはソフトウェアを書いたりすることもあるであろう。

真相 マイク・タイソン自伝 (マイク・タイソン)

あのマイク・タイソンの自伝。それはハチャメチャですね。すごい本だった。とにかくスゴイ。この本はみんな読むべき。人生のバイブル? にしてもいいくらいだった。私は図書館で借りたんだけど、これ買って繰り返し読んだほうがいい気がする。

臆病さを隠すために闘争心を植え付けられたボクシングの天才。師の死とともに糸の切れたタコのように制御不能な凄まじい人生を生きる。内面の成長が途中で止まってしまったまま手に入れた名声。稼いだカネを余すところなく搾取され続けて…ニーチェとか読みながらボクシングやってた十代の青年がですよ。

U-root: A Go-based, firmware embeddable root file system with on-demand compilation

これもATC15かな。

ここで言うファイルシステムというのはファイルシステム自体の話ではなくて、もいっこ上の、ファイルツリーの話。いわゆる/ですね。組み込みLinuxの/だとbusyboxを使ったりするけど、ここではそこをGolangで書いてみた、という話。

Golangでそれを書いたからってどうなるわけでもあるまい、と思うでしょ?

それをいい意味で裏切ってくれる内容だった。

このroot fs、バイナリとしてはinitとgoのコンパイラしか含んでいない。あとはソースの形で持っている。コマンドを実行したときに、未コンパイルであればその場でコンパイルされ、実行される。バイナリはキャッシュされる。以前はPerl LinuxてのがあってPerlの処理系とスクリプトで動かすやつがあったらしい。あともちろん主流の、普通のBusyboxベースのやつもある。前者は効率は悪いが柔軟性があって、後者は柔軟性はないが効率が良い。U-rootはその中間を狙った。Golangは動作も高速だしコンパイルも速いからね。マルチプラットフォームへの対応も割と楽。Busyboxは割とLinuxべったりな作りだけど、GolangであればLinuxからの脱出も楽だろう。

MetaSync: File Synchronization Across Multiple Untrusted Storage Services

USENIX ATC15に出ていた論文。

Dropbox系のサービスを複数使ってreliableなストレージにする話。と聞くとアホらしい話にしか聞こえないが、実際はどうか? 似たようなセコい話をどこかで見たような記憶もある。実際サービス停止したりデータロストしたりしているので、そういう状況でもうまく使いたいという話です。ただDropbox型のものはデータロストしてもユーザの手元のマスターデータと同期しているだけだから、Dropbox側が壊れたってデータがなくなるわけじゃないんだよなぁ。だからちょっとくらいロストしてもいいって感じで運用してるんじゃないかと思う。

死にたくなったら電話して (李龍徳)

奇妙な若者が破滅に向かって進んで行く本。なんかスゴイね。スゴイすぎる。こういう小説もあるんだな、と思った。文章力の高さは感じさせる。セリフが多い。というかほとんどセリフだけしかない。しかし買った車はどうなったんだこれ。そのへんはあまり意味がわからなかった。そこここに俺には読めない何かがあるんだろうな。

いい読書をしたな、という感想も思うけど、もう一度読むかというと読まないだろうね。爽快感はないし、読後の人生に何かが残るかっていうと、何も残らない。ただいい読書をしたという感触だけが残っている。