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