タグ

ブックマーク / nyaxt.hatenadiary.org (4)

  • 2011-01-09

    ログ構造化ストレージをここ2ヶ月ほど作ってます。 単一ノード上で動作するKVSとしては競合実装よりずっと早い感じですが、あまりに差がつきすぎてなんか計測条件まちがえてる気もします。 具体的には、100万keyを10000回のトランザクションに分けてputするとこんなかんじ: _syncはトランザクションごとにfsyncした場合、syncなしはプログラム終了時にまとめてfsyncした場合。kyoto cabinet syncありは2時間では終わりませんでした。 自作実装の細かい性能数値はまだ秘密です。 kyoto cabinetと、bdbの評価コードをgistに上げておくので、なんかまずい事していたら指摘していただけるとありがたいです。 https://gist.github.com/771461 実装に興味があるひとはコメントとかメールください。 追記:HailDB(InnoDB fork

    2011-01-09
  • はやいTCPサーバの書き方 - nyaxtのPC作業ログ

    cagra高速化にあたってのノウハウを一部公開してみます。また明日校正/更新します。つっこみ待ちです。 select(2)の代わりにepoll_wait(2), kqueue, /dev/epoll等を使う 他に山ほど解説ページがあるので略 大量のディスクリプタを処理するようなサーバの場合、多少効果があるかもしれません。しかし、クライアント数が少ない場合、劇的な性能の向上は見込めないとおもいます。クライアント数が多い場合は、1セッション1スレッドなモデルではOS側のタスクスイッチングのオーバーヘッドが効いてくることも多いです。クライアント数を増やすには複数のセッションを1スレッドで処理できるようにすると良いです。実装にあたっては、non-blocking ioを活用すると効果的です。 TCP_NODELAYを設定する Nagleアルゴリズムをオフにします。多少応答性が良くなります。 これっ

    はやいTCPサーバの書き方 - nyaxtのPC作業ログ
  • 分散ストレージエンジンテクニカルデモ α版リリース

    概要 分散ストレージエンジンcagraのテクニカルデモ版です。 cagra概要についてはこちら:d:id:nyaxt:20080422 冗長性を持つ分散ハッシュテーブルを扱うことができます。ノードの動的追加/削除にも対応しています。(ただしノード削除後のputは一部未実装により不安定) 現時点の機能的にはmemcached + αな感じです。 ダウンロード http://static.nyaxtstep.com/cagra/nxfs-alpha-release.tar.gz hotfixだしました:d:id:nyaxt:20080427 随時アップデートしてるので最新版は: http://d.hatena.ne.jp/nyaxt/searchdiary?word=%2a%5bcagra%5d%5brelease%5d 動作環境 Mac OS X (Leopard) Linux 2.6 De

    分散ストレージエンジンテクニカルデモ α版リリース
  • [cagra] cagra: Reliable and Flexible Distributed Storage System

    やっと開発が一段落したのでお知らせ。frsyuki氏(id:viver)との共同開発作品。 1000speakers:2の3次会で二人でひたすら組んでいたアレです。 Trac: http://nyaxtstep.com/trac/nxfs 概要 cagraは手軽に構築できる分散ストレージシステムです。 memcachedの様な手軽さで、信頼性のある分散ストレージを構築できます。 機能/特徴 zeroconf 設定項目はコマンドラインパラメータに集約 UDP Multicastによる自動ノード検出 Large Data Support memcachedに比べ、大きなデータもきちんと取り扱う事ができます。 データごとのチェックサムを保持します。 数百G〜Terabyteスケールのデータもサポートする予定 可変信頼性 データに求める信頼性(レプリケーション数)をデータごとに設定することができま

    [cagra] cagra: Reliable and Flexible Distributed Storage System
  • 1