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

Adam Fuchs commented on ACCUMULO-482:
-------------------------------------

We're trying to simultaneously optimize for a number of factors in this API. 
The three that matter for picking which write methods to support are:
 # Make it as easy to use as possible
   ## Keep the objects intuitive
   ## Expose all the functionality via a minimal set of methods
   ## Also use a minimal set of data objects
 # Make it fast
   ## Support batching of writes
   ## Minimize data transmission via natural hierarchical encoding, etc.
   ## Drive users towards the most efficient use by avoiding adding inefficient 
methods
 # Make it maintainable
   ## Use a minimal set of methods and objects

On the one hand, introducing a PColumnUpdate object violates 1.3, but using a 
PMutation that could throw an exception because the PKeyValue objects are not 
in the same row violates 1.1. We could support both the PMutation with 
PColumnUpdate objects, and also support a write method that takes a PKeyValue 
or a list of PKeyValue. That would seem to get around 1.3 by not requiring that 
users learn part of the API, but it doesn't really help with 1.2 or 3.1.

An additional alternative would be to support writes via only the following 
method:

{code}
oneway void write(1:binary writerToken, 2:list<PKeyValue> inserts, 3:list<PKey> 
deletes);
{code}

The semantics of this write function would be such that all inserts and deletes 
within the same row will be applied via the same mutation. Keys across multiple 
rows will be applied in multiple mutations (one per row). While this does 
nothing for 2.2, I think this might be the best we can do to optimize across 
all of the factors listed above.
                
> Add a thrift proxy server
> -------------------------
>
>                 Key: ACCUMULO-482
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-482
>             Project: Accumulo
>          Issue Type: New Feature
>            Reporter: Sapan Shah
>            Assignee: Chris McCubbin
>         Attachments: accumulo482patch-A.diff, accumulo482patch.diff
>
>
> Add a thrift proxy server to make integration with other languages besides 
> Java a bit easier.  This should work like 
> http://wiki.apache.org/hadoop/Hbase/ThriftApi.

--
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

Reply via email to