Software Transactional Memo

STM関係のことをメモっていこうと思います。

ファントム、あるいは忖度

TL; DR; 「神輿は軽くてバカがいい」というのは文字面以上に誠実な上司と社員の信頼関係 大きい企業ではとにかく会議が多い。僕の務めている部署では意図して会議を減らしているのでかなりマシな部類ではあるものの、その減っている会議の中でもときおり大き…

大企業のデスマーチは何故止められないのか

以下ポエム。 TL;DR; 悪者が居ない組織でも無能で勤勉な会議体は未知の力学で動き続けるのだ。 一般に、大企業に就職するのは簡単ではない。知名度がある分、エントリーしてくる人間の数も多く自然と競争が熾烈になる。その熾烈な競争を勝ち残った分、そりゃ…

分散プログラミングモデルおよびデザインパターンの考察 その5

これまでプログラミングモデルのプの字もなかったので申し訳程度にプログラミングモデルの話をする。 分散して特定のアプリを動かしたいだけなら、例えばbitcoinをマイニングするASICクラスタに対して特定のプログラミングモデルは必要とされない。そのよう…

分散プログラミングモデルおよびデザインパターンの考察 その4

引き続き分散システムのデザインパターンの話をしていく。例によって適切な名前を見つけられなかった場合にはその場で適当に名づけているので、ここに書いてある名称が技術レベルでの正式名称だとは思わず、正式名称を見つけたらそっとコメント欄で教えてく…

分散プログラミングモデルおよびデザインパターンの考察 その3

昨日に引き続いて分散システムのデザインパターンについて書いていきたい。 だがそれ以前に故障モデルに関する前提を忘れてはならない。人によって様々な方針があるが、個人的には分散システムの世界において意識しなくてはならない故障モデルは4つだと考え…

分散プログラミングモデルおよびデザインパターンの考察 その2

前回の記事では 分散システムのデザインパターンと銘打っておきながら並列・並行システムの分野の話からクラウド環境へとこじつける事を「分散システム」と呼んだ事。 システム全体を決定づけるわけでもない通信パターン上の選択肢の一部を切り出してシステ…

分散プログラミングモデルおよびデザインパターンの考察 その1

Yahooの技術者が書いたブログ techblog.yahoo.co.jp が悪い方向に期待を裏切ってくれたのに対し、 @kuenishi さんがまとまった文章 kuenishi.hatenadiary.jp を書いていたので、僕も2番煎じぐらいでまとまった文章を書く。始めに断っておくと、分散システム…

トランザクションをSerializableにする4つの方法

ビッグデータ基盤勉強会でお話する機会をもらったので、トランザクションでSerializable分離レベルを選択した際に裏で行われている事を説明してみました。 自分の研究らしいこともかければ最高だったのですが、あいにく手頃なネタがありませんでした。 トラ…

STMの設計と進化

GREE Tech Talkで発表してきました。楽しい発表だった。25分でドラが鳴って終了してしまった…。 また機会が有ったらホイホイ行って発表したいです。およそ200人弱居たんじゃないかという会場だった。 STMの設計と進化 View more presentations or Upload your…

STMについてサーベイした乱雑なメモ

http://www.amazon.co.jp/dp/1608452352を読んで自分の気になった所を読みながらメモした物を置いておく。抄訳ほどすら訳していない。 発表のプロットに使うまとめ。論文の参照番号がそのまま埋め込まれてるのは酷いのでそのうち直すかも。気になる人は本を…

ビッグデータの何が許せるか

高木浩光さんが「自分が気持ち悪いと感じた」事はそのまま表明しろと書いていたけれど、自分の中に何を気持ち悪いと感じるかの基準が無くて数日もんにょりしていた。 今日になって「その収集を人力で代行していた場合に許せるか」で考えると僕の感覚はおよそ…

セマンティクスは全人類を救う

この記事は安ワインを煽りながら勢いで書いたので一切の正しさを保証しません。 分散システムで良く出る課題として障害耐性がある。 性能を増やしたい→台数を増やせばいい→一台でも壊れたら全体が死ぬので脆弱になった→一台死んだぐらいで全体が死なないよう…

STMのPrivatization

Privatizeって和訳すると民営化だから全く意味が分からなかったけど最近意味がわかってきた。 PrivatizeというのはSTMが監視対象にしていたグローバルなデータを特定のスレッド固有のデータとして所有権を戻す操作の事を言う。STMの弾きだした結果に基づいて…

HTMはメモリ管理の為に生まれてきたんだよ! ΩΩ<な、なんだってー

HTMの第一人者にして、obstruction-freeやwait-freeなどの厳密な定義や、CAS命令の数学的な意義を証明し、The Art of Multiprocessor Programmingの著者で、ロックフリーでもSTMでも八面六臂の活躍をしているMaurice Herlihy先生が連名している最近の論文を…

最近の若者は果たして軟弱か

エジプトの壁画にさえ「最近の若者は云々」と小言が書かれているという話は有名で 多くの場合それは年長者による若さへの妬みの表れであって、実質気のせいという解釈はある。 大まかに見ると平均的な知能は昔から変わらず上がっているという調査報告もある…

情報科学若手の会に参加してきました

9/15から静岡の伊東で開催された情報科学若手の会に参加してきました。 もともと女帝や@did2memo君や温泉が目当てで行ったのですが、無事それらの目的も果たせまして、ついでに日本を代表する競技プログラマーの一人にLock-freeを布教できたのは願ってもない…

python-memcacheへの不満

STMの話題では無いのだけれど自分がKVS上でのSTMというものをPythonで作りながら感じた事 pip install python-memcacheで入る、純Python実装のmemcacheクライアントライブラリ memcachedクライアントライブラリは他にも幾つか有ったのだけれどことごとく要件…

簡単に説明する とは

人に説明を求める場合、より詳しい人に説明を願いたいのは自然な事だけどそんな人たちは詳しさ故に難解な説明をしがち。 例えば「象って何?」と聞かれた場合に 「大きくて鼻の長い動物だよ」と答えるべきだった所を 「アフリカやアジアに済むゾウ目の動物の…

STMにまつわる用語メモ(すごく自信ない)

Strongly/Weakly Atomic トランザクション中で読み書きしている値が非トランザクションから読みだしても同じ値を読めるかどうか、という物。HTM(Hardware Transactional Memory)はキャッシュラインの拡張なだけあって、非トランザクションからでも普通に読み…

ClojureのSTM

Software Transactional Memory Should Not Be Obstruction-Free この論文がClojureのSTMの基礎になっているらしい。 Benchmarking Contention Management Strategies in Clojure’s Software Transactional Memory Implementation という修士論文でClojureの…

Transactional Memoryの本

当にぐぐってて見つけたのがこれ。STMの各手法が明快な特徴表と大きな図で表されてて面白い。 http://www.scribd.com/doc/6467715/Transactional-Memory-book こっちがそれの第二版らしい http://courses.cs.vt.edu/~cs5204/fall10-kafura-BB/Papers/Transac…

HTM,HybridTM,STMを話してるスライド

オムニバス形式で話したようでHTM,STMはIntelの中の人っぽい資料。 HybridTMの説明の仕方が各手法の利点欠点が上手くまとまってて好印象。自分の資料にもこういうまとめ方をしたいところ。 http://csl.stanford.edu/~christos/publications/2007.tm_tutorial…