ハンドラソケット内のいくつかの微妙なアップデート&挿入

記事の続きでハンドラーソケットとphp_handlersocketの最初の経験更新と挿入のいくつかの機能



UPDATEおよびINSERTの使用に時間がかかりました。

すべてがシンプルなテーブルでテストされた

CREATE TABLE `test`.`test` (

`keyid` varchar(45),

`value` varchar(45),

PRIMARY KEY (`keyid`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251








簡単な例

$port = 9998;

$hs = new HandlerSocket($host, $port);

$retval = $hs->executeInsert(0, array( '112233090' , '12212212' ));

var_dump($retval);



* This source code was highlighted with Source Code Highlighter .






発行されたbool(false);





bool(false);









胸が単純に開いたことがわかります:

SHOW PROCESSLISTが表示される場合

プロセスリストハンドラーソケットを表示

次に、モードのState列の17行目は、前のすべての行と異なります。

mode=rd

mode=wr







記事で述べたように、 HandlerSocketを起動するときのHandler Socketとphp_handlersocketの最初の経験 、16の読み取りスレッドと1つの書き込みが開始されます。 このデータはmy.cnfに設定されます

loose_handlersocket_threads = 16

# the number of worker threads (for read requests)



loose_handlersocket_threads_wr = 1

# the number of worker threads (for write requests)







したがって、読み取りスレッド(スレッド)はポート9998にバインドされ、ポート9999に書き込まれます。したがって、INSERT / UPDATE / DELETE操作を実行する場合は、ポート9999でインデックスを開く必要があります。

$host = 'localhost' ;

$port = 9998;

$port_wr = 9999;



$hs = new HandlerSocket($host, $port_ wr);




* This source code was highlighted with Source Code Highlighter .








同様に、ネイティブプロトコル: telnet akalend.local 9998

tlnet: connect to address fe80::217:f2ff:feee:3a60: Connection refused

Trying 192.168.1.10...

Connected to akalend.local.

Escape character is '^]'.

P 0 test test PRIMARY keyid,value

0 1

0 = 1 123123

0 2 123123 asdasdasd

0 = 1 123123 0 0 D

2 1 readonly





telnet akalend.local 9998

tlnet: connect to address fe80::217:f2ff:feee:3a60: Connection refused

Trying 192.168.1.10...

Connected to akalend.local.

Escape character is '^]'.

P 0 test test PRIMARY keyid,value

0 1

0 = 1 123123

0 2 123123 asdasdasd

0 = 1 123123 0 0 D

2 1 readonly







INSERT / UPDATE操作では、 読み取り専用エラーが発生します



telnet akalend.local 9999

Trying fe80::217:f2ff:feee:3a60...

telnet: connect to address fe80::217:f2ff:feee:3a60: Connection refused

Trying 192.168.1.10...

Connected to akalend.local.

Escape character is '^]'.

P 0 test test PRIMARY keyid,value

0 1

0 = 1 123123 1 0 D

0 1 1

0 + 2 1111 12345

0 1





ここではすべてがうまくいっているようです。



これで、リスト1のコードは肯定的な結果をもたらします。

bool(true)









最後に、小さなテストMACX 2Gbの2.3 GHzのCoreDuo、またはその特別hones(デフォルト設定)ではありません。



記録/ memcacheの中で32バイト10万件のレコードを読むには、Redisの、memcacheDb、HS、Totyo暴君

1つのスレッド、1つの接続、ネイティブプロトコル。



結果:

noSql セット 得る
Hs 33,4 24.6 * / 26.3 **
マック 16.7 15.6
Mcdb 21,4 17.5
redis 19,4 19.6
東京Tr 22.1 22.8




秒単位の時間で、平均3〜5回の測定を行いました。

*-読み取りポートへ

**-書き込みポートへ

他に何を比較したいですか:membase&tarantool



All Articles