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