On Tue, Nov 06, 2012 at 05:49:22PM +0200, Dan Kenigsberg wrote:
On Mon, Oct 29, 2012 at 10:20:04AM -0500, Adam Litke wrote:
Hi everyone,
libvdsm is listed as a release feature for 3.2 (preview only)[1][2]. There is a set of patches up in gerrit that could use a wide review from the community. The plan is to merge the new json-rpc server[3] first so if you could concentrate your reviews there it would yield the greatest benefit. Thanks!
[1] http://wiki.ovirt.org/wiki/OVirt_3.2_release-management [2] http://wiki.ovirt.org/wiki/Features/libvdsm [3] http://gerrit.ovirt.org/#/c/8614/
[3] defines the format of each message as
<size><json-data>
where <size> is a binary value, used to split a (tcp) stream into messages. I would like to consider another splitting scheme, which I find better suited to the textual nature of jsonrpc: terminate each message with the newline character. It makes the protocol easier to sniff and debug (in case you've missed part of a message).
The down size is that we would need to require clients to escape literal newlines, and unescape them in responses (both are done by python's json module, and the latter is part of the json standard).
Thanks for bringing up this point. I would like to make this protocol compatible with existing clients. Is there a standard for segmenting messages over the channel? I suppose it depends on the transport layer.