トップ 追記

カイハツニッキ


2009-06-09 [長年日記]

_ [ソフトウェア] iterator + erase

外に書ける恥ずかしいミスをしていたのでたまには日記更新です。

といいつつ、stl使い始めによくある話で:

for (some_map::iterator it = some_map.begin(); it != some_map.end(); it++) {
  some_map.erase(it->first);
}

iteratorで回しながらstd::map::erase()(vectorでもなんでもいいんですが)を呼ぶと、そのタイミングでiteratorのポインタ先が死ぬので、次のit++でこけますね、というはなしでした。Flareで1カ所思わず書いちゃってたところがあって、且つマイナーなコードパスなんで気付いてませんでした。恥ずかし。

っていうかerase()は次のiteratorを返してほしいなー(ときっとみんな思ってるに違いない、というかぐぐると思ってるようだ)。


2009-04-01 [長年日記]

_ [イベント] 第17回オープンソーステクノロジー勉強会(今回はDebianのおはなし)

ちょっと間が空いてしまいましたが、17回目の勉強会がGREEオフィスセミナールームで開催されます。

今回はやまねさんと岩松さんをお迎えして、GREEもものすごい勢いでお世話になっているDebianのお話をお伺いしちゃいます。Debianに興味のあるかたもないかたも(これから使いましょう)ぜひぜひお越し下さいっ。

詳細とお申し込みはこちらからおねがいします。

_ [イベント] QCon Tokyo 2009

とある縁でQCon Tokyo 2009というところでお話をさせていただくことになりました。

ケーススタディのトラックなのですが、スケーラビリティ云々の話は割とあちこちで同じような内容をお伺いするようになってきた気がするので、またちょっと今までとは違う内容のお話ができればと思っています。

というか、僕のセッションはどうでもいいとして、Amazonのevangelistな方がいらしたり、SpringのCreatorな方がいらしたり、そしてMatzさんもいらっしゃいますので、実は結構すごいイベントな気がします。

ということでせんでんせんでんー。


2009-02-24 [長年日記]

_ [イベント] Key Value Store勉強会

すっごいひさびさになってしまいました、すいません。まだ何人かの方は読んでいるのでは、という期待と共に更新してみます。

title通り、先日(2009/02/20)Key Value Store勉強会をkzkさん、ichii386moriyoshiと一緒に開催させていただきました、というか僕はほとんど運営できていないので、ちょこっとお話させていただきました、というのが正解です。

思えば、第16回のGREE オープンソーステクノロジー勉強会の懇親会でkzkさんやmoriyoshiと「key-valueな勉強会やったら面白くない?」とお話していて、楽天技研の方からメールいただいたのをきっかけにゆるゆると準備を始めてichii386も巻き込んで(超感謝!)、おかげさまで超豪華なかたがたのお話を聞ける濃い勉強会になってとても嬉しいです。個人的にはtxまわりのお話が一番楽しかったです、が、どのお話もすごかったー。ちなみにとても素敵なまとめはこちらとかに!やっぱり割といつでも使えるセミナールームがあるとこういう勉強会が割とお気軽に開催できていいものですね。よかったよかった。設備ももうちょっと増強しよう:)

で、一応僕もFlareのお話をさせていただいたのですが(いや、当初は予定無かったんですが、なぜか)、5時間に及ぶ(18:00開始で終わったの23:00...)長丁場の最後ということでみなさんさすがにお疲れになってるだろう + 結構内容重複しちゃうかな、ということでこういうのもあるよ、くらい思ってもらえれば、ということですごい軽い内容にしちゃいました。が、今にして思えばそんなこと考えずにもうちょっと深めな内容にすればよかったような気もします。といってもあの場にいらした方々が深いと思えるような話はもともとできないんですが:-P

一応プレゼン資料はこちらです。

ということで、改めましてお話いただいた皆様、そしていらしていただいた皆様に感謝感謝でございます。またなんか楽しいテーマで勉強会したいですねー。

_ [ソフトウェア] 分散ストレージサーバFlare

1年ちょっと前にC++の復習というか練習で書いたFlaredを、また気が向いて作り直したFlareを最近暇を見つけてはアップデートしています。

凄腕な方々がKey Valueストレージサーバを書かれているところでなんで今更、というのは当然思うところではあるのですが、さすがに全く同じものはありませんし(一番近いのはKai、かな?)、一応曲がりなりにも他にはない特徴もあったりはします。ただしそれらは「良さ」ということではない(悪いわけでもないですが)のが昨今のKey Value Storeなソフトウェアの面白いところだったりもします。

例えば、single-master + single-slaveで十分、という要件がある場合はFlareよりTTがおすすめなわけです。Flareはパフォーマンスにそこまでこだわっていないので、1サーバのパフォーマンスを最大まで引出したい、という場合にはTTを選ぶのがおそらく正解で、SSDを使っていたりする場合ななおさらです。

