Hi all,

I'm digging into Riak, and its Python client. I've discovered several
issues and would like to provide feedback and get some input, please.

1. I'd like Riak to generate keys for some of my objects, and I'm
using the HTTP API. Pretty simple: do a POST, and the Location: header
will tell me the key. However, looking at the code... it doesn't
appear that object.store() actually reads and returns that key. Am I
missing something here? Maybe there is a Proper Way to do this?

2. The HTTP transport code doesn't use httplib properly at all. When I
wrote the httplib library, my primary design point was to enable
persistent, HTTP/1.1 connections. That was the whole idea behind
HTTPConnection. The transport library opens a *new* connection for
every request. I'm not surprised that the performance suffers, since a
TCP setup handshake needs to occur on every request. ... So: are there
any plans to rebuild the HTTP support to use persistent connections?

3. The Luwak support reads the *entire* "file" into memory. My
understanding is that Luwak is for "large" files. If those files are
(say) a gigabyte, then the current code is going to impact clients in
a *very* bad way. I can see that the code wants to read the response,
then return the connection back to the pool... but that just isn't
workable. A connection needs to be held by the reader, which then
streams it to completion (or close), and only then should the
connection be returned. Now, if Luwak is defined for files less than
(say) 10 megabytes, then maybe this approach isn't wrong, but I
haven't seen any documentation about size limitations. Any thoughts on
this?

Thanks!
-g

_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to