Entries from 2008-09-01 to 1 month

妄想はいずこも同じ

バッテリーで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 …