A couple of weeks ago at the San Francisco MySQL Meetup, I gave a talk on HandlerSocket and got a couple of questions that, while I thought I knew the answer, I had never actually verified by testing. So, for the attendees who asked, here are the questions and answers: Can you use HandlerSocket on [...]
HandlerSocket has really generated a lot of
interest because of the dual promises of ease-of-use and
blazing-fast performance. The performance comes from eliminating
CPU consumption. Akira Higuchi’s HandlerSocket presentation from a couple of months
back had some really good profile results for libmysql versus
libhsclient (starting at slide 15). Somebody in the audience at
Percona Live asked about the profile results when using prepared
statements and I’m just getting around to publishing the numbers
now; I’ll reproduce the original numbers here, for
reference:
libmysql (Akira’s Numbers) | ||
---|---|---|
samples | % | symbol name |
UPDATE 2011-03-15 12:50 Pacific – This post may already be out of date, am testing with a fresh snapshot of the source and will update accordingly. (Thanks, Andy)
Several weeks ago at Percona Live 2011, I presented on HandlerSocket. Due to time constraints, I had to omit some more in-depth discussions in favor of being able to present a broad overview. One of those discussions was about how, exactly, HandlerSocket does not play nicely with auto increment columns. So I wanted to take the time here to show how they behave together versus how we might expect.
Let’s take, for example, a standard setup using a standard SQL_MODE (not using anything like …
[Read more][shameless plug] I’ll be at the next SF MySQL Meetup giving a talk on HandlerSocket called “NoSQL in MySQL: HandlerSocket plugin demystified”. We’ll ask, and answer, the following questions: What is HandlerSocket? Where does HandlerSocket fit in my application stack? Why would I want to use HandlerSocket? How do I use Handlersocket? We’ll walk through [...]
On March 29th, I’ll be giving a webinar whose title is “Understanding HandlerSocket – A NoSQL PlugIn For MySQL”. This is a continuation and extension of the talk I gave during the Percona Live Event in San Francisco back in February. We’ll ask, and answer, the following questions:
- What is HandlerSocket?
- Where does HandlerSocket fit in my application stack?
- Why would I want to use HandlerSocket?
- How do I use Handlersocket?
Description:
http://www.percona.com/webinars/2011-03-29-understanding-handlersocket-a-nosql-plugIn-for-mysql/
To register:
…
[Read more]I’ve written some new Nagios checks for HandlerSocket. check_handlersocket is a part of http://code.google.com/p/check-mysql-all/, and is meant to be called locally on the HandlerSocket server (usually via NRPE), but the perl-Net-HandlerSocket module must be installed. Feedback is welcome, usage is as follows: Usage: check_handlersocket -K [options] Options: -K, --check= The check to run --columns= Comma-separated [...]
Using Net::HandlerSocket, here are some fun numbers for a single connection (open & close). When connecting to “localhost”, here’s the strace: open("/etc/hosts", O_RDONLY) = 3 fcntl(3, F_GETFD) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fstat(3, {st_mode=S_IFREG|0644, st_size=187, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b909a1a3000 read(3, "# Do not remove the following [...]
I’ve been spending a lot of time working on HandlerSocket these days, so I’ll be posting tidbits on this a bit more frequently than in the past. This first post is a quick one to help people get a test environment up and running quickly so they can do their functional testing. The title is [...]
The HandlerSocket plugin for MySQL currently lacks atomic operations . It is
impossible to implement counters (increment/decrement value) or
REPLACE functionality with the current
implementation.
It currently exceeds the performance of Memcache for get/set
operations, but I want to see how fast it is once atomic
operations are implemented. Until then, I don't think it is a
serious contender for replacing Memcache for the cache layer in a
complex environment.
The HandlerSocket plugin for MySQL currently lacks atomic operations . It is
impossible to implement counters (increment/decrement value) or
REPLACE functionality with the current
implementation.
It currently exceeds the performance of Memcache for get/set
operations, but I want to see how fast it is once atomic
operations are implemented. Until then, I don't think it is a
serious contender for replacing Memcache for the cache layer in a
complex environment.