2011-12-01から1ヶ月間の記事一覧

RubyとOS

Ruby使いとしてインフラまわりのお仕事をやっていると、RubyってOSに食い込んでないなーと思うことがよくある。 つまりPerlならPerlで書かれていて標準的にインストールされているスクリプトがいっぱいあるし、MySQLまわりでも腐るほどあるし、Unix!と言った…

、、、

YU-NOやるかー。

簡易EC2クライアント

ちょっとしたメタ情報を取るのにec2-api-toolsだと遅いし(JAVA_HOMEとかの設定も必要だし)、gemでライブラリをインストールするのもいやなので、rubyの標準ライブラリだけで簡易的なクライアントを作ってみた。*1 #!/usr/bin/env ruby require 'cgi' requi…

Murakumo - 分散型負荷分散での振り分けの平均化について

EC2

分散型内部DNSサーバ - Murakumo 0.3.8をひっそりとリリースしました。 画期的だと思うんですが、話題のわの字にも上りません。悲しいなぁ… 分散型負荷分散での振り分けの平均化について Murakumo 0.3.8では振り分けの新しいアルゴリズムとして、fix_by_src…

srandのデフォルトのシード

さらっと読むかぎり、/dev/urandomと時刻とpidと変数seedのアドレスをシードにいている模様。 S_ISCHRで何を判別しているんだろう? static VALUE random_seed() { static int n = 0; struct timeval tv; int fd; struct stat statbuf; int seed_len; BDIGIT…

重み付きランダム選択アルゴリズムを考えてみる

200回ぐらい回せば大体、Weightに従って分布してくる…と思う。 def wrr(addr_weights, n) addrs = [] ary = [] addr_weights.each do |a, w| w.times { ary << a } end ary = ary.sort_by{ rand } loop do addrs << ary.shift addrs.uniq! if addrs.size >= …

クックパッドの勉強会でMurakumoの話をしました

ゴシッププロトコルによる冗長化と負荷分散の検証 View more presentations from winebarrel 謝辞 懇親会で話しかけてくださった方々ありがとうございます。全力で懇親会を避けていた自分としては、あの手の懇親会での立ち位置が未だによくわかりません。マ…