一方、ソフトウェアのパフォーマンスがいくら優れていても、データサイズがどうにも大きい、あるいはひたすらwriteが多い、というような環境では、(ソフトウェアが結構がんばっても)どうしてもHDDのシーク速度で律速してしまう、というユースケースはやはり存在します。そういった場合にはFlareの方が使い勝手がよいかな...と思います、今のところ。

先ほど、Flareはそこまでパフォーマンスにこだわっていない、と書きましたがこれには2つの理由があって、1つはGREEでのユースケースをあれこれ考えると、サーバ1台で2〜3万qpsも出れば十分で、それ以上のqueryがくる場合には往々にしてそもそもwriteがキツかったりするのでmasterを分けたくなっているだろう、というところです(そうじゃない場合でもslaveを1〜2台足せばまぁ十分でしょうし)。そして2つめは、TCがステキすぎるので、そこまでFlareで頑張らなくてもそこそこパフォーマンスが出てしまった、ということだったりもします。

などなど書き始めるといろいろありますが、とりあえずFlareは「とりあえず今のところ一番使いやすい、そして安心して使えるKey Valueストレージサーバ」というところがコンセプトかな、と思っていますのでまた時間を見つけてちょこちょこ書いていきたいと思います。

で、ご興味あるかたはぜひぜひお試しください。ご意見等もお待ちしておりますm(_ _)m


2008-09-18 [長年日記]

_ [雑記] GREEからのメールがスパム判定されちゃうよ@gmail

という悲しい事態になっている今日この頃です。ということで、第15回オープンソーステクノロジー勉強会に申し込んだのにメールが届かない!という方はお手数ですが迷惑メールフォルダをチェックしていただけるとうれしいですm(_ _)m

_ [ソフトウェア] PHP libmemcached

PHP libmemcachedができてる!

_ [ソフトウェア] PHP Skype API Wrapper class

自分専用に書いてたらやっぱりつっこみいっぱいだった!

githubにソースあるんで、適当にforkしてくださいそしてpull requestお待ちしております(とかいう)。


2008-08-28 [長年日記]

_ [雑記] 大規模サイトの舞台裏〜な記事について

2008/08/28にITmedia(のDevIT)に掲載された大規模SNS実現のためのGREEのアプローチの記事は、お気づきの方もいらっしゃるかもしれませんが、2006/09にオープンソースマガジンに掲載された記事です。

この記事掲載にあたってITmediaの担当者の方からご連絡をいただいて、改めまして(恥ずかしい思いをしながら、というか自分の書いた記事を読み返すといつも恥ずかしい)読み返してみたのですが、うーん、最新!というわけではないのですが、今現在でも間違った、あるいは役に立たない内容でもないなぁ、と複雑な思いをしたりしました。もう少し正確に書けば「今だったらもっと書けることはありますが、当時書いてあったことが今役に立たないかというとそんなことはない」といったところです。そして、おそらく山の賑わいにかろうじてなる程度の枯れ木扱いだろうと思ってほぼそのままの形での掲載して頂いているのですが、ITmediaエンタープライズのトップにでかでかと出ていて(2008/08/28 21:00)衝撃を受けました。

一方で、記事をみながら「2年経って何がかわっただろう」ということを思うわけですが、いろいろ変わったような、意外に変わっていないような、不思議な気分です。で、例えば今同じお題でゼロから書いたらどんなトピックがあるだろう、と考えると、まず上述の記事に書いたようなことはいずれにせよ出てくると思います。加えてここ数年で一気にコモディティ化してきているようなところで(概念や実装も当時からあるわけですが):

  • 仮想化技術についてはさらに実用的になっているのでそのあたりのおはなし
  • Hadoopに代表される分散処理と分散ストレージとかのおはなし(そういえばmemcache周りも記事ではちゃんとふれてませんでしたね...いくない)
  • 機械学習とかのおはなし
  • いろいろ絡みますが、検索まわりのおはなし
  • (まぁがんばるなら)MySQL NDBとかのおはなし - もうちょっと待ちたいけど

かなぁ、と深く考えずに思いついてみました。このあたりはもう1〜2年かけてさらに実装が(パフォーマンスの面でも、導入のし易さの面でも)進化していって、ドキュメントも増えてきて、さらに広く使われるのではなかろうかと思います(今使われてないとかそういう話ではないです、念のため)。

これ以外にも、やっぱり2年であたらしく出てきたものも多いですし、うーん、ほんとに楽しい時代ですね!願わくば、こういったソフトウェアの進化の一助となれるように、ちまちまとがんばっていきたいなー、と思います。がんばりましょー、おー!