Hi i was thinking again...
the main point is add a raw send/receive command over mysql protocol, at client side we will send memcache protocol, and at server side we will receive and send the packets to plugin

With more time plugin could return a result set (like a Query command), or raw data via raw send/receive over mysql protocol

This solve many problems :) ok add a overhead but at other side we have a more secure protocol (main problem of handler socket and memcached and others nonsql servers), and we will have a nice thread pool or other connect handler... :)

We should add more status to processlist to allow a better understand about what plugin is doing... maybe a new field (Plugin_status)

What you think

Em 17/08/2013 11:52, "Sergei Golubchik" <serg@mariadb.org> escreveu:
Hi, Roberto!

On Aug 16, Roberto Spadim wrote:
> Hi guys, i was reading some time ago about memcache (i use it for a
> long time ~5years or more) and the handler socket plugin
> Why we don't implement it at mariadb client? instead of a second
> library to add nosql, why not implement a built in lib?
> for example...
>
> (pseudo functions...)
> mysql_connect ... (connect to database and have permission handling...)
> mysql_select_db  ... select the schema being used
> mysql_query ... execute a query command (SQL QUERIES)
> mysql_fetch ... get a row
> mysql_num_rows .. get number of rows
>
> now the nosql...
> mariadb_handler_socket_openindex( handler socket parameters )
> mariadb_handler_socket_query
> mariadb_handler_socket_fetch
> mariadb_handler_socket_close
>
> mariadb_memcache_get
> mariadb_memcache_set
> ...
>
> this make mariadb a sql/nonsql database with a single user/permission
> schema, and a nice language set (SQL, handler socket, memcache, redis,
> drizzle, hadoop, mongodb or others...)

For a single user/permission scema, the connection should go to the
server, it cannot be done in the client.
>
> but the point is... instead of many connections (3-> mariadb, handler
> socket write, handler socket read, or 2 -> mariadb, memcached) we have
> only one 1-> mariadb

No, if you do it in the client, as you want to, it still will be many
connections. libmysqlclient -> server, libmysqlclient -> memcached, etc.

> comments are wellcome, any idea why not implement this instead of many
> different protocol libs?

I don't see the point.

Regards,
Sergei