タグ

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

  • いま分散システムが面白い理由 - Blog by Sadayuki Furuhashi

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

    いま分散システムが面白い理由 - Blog by Sadayuki Furuhashi
    sankaseki
    sankaseki 2009/04/03
    いま分散システムが面白い理由 - 古橋貞之の日記
  • マルチコア時代の高並列性IOアーキテクチャ Wavy - Blog by Sadayuki Furuhashi

    シングルスレッドではもう遅い。 以前にマルチコア時代の高速サーバーの実装で、「ネットワークIOはマルチスレッドで動かすが、その他の部分はシングルスレッドで動かす」というIOアーキテクチャの実装(mp::iothreads)を紹介しました。iothreadsはロジック部分をシングルスレッドで書けるため実装の手間を抑えることができ、ネットワークIOがボトルネックになるプログラムには特に適していると思われます。 しかし実際にiothreadsを使ってプログラムを書いてみると、非常に負荷が高い状況でシングルスレッドの部分の処理速度がボトルネックになってしまうことがありました。 そこでマルチコアCPUの性能を引き出すために、徹頭徹尾マルチスレッドで動かすIOアーキテクチャを実装してみました。 1つのスレッドが、ある時はepoll_wait()し、ある時はread(2)を行い、ある時はイベントを処理す

    マルチコア時代の高並列性IOアーキテクチャ Wavy - Blog by Sadayuki Furuhashi
    sankaseki
    sankaseki 2009/02/01
    マルチコア時代の高並列性IOアーキテクチャ Wavy - 古橋貞之の日記
  • poll/epoll/kqueueを任意に切り替えられるコード - Blog by Sadayuki Furuhashi

    ネットワークで通信するプログラムを書いていると、ファイルディスクリプタ(ネットワークならソケット)をselectやpollで監視して、パケットが届いたら何かする、ということが良くあります。 しかしselectやpollは、*BSD で kqueue・kevent を使ってみようで書かれているように、どうも遅いらしい。C10K問題が取りざたされている昨今、Linuxにはepoll、BSDにはkqueue、Solarisには/dev/pollというより高速な仕組みが用意されているのですが、epollを使ってしまうとLinuxでしか動かないし、kqueueで書くとBSDでしか動かない。 というわけで、epollもkqueueも同じインターフェースで使えて、#defineで簡単に中身を切り替えられると嬉しい、とは誰しも一度は思うはず。そうに違いない。 もちろん先人も同じことを考えており、libev

    poll/epoll/kqueueを任意に切り替えられるコード - Blog by Sadayuki Furuhashi
    sankaseki
    sankaseki 2008/06/10
    古橋貞之の日記 - poll/epoll/kqueueを任意に切り替えられるコード
  • Aerial(エアリアル) - Ajax/Cometの次を行く リアルタイム双方向RPC - Blog by Sadayuki Furuhashi

    JavaScript - サーバー間で双方向のRPC通信を行う技術は「Aerial」(エアリアル)という名前になりました*1。アイディアを出していただいた皆様、ありがとうございましたm(_ _)m Aerialは、通信にFlashを使い、JavaScriptとサーバープログラムとの間で双方向のRPC呼び出しを行う技術です。つまり、サーバー側からJavaScriptのメソッドを呼び出したり、逆にJavaScriptからサーバー側のプログラムを呼び出したりします。 サーバーから直接JavaScriptのコードを呼び出したり、逆にJavaScriptからサーバー側のメソッドを呼び出したりできるので、通信の内容を意識する必要がなく、バグの混入を抑えます。RPC成分入り! ライブラリを開発するときも、HTTPやブラウザ間の実装の違いを意識する必要も無く、ごく普通のTCP接続で通信を行うので、Come

    Aerial(エアリアル) - Ajax/Cometの次を行く リアルタイム双方向RPC - Blog by Sadayuki Furuhashi
    sankaseki
    sankaseki 2008/05/11
    Aerial(エアリアル) - Ajax/Cometの次を行く リアルタイム双方向RPC - 古橋貞之の日記
  • vimしか使えない - Blog by Sadayuki Furuhashi

    vimを使おう - ウノウラボ vimerとしては、こういう記事を見つけてしまうと黙っていられないわけです。vimerと言っても、私はhjklがどうしても慣れずに矢印キーを使ってしまう軟弱vimerですが。 そんなわけで、私もちょっとしたvimのtipsを紹介したいと思います。 私が使っているvimのバージョンはvim 7.0なので、vim 6.xでは動かない機能があるかもしれません(特に補完のあたり)。そう言う場合は、vim 7.0をコンパイルして入れましょう。(そのときはvimshellのパッチを是非…vimshellはvim>7.0-0には当たらないので注意) バックアップファイルの保存先 まずは地味なところから。 vimでファイルを編集すると、そのファイルと同じディレクトリに「~」が末尾に付いたバックアップファイルと、同じように「.swp」が付いたファイルが作られますが、これがなか

    vimしか使えない - Blog by Sadayuki Furuhashi
    sankaseki
    sankaseki 2008/05/10
    古橋貞之の日記 - vimしか使えない
  • Partty!.org始めました - みんなでペアプロできるサービス - Blog by Sadayuki Furuhashi

    今操作しているターミナルを共有できるサービスPartty!.orgを始めました。 Partty!.org ソースコード ソースコード@CodeRepos Partty!.orgソフトウェアを使ってシェルを起動すると、Webブラウザやtelnetコマンドを使って、その操作の様子が見られるようになります。パスワードを入力すれば、そのまま操作することもできます。 操作の様子は録画されているので、後から再生することができます。↑このようにブログに貼り付けることもできます。 ペアプログラミング、グループプログラミングに CUIアプリケーションのデモンストレーションに ペアプログラミングにはぴったりです。同じディスプレイをのぞき込んだり、二人が同じ場所に並んでいる必要もありません。「ちょっとコレ見て!」とPartty!.orgのURLを送るだけで、とても気軽に始められます。 とりあえず録画してブログに

    Partty!.org始めました - みんなでペアプロできるサービス - Blog by Sadayuki Furuhashi
    sankaseki
    sankaseki 2008/03/15
    Partty!.org始めました - 古橋貞之の日記
  • Flex Terminal + Telnet - Blog by Sadayuki Furuhashi

    ちまちまと改良を続けているFlexターミナルエミュレータですが、オープンソースのFlex 3.0がリリースされた記念でちょっと宣伝します。 インターフェイスをしっかり作ったので、ライブラリとして使いやすくなりました。 マルチバイト文字の扱いを割とまじめに実装しました。UTF-8、EUC-JP、Shift_JISが使えます。実行中にエンコーディングを変えられます。 screenでもvimでもエスケープシーケンスの塊でも、まともに動くようになりました。 ウィンドウサイズを変えられるようになりました。 ANSIカラーを変えられるようになりました。 デモ: http://syuki.skr.jp/files/dhatena/20080228/FxTerm.flv (はてなに貼り付けるとあまりに小さい…右クリック→拡大するといい感じです) ソースコードはCodeRepos:/lang/actions

    sankaseki
    sankaseki 2008/03/08
    Flex Terminal + Telnet - 古橋貞之の日記
  • 1