Entries from 2008-01-01 to 1 year

Q. 1GB の文字列を strlen するのに必要な時間は?

1GB の文字列を strlen するのに必要な時間は何秒でしょう? こういったものをぱっと予測できることは、最適化に取り組む上で必要かなぁ、と思ったので、自分の理解が正しいか確認するためにも、実測してみました。(以下、白地に白文字で書いてあるので、選…

妄想はいずこも同じ

バッテリーで8時間以上稼働し、1280x768の解像度のモニタを備え(タッチパネルならなお良し)、重量は1kg未満で、DOS版モバギのサイズと KBを両立し、802.11gとSDHCカードスロット/USB2.0ポートを内蔵し、H.264の動画を苦もなく再生できる……ってんなら、私にと…

Unified Buffer Cache

21世紀も始まってだいぶになるし Page Cache と Buffer Cache が異なる OS なんて絶滅しただろ、と思ってたんだけどなぁ。 HP-UX continues to store file data in both the buffer cache and the page cache, though it does avoid the extra of copying of…

std::string がテンプレートベースになったあたりの話

すみません、traits の定義を関数単位で特殊化するほうが楽なのではないか、ということですね。そういうことであれば、以下の例のように CRTP を使って traits を定義することになるかと思うのですが、・(仕様制定側の事情として) 当時の環境下でそこまで凝…

MySQL on SSD に二の足を踏んでいる理由

やってもいいかなとは思っているんだけど、複数の SSD で冗長構成を組んだとして、故障までの期間がポアソン分布するとされる HDD と異なり、ほぼ同時に書込回数制限を突破してエラーになりそうで怖いんだよなー。memcached みたいな使い方なら、隣接するア…

SQL の理想と現実

DBMS が十分に賢ければ、SQL のような抽象度の高い言語のほうが生産性が上がるんだろうけど、実際は、いろいろチューニングが必要だったり、あるいは、SQL 的な発想というものもの自体が、通常の手続き型プログラミング言語と異なっていてハードルだったり。…

グリーンITとメモリの消費電力

昨日、GREE Engineering (SAKURA インターネットさんの講演でグリーンITの話題が出ていた) の懇親会で、環境に優しい memcached サーバを構築するには古い CPU を捨てるべきかみたいな話を id:hyoshiok さんがしてて、それに「メモリの消費電力のが重要なの…

ストレージエンジンを書くにあたって知っているといいかもな知識

ってどのあたりなんだろ。マインドマップ的に。 たとえば memcached のストレージ書くなら、 I/O API p?(read|write)v, fsync async API? Memory Mapping API mmap, msync Multithreading pthread API various locks: mutex, rwlock, etc. あたりかなぁ。耐…

C++ で手軽に使えるテンプレートエンジン

Greasemetal 用のテンプレートエンジンがほしくなって、ちょっと探した範囲ではよさそうなのがなかったので自分で作ることに。とにかくクロスプラットフォームで組み込みが容易で、余計な機能をつけないのが目標。とりあえず、 <% title | html %> <% for (i…

Memcached Night in Tokyo #1 雑感

atomic incr の話 --enable-threads してたら atomic にならないんじゃないかなぁ。コード見ても該当部分にロックがなさそう mysql から memcached をいじる話 Facebook が使ってるのってこれじゃなかったかなぁ。別に実装したんでしたっけ。 http://tangent…

Q4M のバッチビルドメモ

準備 (mysqld のセットアップ) svn co http://kazuho.31tools.com/svn/q4m/util q4m-util mysql-ver-arch-opt-bin にバイナリを展開 同dir 以下について tmp/mysqld.pid, tmp/mysql.sock を使用するよう etc/my.cnf を設定 (bin|scripts)/mysql_install_db -…

MySQL でユニークキーからプライマリIDへ変換 (存在しない場合の追加しつつ) を1クエリで書く方法

たとえば、以下のような url テーブルから CREATE TABLE url ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, url VARCHAR(255) NOT NULL, UNIQUE KEY url (url) );primary id を (存在しない場合は URL を追加しつつ) 検索する場合、 INSERT INTO …

Linux で共有ライブラリをビルド&配布する際に気をつけること

Linux の共有ライブラリをリンクするためのハッシュテーブルは、従来、.hash というセクションに収められていたのが、CentOS 5.0 や Fedora Core 6 以降? といった新しい環境では、.gnu.hash という新しいセクションに収められるようになった。で、後者の環…

Q4M のバッチビルドコード書いた

mbuild.pl複数のコンパイルオプションで、それぞれ make して mysqld 立ち上げて test してバイナリディストリビューション作る。perl で書いて後悔。bash にすれば良かった。あとはどの環境向けに作るかだけど。 OS arch linux i686 linux x86_64 MacOS X i…

ZERO WIDTH SPACE を使って Unicode ステガノグラフィ

inspired by Yappoid:T​​​​​​K​​​​​S​​​​​​K​​​ かっこいい上のテキスト、一見 id:TKSK を褒めているいるようですが、実は別の人をほめています。下線のリンクが無いでしょ? ちなみに、以下の perl スクリプトを通すと、誰をほめているのかわか…

Q4M のビルドエラー

Can't build with libtool link error - Q4M - a Message Queue for MySQL | Google グループ のパッチで直るかも。バイナリ版もリリースするつもりではいますが。追記: linux (x86_64) の場合の -fpic 指定は最近の configure.in には入ってました。

MicroblogCon オワタ

http://soozy.org/index.cgi?MicroblogCon1 が終了しました。お越しいただいた皆さん、スピーカーの皆さん、ありがとうございました&おつかれさまでした&不手際がありましたら申し訳ございません *1。ありがとうございました。 *1:暑かったら申し訳ありま…

Sub::SingletonBuilder 作った

singleton における実装と制約の分離 (perl の場合) - kazuhoのメモ置き場 の話ですが、先日、Sub::SingletonBuilder なるモジュールを作って CPAN にアップロードしました。こんな感じで使います。 use Sub::SingletonBuilder; *dbh = build_singleton( sub…

Microblogcon は明後日水曜日 (8/27) 開催

http://soozy.org/index.cgi?MicroblogCon1 あと一人なら入れそうですね スピーカーの方々はよろしくお願いいたします m(__)m 懇親会の場所を抑えたので、直接いらっしゃる方はご参照ください

test

test

singleton における実装と制約の分離 (perl の場合)

何を singleton 化すべきかは状況によって変わることがあるので、singleton化を強制することになる「singleton class」は使うべきじゃないと思ってる。 Kazuho Oku on Twitter: "何を singleton 化すべきかは状況によって変わることがあるので、singleton化…

サーバデバッグのプチノウハウ

それまでは正常に動いていたサーバが、 ある瞬間からエラー -> file descriptor leak だんだんスラッシング -> memory leak 突然停止 -> deadlock 昨日はこれでうまくいった。 #open(2) 失敗時の errno をログに出してくれればいいのに、というのはさておき

Q4M 0.8 リリース

Q4M の 0.8 をリリースしました。 詳細: Kazuho at Work: Q4M adoption by Mixi, and the release of version 0.8

マイクロブログカンファレンスの定員を拡大しました

http://soozy.org/index.cgi?MicroblogCon130人。これでサイボウズ・ラボの max です。現在23-2人なので、あと9人は参加可能ですね。

8/27 にマイクロブログカンファレンスをやります

8/27 (水) にサイボウズ・ラボでマイクロブログカンファレンス#1 を開催します。マイクロブログのサービスおよびミドルウェア開発者の集いということで、Wassr や Mixi エコーの中の人の話が聞ける予定です。参加希望の方は、Wiki に名前の追記をお願いいた…

Re: mysql の server side prepared statement って速いの?

http://d.hatena.ne.jp/tokuhirom/20080807/1218080835 の件。id:tokuhirom さんが自分で気づいてたけど、ステートメントハンドルを使い回さないとメリットないです。で、使い回すようにすると、こんな感じになる。 $ perl mysql_sum.pl Benchmark: timing 5…

「サーバ/インフラを支える技術」読書メモ

「サーバ/インフラを支える技術」を頂いて、まだパラパラとめくった程度なんですが、おもしろいですね。現時点でなんとなく思ってることとか キャッシュ関連のところで ESI (Edge Side Includes) が出てくるかと思ったけど出てきてない? まだあまり利用例…

LVM メモ

PE の数 snapshot の書き換えログの単位は lvcreate -s -c 16 のように指定できる 最小 4KB - 最大 512KB

いや、まじで

お邪魔しました&勉強になりました&ありがとうございました m(__)m

Klab 入りたい

ぬれねずみになって現れた僕に Klab の人たちは 温かいお茶を 新しい本を まっさらなシャツを 恵んでくれた僕は 生まれ変わったら Klab に入りたい