狠狠撸

狠狠撸Share a Scribd company logo
node-handlersocket
https://github.com/koichik/node-handlersocket

                  @koichik
        http://d.hatena.ne.jp/koichik/
宣伝

? Nodeの本を書いてます
  Node
 ? @atsuya @bad_at_math @Jxck_ @KOBA789
  @koichik @masahiroh @meso @nsyee @yssk22
? 発売は7月かなぁ
 ? 著者レビューと初校を並行処理中
 ? 少々お疲れ気味
 ? 励ましのツイートを!!
HandlerSocket Plugin

? MySQLをNoSQLのようにアクセス可能に
  MySQL NoSQL
  してくれる
? 詳しくは本日B-3の資料を!
         SQL Client   HandlerSocket
                         Client

                                      SQLを通さない


                  MySQL

         SQL layer    HandlerSocket
            ストレージエンジン
HandlerSocketクライアント

? libhsclient
  ? C++のクライアントライブラリ
? Perl, Ruby, PHP, etc のバインディング
 Perl   Ruby       PHP      etc


          libhsclient




                         HandlerSocket
                            MySQL
HandlerSocketクライアント

? プロトコルが公開されている
? 様々なネイティブ実装
  ? Python, PHP, Java, Scala

 Perl   Ruby       PHP      etc
                                         Python   Java
          libhsclient




                         HandlerSocket   プロトコル公開
                            MySQL
node-handlersocket

? Node上で動くJavaScriptによる
  Node    JavaScript
 HandlerSocketクライアント


 Perl   Ruby       PHP      etc       node-
                                   handlersocket
                                                   Python   Java
          libhsclient               JavaScript




                         HandlerSocket             プロトコル公開
                            MySQL
node-handlersocketの特徴

? Pure JavaScript
? ノンブロッキングI/O
? パイプライニングフルサポート
ブロッキング
         クライアント   HandlerSocket


execute_single



           ブロック
ノンブロッキング
       node-
                    HandlerSocket
    handlersocket


    find

 ブロック
  しない




 コール
 バック
ブロッキング+パイプライニング
パイプライニ
ング用のAPI      クライアント   HandlerSocket



    execute_multi




               ブロック
ノンブロッキング+パイプライニング
               node-
通常のAPI                      HandlerSocket
            handlersocket


             find
           insert
          update
         ブロック
          しない



         コール
         バック
         コール
         バック
         コール
         バック
ノンブロッキング+パイプライニング

? 相性がいい
? パイプライニング用のAPI不要
 ? 単独のAPIを続けて呼び出すだけ
 ? openIndex()もパイプライニング可能
? 同期?コールバックスパゲッティ?
 ? フロー制御モジュールを使えばおk
 ? slide, step, async, etc...
 ? https://github.com/joyent/node/wiki/modules#async-flow
フロー制御モジュール(slide)
var records = [
   [100, 9999, 'Foo'],
   [300, 9998, 'Bar'],
   ...
];
asyncMap(records, function(record, next) {
   index.insert(record, next);
}, function(err, results) {
   //全レコードのインサート完了
});
今後の予定

? HandlerSocketの新機能対応
  HandlerSocket
 ? auto_increment
 ? インクリメント/デクリメント
 ? IN
 ? フィルタ
 ? 認証
 ? ???
問題

? HandlerSocketがリリースされない
  HandlerSocket
 ? 昨年秋の1.0.6のまま
 ? GitHubにコミットはされてる
? 樋口さん、リリース!!リリース!!
まとめ

? NodeでもHandlerSocket使えるよ
  Node  HandlerSocket
 ? https://github.com/koichik/node-handlersocket
? ノンブロッキングとパイプライニングは
  相性がいいよ
? 好きなフロー制御モジュール使えるよ
 ? いくつかはNode本で紹介してるよ!!
 ? Node本が出たら買ってね!!
謝辞

? ご清聴ありがとうございました
一番大事なこと



Node本が出たら
 買ってね!!

More Related Content

node-handlersocket