18
node - handlersocket https://github.com/koichik/node-handlersocket @koichik http://d.hatena.ne.jp/koichik/ http://d.hatena.ne.jp/koichik/

node-handlersocket

  • Upload
    koichik

  • View
    3.578

  • Download
    0

Embed Size (px)

DESCRIPTION

JJUG Cross Community Conference 2011 Spring Node.js 日本ユーザグループによる LT 大会発表資料

Citation preview

Page 1: node-handlersocket

node-handlersocketnode-handlersockethttps://github.com/koichik/node-handlersocket

@koichikhttp://d.hatena.ne.jp/koichik/http://d.hatena.ne.jp/koichik/

Page 2: node-handlersocket

宣伝

Nodeの本を書いてますNode

@atsuya @bad_at_math @Jxck_ @KOBA789@koichik @masahiroh @meso @nsyee @yssk22

発売は7月かなぁ

著者レビューと初校を並行処理中

少々お疲れ気味 少々お疲れ気味

励ましのツイートを!!

Page 3: node-handlersocket

HandlerSocket Plugin

MySQLをNoSQLのようにアクセス可能にMySQL NoSQLしてくれる

詳しくは本日B-3の資料を!

SQLを通さない

SQL Client HandlerSocketClient

ストレージエンジン

MySQL

SQL layer HandlerSocket

Page 4: node-handlersocket

HandlerSocketクライアント

libhsclientlibhsclient

C++のクライアントライブラリ

Perl, Ruby, PHP, etc のバインディング

libhsclient

Perl Ruby PHP etc

libhsclient

HandlerSocketMySQL

Page 5: node-handlersocket

HandlerSocketクライアント

プロトコルが公開されている

様々なネイティブ実装

Python, PHP, Java, Scala

libhsclient

Perl Ruby PHP etc

Python Java

libhsclient

HandlerSocketMySQL

プロトコル公開

Page 6: node-handlersocket

node-handlersocket

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

libhsclient

Perl Ruby PHP etc

Python Java

node-handlersocket

JavaScriptlibhsclient

HandlerSocketMySQL

JavaScript

プロトコル公開

Page 7: node-handlersocket

node-handlersocketの特徴

Pure JavaScriptPure JavaScript

ノンブロッキングI/O

パイプライニングフルサポート

Page 8: node-handlersocket

ブロッキング

クライアント HandlerSocket

execute_single

ブロック

Page 9: node-handlersocket

ノンブロッキングnode-

handlersocketHandlerSocket

find

ブロックしない

コールバック

Page 10: node-handlersocket

ブロッキング+パイプライニング

クライアント HandlerSocketパイプライニング用のAPI

execute_multi

ブロック

Page 11: node-handlersocket

ノンブロッキング+パイプライニング

node-handlersocket

HandlerSocket通常のAPI

findinsert

update

ブロックしない

コールバックコールバックコールバック

Page 12: node-handlersocket

ノンブロッキング+パイプライニング

相性がいい

パイプライニング用のAPI不要

単独のAPIを続けて呼び出すだけ

openIndex()もパイプライニング可能

同期?コールバックスパゲッティ?

フロー制御モジュールを使えばおk フロー制御モジュールを使えばおk

slide, step, async, etc... https://github.com/joyent/node/wiki/modules#async-flow

Page 13: node-handlersocket

フロー制御モジュール(slide)

var records = [[100, 9999, 'Foo'],[100, 9999, 'Foo'],[300, 9998, 'Bar'],...

];asyncMap(records, function(record, next) {

index.insert(record, next);index.insert(record, next);}, function(err, results) {

//全レコードのインサート完了});

Page 14: node-handlersocket

今後の予定

HandlerSocketの新機能対応HandlerSocket

auto_increment

インクリメント/デクリメント

IN

フィルタ

認証 認証

・・・

Page 15: node-handlersocket

問題

HandlerSocketがリリースされないHandlerSocket

昨年秋の1.0.6のまま

GitHubにコミットはされてる

樋口さん、リリース!!リリース!!

Page 16: node-handlersocket

まとめ

NodeでもHandlerSocket使えるよNode HandlerSocket

https://github.com/koichik/node-handlersocket

ノンブロッキングとパイプライニングは相性がいいよ

好きなフロー制御モジュール使えるよ

いくつかはNode本で紹介してるよ!! いくつかはNode本で紹介してるよ!!

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

Page 17: node-handlersocket

謝辞

ご清聴ありがとうございました

Page 18: node-handlersocket

一番大事なこと

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