3
-----------------------------------------------------------------
6
本ソフトウェアの開発者および株式会社ディー・エヌ・エーは、本フト
7
ウェアの不稼動、稼動不良を含む法律上の瑕疵担保責任、その他保証責
8
任を負わないものとします。また、本ソフトウエアの開発者および株式
9
会社ディー・エヌ・エーは、本ソフトウェアの商品性、またはお客様の
10
特定の目的に対する適合性について、いかなる保証も負わないものとし
13
-----------------------------------------------------------------
14
handlersocket pluginについて
16
mysqlサーバに常駐し、innodb等のストレージエンジンへの直接のアクセ
17
スを提供するプラグインです。handlersocketプラグインは自前のリス
18
ナーを持ち、専用のクライアントライブラリ(libhsclient)を使ってそれ
21
mysqlの標準クライアントライブラリ(libmysql)を使ったアクセスと比べ
23
・接続あたりに消費するリソースが少ないため、同時接続数が事実上無
24
制限。したがって接続数を気にせず持続接続を使えます。
25
・高速(単純な参照クエリで3倍〜10倍程度)。
26
・通信プロトコルがコンパクト。libmysqlを使うとデータ転送時にレ
27
コード名などが付随するために通信内容が冗長ですが、libhsclientで
28
はデータのみが転送されるため、帯域消費が少なくなります。場合に
29
よっては10倍以上libmysqlのほうが冗長になります。
31
現在のバージョンでは以下のような処理をサポートしています。
32
・指定された索引について、指定された値と完全一致するようなレコー
33
ドを取得。(SELECT ??? FROM tbl WHERE k1 = v1 AND k2 = v2...)。
35
・指定された索引について、指定された値の位置の前後のレコードを取
36
得。(SELECT ??? FROM tbl WHERE k1 >= v1 LIMIT 100)
37
・前述のような手段で取得したレコードに対するUPDATEとDELETE
41
・C++。libhsclientをリンクします。
42
・Perl。Net::HandlerSocketをuseします。
44
現在のバージョンではGNU/Linuxでのみ動作します。
46
-----------------------------------------------------------------
49
・killでhandlersocketスレッドを殺すと、スレッド数が減ったまま回復