After MariaDB is installed, use the INSTALL PLUGIN command (as the root user) to install the HandlerSocket plugin. This command only needs to be run once, like so:
INSTALL PLUGIN handlersocket SONAME 'handlersocket.so';After installing the plugin, SHOW PROCESSLIST shows you first need to configure some settings. All HandlerSocket configuration options are placed in the [mysqld] section of your my.cnf file.
At least the handlersocket_address, handlersocket_port and handlersocket_port_wr options need to be set:
handlersocket_address="127.0.0.1"
handlersocket_port="9998"
handlersocket_port_wr="9999"After updating the configuration options, restart MariaDB.
On the client side, to make use of the plugin you will need to install the appropriate client library (that is, libhsclient for C++ applications and perl-Net-HandlerSocket for perl applications).
This page is licensed: CC BY-SA / Gnu FDL
In order to make use of the HandlerSocket plugin in your applications, you will need to use the appropriate client library. The following client libraries are available:
C++
libhsclient (included with the HandlerSocket plugin source)
Perl
perl-Net-HandlerSocket (included with the HandlerSocket plugin source)
PHP
Java
Python
Ruby
JavaScript
node-handlersocket
Scala
Haskell
HandlerSocket-Haskell-Client
This page is licensed: CC BY-SA / Gnu FDL
Some resources and documentation about HandlerSocket.
The home of HandlerSocket is here.
The story of handlersocket can be found here.
presentation by Akira Higuchi of DeNA - June 29 2010 - DeNA Technology Seminar
presentation by Akira Higuchi of DeNA - June 29 2011 - in Japanese
This page is licensed: CC BY-SA / Gnu FDL
Explore HandlerSocket for MariaDB Server. This plugin enables high-performance NoSQL-like access directly to InnoDB tables, bypassing SQL parsing for fast key-value operations.
The HandlerSocket plugin has the following options.
See also the Full list of MariaDB options, system and status variables.
Add the options to the [mysqld] section of your my.cnf file.
handlersocket_accept_balanceDescription: When set to a value other than zero ('0'), handlersocket will try to balance accepted connections among threads. Default is 0 , but if you use persistent connections (for example if you use client-side connection pooling), a non-zero value is recommended.
Command line: --handlersocket-accept-balance="value"
Scope: Global
Dynamic: No
Type: number
Range: 0 to 10000
Default Value: 0
handlersocket_addressDescription: Specify the IP address to bind to.
Command line: --handlersocket-address="value"
Scope: Global
Dynamic: No
handlersocket_backlogDescription: Specify the listen backlog length.
Command line: --handlersocket-backlog="value"
Scope: Global
Dynamic: No
handlersocket_epollDescription: Specify whether to use epoll for I/O multiplexing.
Command line: --handlersocket-epoll="value"
Scope: Global
Dynamic: No
handlersocket_plain_secretDescription: When set, enables plain-text authentication for the listener for read requests, with the value of the option specifying the secret authentication key.
Command line: --handlersocket-plain-secret="value"
Dynamic: No
Type: string
handlersocket_plain_secret_wrDescription: When set, enables plain-text authentication for the listener for write requests, with the value of the option specifying the secret authentication key.
Command line: --handlersocket-plain-secret-wr="value"
Dynamic: No
Type: string
handlersocket_portDescription: Specify the port to bind to for reads. An empty value disables the listener.
Command line: --handlersocket-port="value"
Scope: Global
Dynamic: No
handlersocket_port_wrDescription: Specify the port to bind to for writes. An empty value disables the listener.
Command line: --handlersocket-port-wr="value"
Scope: Global
Dynamic: No
handlersocket_rcvbufDescription: Specify the maximum socket receive buffer (in bytes). If '0' then the system default is used.
Command line: --handlersocket-rcvbuf="value"
Scope: Global
Dynamic: No
handlersocket_readsizeDescription: Specify the minimum length of the request buffer. Larger values consume available memory but can make handlersocket faster for large requests.
Command line: --handlersocket-readsize="value"
Scope: Global
Dynamic: No
handlersocket_sndbufDescription: Specify the maximum socket send buffer (in bytes). If '0' then the system default is used.
Command line: --handlersocket-sndbuf="value"
Scope: Global
Dynamic: No
handlersocket_threadsDescription: Specify the number of worker threads for reads. Recommended value = number of CPU cores * 2.
Command line: --handlersocket-threads="value"
Scope: Global
Dynamic: No
handlersocket_threads_wrDescription: Specify the number of worker threads for writes. Recommended value = 1.
Command line: --handlersocket-threads-wr="value"
Scope: Global
Dynamic: No
handlersocket_timeoutDescription: Specify the socket timeout in seconds.
Command line: --handlersocket-timeout="value"
Scope: Global
Dynamic: No
handlersocket_verboseDescription: Specify the logging verbosity.
Command line: --handlersocket-verbose="value"
Scope: Global
Dynamic: No
handlersocket_wrlock_timeoutDescription: The write lock timeout in seconds. When acting on write requests, handlersocket locks an advisory lock named 'handlersocket_wr' and this option sets the timeout for it.
Command line: --handlersocket-wrlock-timeout="value"
Scope: Global
Dynamic: No
This page is licensed: CC BY-SA / Gnu FDL
Type: IP Address
Default Value: Empty, previously 0.0.0.0
Type: number
Range: 5 to 1000000
Default Value: 32768
Type: number
Valid values:
Min: 0
Max: 1
Default Value: 1
Default Value: Empty
Default Value: Empty
Type: number
Default Value: Empty, previously 9998
Type: number
Default Value: Empty, previously 9999
Type: number
Range: 0 to 1677216
Default Value: 0
Type: number
Range: 0 to 1677216
Default Value: 0 (possibly 4096)
Type: number
Range: 0 to 1677216
Default Value: 0
Type: number
Range: 1 to 3000
Default Value: 16
Type: number
Range: 1 to 3000
Default Value: 1
Type: number
Range: 30 to 3600
Default Value: 300
Type: number
Valid values:
Min: 0
Max: 10000
Default Value: 10
Type: number
Range: 0 to 3600