Saturday, 8 May 2010

Hadoop

Cassandra を読むつもりんだったけど、Hadoop を読んだら、意外に古臭い実装。java.nio, java.concurrency がない時から書いたわけだから仕方ない。Generic/Iterator も、ほとんどないしね。

なので、今日は client/server 間のRPCしか読めませんでした。もう少し早く読めるかと思ったが無理だったか。

 while(true) {
  in.read(lengthBuffer);
  if (!version) {
    version();
    version = true;
    continue;
  }
  if (!header) {
    header();
    header = true;
    continue;
  }
  data();
 }

みたいな実直なコードでなかなか良いです。でも、Cassandra から読んだ方が良かったかな。

RPCのretryの実装とかが面白かったかも。

プロセス多いってのは、そうかも。プロセス4つ。Client でも2スレッド、Serverだと10スレッド以上あがるっぽい。いろいろTuning した結果でしょう。

No comments: