You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2013/03/12 21:09:14 UTC

[jira] [Commented] (HBASE-8078) REST for Multi-put Using JSON Ordering

    [ https://issues.apache.org/jira/browse/HBASE-8078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13600412#comment-13600412 ] 

Andrew Purtell commented on HBASE-8078:
---------------------------------------

Let me double check but I think this is a known problem. We use the Jersey JAXB bindings for JSON support: http://jersey.java.net/nonav/documentation/latest/json.html#json.jaxb.approach.section . These introduce some ordering requirements, that IIRC can change from version to version (of Jersey).

The grand fix for JSON ordering issues is likely to be a move away from the JAXB bindings to a full JSON processor like Jackson. 
                
> REST for Multi-put Using JSON Ordering
> --------------------------------------
>
>                 Key: HBASE-8078
>                 URL: https://issues.apache.org/jira/browse/HBASE-8078
>             Project: HBase
>          Issue Type: Bug
>          Components: REST
>            Reporter: Jesse Anderson
>
> This issue only happens when doing a Multi-put using the REST interface and with the JSON data format.
> The bug is that the "key" entry must come before the "Cell" entry.  The "key" entry order shouldn't matter.  If it doesn't come first, the REST interface won't find the key and will use the URL's key over and over.  For example, if the row key in the URL is "fakekey", then every cell would be added to the same row despite the key being in the JSON.
> Here is the workaround in Python:
> 	cell = OrderedDict([
> 		("key", rowKeyEncoded),
> 		("Cell", 
> 		[
> 			{ "column" : messagecolumnencoded, "$" : line },
> 			{ "column" : usernamecolumnencoded, "$" : usernameEncoded },
> 			{ "column" : linenumbercolumnencoded, "$" : lineNumberEncoded },
> 		])
> 	])

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira