タグ

ブックマーク / frsyuki.hatenablog.com (15)

  • 続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi

    いつも心に冪等性。古橋です。 リトライと冪等性のデザインパターンの完結編です。 だいぶ間が空いてしまいましたが! 最後に冪等性を実装する汎用的な実装手法についてまとめていきます。 パターン6:操作ログとリクエストIDでUPDATEを冪等にする 同じIDで識別される値がUPDATEされる場合、つまりmutableである値の管理は、一般に冪等に行うのが難しい。 例えば、ユーザーごとに「最後に購入したアイテム」を更新する操作を考えてみると: 1. ユーザーAが最後に購入したアイテムをアイテム1に変更する(UPDATE) 2. ユーザーAが最後に購入したアイテムをアイテム2に変更する(UPDATE) この操作に何の対策もなくリトライを実装した場合、後続のUPDATE処理の結果を古い内容で上書きしてしまう可能性がある: 1. ユーザーAが最後に購入したアイテムをアイテム1に変更する(UPDATE)→

    続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi
    kozai
    kozai 2017/08/10
  • イベントログ収集ツール fluent リリース! - Blog by Sadayuki Furuhashi

    こんにちは。Treasure Data の古橋です^^; 先日の Treasure Data, Inc. 壮行会 で、イベントログ収集ツール fluent をリリースしました! Fluent event collector fluent は syslogd のようなツールで、イベントログの転送や集約をするためのコンパクトなツールです。 ただ syslogd とは異なり、ログメッセージに テキストではなく JSON オブジェクト を使います。また プラグインアーキテクチャ を採用しており、ログの入力元や出力先を簡単に追加できます。 Twitterでも話題沸騰中です:イベントログ収集ツール #fluent 周りの最近の話題 背景 「ログの解析」は、Webサービスの品質向上のために非常に重要です。Apacheのアクセスログだけに限らず、アプリケーションからユーザの性別や年齢などの詳しい情報を集め

    イベントログ収集ツール fluent リリース! - Blog by Sadayuki Furuhashi
    kozai
    kozai 2012/02/04
  • 進化するMessagePackプロジェクト - Webサイトリニューアル - Blog by Sadayuki Furuhashi

    MessagePack Project のWebサイトをリニューアルしました! 新しいURLは、http://msgpack.org/ です。 シンプルなイメージから若干趣を変え、完成度が高くてリッチな印象を重視しました ;-) 文章ではシリアライズの速度に加えて、RPCの意欲的な設計を強調しています。 なお、Twitterのハッシュタグは #msgpack です。ぜひツイートしてください^^; 実は先日、MessagePackプロジェクトについて StumbleUpon の研究開発チームの方々にプレゼンテーションしてきました。(参考:FacebookとStumbleUponの方がTwitterよりトラフィックを生んでいる) 写真を一枚^^; さらに、LuceneやHadoop開発者であり、Avroの開発者でもある Doug Cutting 氏(Wikipedia!)ともディスカッションす

    進化するMessagePackプロジェクト - Webサイトリニューアル - Blog by Sadayuki Furuhashi
    kozai
    kozai 2010/06/24
  • kumofsのメーリングリストができました - Blog by Sadayuki Furuhashi

    できました。興味のある方はぜひご参加ください^^; kumofs-jaに参加 メール: このグループにアクセス kumofsのウェブサイトも更新しています。管理とチューニングの項目を追加しました。 The Kumofs Project 英語英語のメーリングリストもあります。お気軽にどうぞ。 Subscribe to kumofs Email: Visit this group 経緯 kumofsってML的なコミュニティは無しでtwitterだけで行くのかな?途中からはじめようと思った人が状況を追えたりするようなモノはあったほうがいいかなというのが昨日、話題になった。 http://twitter.com/masahif2/status/14430791031 @frsyuki オープンソースのプロダクツは、開発体制やコミュニティの存在が選択に当たっては重要だよねって話をしてました。 h

    kozai
    kozai 2010/05/24
  • kumofs-0.4.0リリース - CAS操作をサポート - Blog by Sadayuki Furuhashi

    新たにCAS(Compare-And-Swap)をサポートした、kumofs-0.4.0をリリースしました。 memcachedのテキストプロトコルで、getsコマンドとcasコマンドを新たに使うことができます。 後方互換性は保たれています*1。新機能を利用するには、kumo-gatewayとkumo-serverを更新してください。 CASとは? CAS(Wikipedia)は Compare-And-Swap の略で、ある値を取得したあと、その値が別のプロセスから更新されていなければ(Compare)変更を適用する(Swap)という操作を、アトミックに実行することができます。 CASを利用することで、kumofs上にキューやカウンタ、連想配列、ロックなどを実装することが可能になります。 例えば kumofs でキューを実現する擬似コードは、次のようになります: KEY = "myque

    kumofs-0.4.0リリース - CAS操作をサポート - Blog by Sadayuki Furuhashi
    kozai
    kozai 2010/05/15
  • kumofs-0.3.6リリース - kumo-gatewayバグフィックス - Blog by Sadayuki Furuhashi

    kumofs-0.3.6をリリースしました。 kumo-gatewayのバグフィックスです。 一部のmemcachedクライアントライブラリでkumo-gatweayにアクセスすると、kumo-gatewayが落ちる可能性があったのを修正しました。

    kumofs-0.3.6リリース - kumo-gatewayバグフィックス - Blog by Sadayuki Furuhashi
    kozai
    kozai 2010/05/10
  • 並列メッセージングフレームワーク「MessagePack-RPC for C++」リリース - Blog by Sadayuki Furuhashi

    分散KVS kumofs のコードは、全体で約2万行です。 そのうち、ネットワークI/Oやプロトコルに関するコードは約1万行で、全体の約半分を占めています。 並列イベント駆動I/Oフレームワーク「mpio」リリース ネットワークアプリケーションを実装する上で、もっとも大きな障壁は、ネットワークI/Oとプロトコルです。 では、それが両方ともフレームワークでサポートされ、コードを書く必要が無くなったらどうでしょうか? 54行で簡単な分散KVSを実装したり、140行で分散リアルタイム検索エンジンを実装することができます。すなわち、インデックス作成サーバ、検索サーバ、DBサーバなど、多数のサーバが連携し、スケールアウトの恩恵を得ることができるネットワークアプリケーションを、1台のホスト上で動作する並列アプリケーションとほぼ同じように書くことができます。 実装上の問題から解放されれば、並列性や耐障害

    並列メッセージングフレームワーク「MessagePack-RPC for C++」リリース - Blog by Sadayuki Furuhashi
    kozai
    kozai 2010/05/08
  • ニコニコ動画、分散Key-valueストア「kumofs」を導入 - Blog by Sadayuki Furuhashi

    つい先日、ニコニコ動画モバイルの一部でkumofsを導入した というお話を伺いました。 まだまだ利用は一部でしか始まっていないようですが、これからデータを取りながら運用実績を作っていきたいとのことでした。 kumofsは、バージョン0.3.3でflagsの保存に対応し、バージョン0.3.5でexpireに対応しています。バージョン0.3.4では、Javaクライアントとの互換性を改善しています。 これらの機能の改善に加えて、運用実績やノウハウの蓄積も、オープンソースソフトウェアとして重要な要素の1つと言えます。 kumofs関連資料まとめ や #kumofs@twitter にも、ぜひ注目してみてください^^; kumofsは既に、写真ストレージサービス Ficia(フィシア)での運用実績があります。(ITproニュース) ドワンゴ 研究開発ブログ 分散Key-Valueストア「kumofs

    ニコニコ動画、分散Key-valueストア「kumofs」を導入 - Blog by Sadayuki Furuhashi
    kozai
    kozai 2010/05/07
  • hbstudy#10「ずばり動く!kumofs と ずばり動かないケース」 - Blog by Sadayuki Furuhashi

    ずばり動く!kumofs と ずばり動かないケース と題して、hbstudy#10 で発表してきました。 序盤の趣旨は丸レク2010と共通しながらも、別の側面とストーリーから紹介してみました。 また今回は、列指向DBなどの他の分散データストアとの違いについても紹介しました。 kumofsは Dynamo で言うところの Eventually Consistent ではないのですが、今回は Eventually Consistent でポイントとなる Vector Clock についても少し紹介しています。 kumofsは double-hash-spaceという独自のアルゴリズムを使うことで、ノード増減時の一貫性を保っています。Vector Clock で問題となる、データの新旧が「比較不能」になることがないため、アプリケーションでマージ処理を実装する必要がありません。 目次 kumofs

    hbstudy#10「ずばり動く!kumofs と ずばり動かないケース」 - Blog by Sadayuki Furuhashi
    kozai
    kozai 2010/04/26
  • kumofsから学ぶNot only SQLの技術 - Blog by Sadayuki Furuhashi

    NoSQLを知る〜kumofsから学ぶNot only SQL技術 と題して、Developers Summit 2010で発表しました。 twitterの#devsumi2010 kumofsを見る限りでは大変ご好評をいただいたようで、ひとまずほっとしています。 プレゼンテーションの資料を公開しました。内容はどれも同じですが、クリックで進むムービー版がオススメです。 クリックで進むムービー(クリック/矢印キーで進む) PDF Keynoteファイル(Keynote '09が必要) NoSQLを知るView more presentations from frsyuki. Consistent Hashingとdouble-hash-spaceアルゴリズムの紹介は、68ページ以降にあります。 第101回 カーネル読書会 2月25日に楽天タワーで行われるカーネル読書会でも、kumofs関連

    kozai
    kozai 2010/02/21
  • kumofsはなぜ落ちないか - Blog by Sadayuki Furuhashi

    前回は、kumofsはなぜスケールするかということについて紹介しました。その中で最後に、耐障害性もスケーラビリティにとって重要だーと述べました。 そこで今回は、kumofsはなぜ落ちないのか、なぜ耐障害性が高いと言えるのかーということについて紹介したいと思います。 分散システムはテストが難しいことに定評がありますが(たぶん^^;)、その中でも耐障害性の検証は最上級に困難な部類です。 耐障害性は実際のところ、アルゴリズムの設計以前に実装上のバグが大きく影響するので、設計上は耐障害性が高いと言っていても、実際に使ってみると良く止まるという話はありがちな話です。(個人で開発している場合など、開発リソースが小さい場合はなおさら) そのため耐障害性の高いシステムを実現するためには、実装しやすくバグが入り込みにくい設計も重要かなーと思います(もちろん、アルゴリズムも重要ですが)。 分散システムには複雑

    kumofsはなぜ落ちないか - Blog by Sadayuki Furuhashi
    kozai
    kozai 2010/02/09
  • kumofs関連資料まとめ - Blog by Sadayuki Furuhashi

    随時更新予定。 ツールなど 2010-01-08 kumofsの死活監視はこんな感じでNagiosでやってます - (ひ)メモ 検討と検証 2010-04-01 kumofsに10MBのvalueを入れるとどうなるか実験してみた - sdyuki-devel 2010-02-24 KVS(NoSQL)のまとめと「これから」の設計手法 - どっかのBlogの前置きのような 2010-02-01 kumofs その4・速度比較してみた - とあるWEBプログラマの軌跡(仮) 設計とアーキテクチャ 2010-04-26 hbstudy#10「ずばり動く!kumofs と ずばり動かないケース」 2010-04-25 丸レク2010「分散Key-valueストアkumofsの思想と設計」 2010-02-09 kumofsはなぜ落ちないか 2010-01-26 kumofsはなぜスケールするか 2

    kozai
    kozai 2010/01/17
  • 『クラウドの技術』 - Blog by Sadayuki Furuhashi

    さんや首藤さんにお誘いいただいて、コラムの執筆を担当させていただきました。 内容はkumofsについて、特に全体のアーキテクチャと耐障害性についての技術解説です。 『クラウドの技術』は、クラウド関連の要素技術について丁寧にまとめられていることが人気を呼んだ末に、今では入手困難となってしまったという噂の UNIX Magazine 2009年 4月号 の特集を再編集し、さらに多くの新しい記事を加えたものになっています。 目次は以下の通りです: [最新・クラウドプレイヤーたちのサービス] ・Windows Azureの世界(丸山不二夫) ・Windows Azure Tableの概要(丸山不二夫) ・Google App Engine(中田秀基) ・Amazon Web Services(浦直彦) ・Amazon Web Servicesを取り巻く技術とサービス(浦直彦) ・富士通のト

    『クラウドの技術』 - Blog by Sadayuki Furuhashi
    kozai
    kozai 2009/11/07
  • Interopクラウドコン優勝は「えとらぼ」分散key-valueストレージ kumofs - Blog by Sadayuki Furuhashi

    InteropTokyo 2009 クラウドコンピューティングコンペティション(通称クラウドコン)は、我等がえとらぼチームが優勝しました! 実行委員・StarBEDプロジェクト・IBMの皆様を始め関係者の皆様、ありがとうございました。 プレゼンテーションムービーとポスターとパンフレット*1を公開しました。 プレゼンムービー(マウスクリック/矢印キーで進む) PDF版 ポスター パンフレット *2 …どれも相当に気合いが入っているので、ぜひご覧ください^^ Ustream.tvの録画もあります(えとらぼチームはちょっと細切れですが) 途中で行ったデモは、StarBEDの45台の物理サーバーを使ってkumofsを動かして、ランダムで選んだノードを自動的にkill/再起動するスクリプトを走らせたものです。サーバーが落ちてもシステムは全然止まらないし、どのサーバーにも均等に負荷が分散されます。 時

    Interopクラウドコン優勝は「えとらぼ」分散key-valueストレージ kumofs - Blog by Sadayuki Furuhashi
  • いま分散システムが面白い理由 - Blog by Sadayuki Furuhashi

    最近 クラウド という単語が流行していますが、「大規模な計算資源を低コストで提供してくれるトコロがあるらしいので、自前で持っていた計算資源を委託しちゃえば運用する手間も知識も要らないし、そもそもサーバーを買う費用を省けちゃうから嬉しい」という発想に基づいているらしく、しかし技術的には 大規模な計算資源を低コストで構築する技術 がポイントでしょう。 大規模な計算資源をどうやって安く構築するか。 従来は、システムの能力を高めるためには、高性能・高機能(それゆえ高価な)マシンを導入するというスケールアップの手法が採られていたのだが、この手法では10倍に性能を上げるために、たとえば30倍のコストがかかるかもしれない。スケールアップと比べてスケールアウトでは、導入したコストにほぼ比例して、パフォーマンスの向上が見込める。 『UNIX magazine 2009年4月号』 p.31 *1 何百万円もす

    いま分散システムが面白い理由 - Blog by Sadayuki Furuhashi
    kozai
    kozai 2009/04/26
  • 1