> On Nov. 7, 2012, 9:14 p.m., kturner wrote:
> > /trunk/proxy/src/main/thrift/proxy.thrift, line 72
> > <https://reviews.apache.org/r/7936/diff/1/?file=186436#file186436line72>
> >
> >     can anything be done to make methods shorter?  Is it possible to get 
> > rid of all of the tableOperation_ and instanceOperation_ prefixes?  Does 
> > having different services (ie. AccumuloInstanceProxy, AccumloTableOpProxy) 
> > force us to run those services on separate ports?

Different services must be run on separate ports, yes. That was the reason I 
included the prefixes. See this really old thrift ticket where they basically 
say they aren't going to change that: 
https://issues.apache.org/jira/browse/THRIFT-66


> On Nov. 7, 2012, 9:14 p.m., kturner wrote:
> > /trunk/proxy/src/main/thrift/proxy.thrift, line 140
> > <https://reviews.apache.org/r/7936/diff/1/?file=186436#file186436line140>
> >
> >     Why not a list of Mutations?

TMutation uses serialized ColumnUpdates which would be very confusing to 
generate. I could make a proxy Mutation structure but this is fairly redundant 
with a list of TKeyValues.

The first cut at the implementation of insert grouped the keyvalues into 
Mutations by row. I took that out because it wasn't more performant than one 
Mutation per keyvalue. Adam just brought up a good point that we might want the 
assumption of atomicity for these entries, so I could change the server back to 
doing row grouping.


> On Nov. 7, 2012, 9:14 p.m., kturner wrote:
> > /trunk/proxy/src/main/thrift/proxy.thrift, line 133
> > <https://reviews.apache.org/r/7936/diff/1/?file=186436#file186436line133>
> >
> >     the batch scanner will need to be closed in some way.  I did not see 
> > this being done on the server side.
> >     
> >     The thrift API could provide a close method.  Or the server side could 
> > time out idle batch scanner and close them.

Good point. I had this on my list to do but didn't get it in there.


> On Nov. 7, 2012, 9:14 p.m., kturner wrote:
> > /trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java, line 
> > 540
> > <https://reviews.apache.org/r/7936/diff/1/?file=186420#file186420line540>
> >
> >     sync on batchScanner before checking if its null

Good catch


> On Nov. 7, 2012, 9:14 p.m., kturner wrote:
> > /trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java, line 
> > 543
> > <https://reviews.apache.org/r/7936/diff/1/?file=186420#file186420line543>
> >
> >     In past experience with Thrift throwing a TException in server side 
> > code woudl result in client seeing nothing or seeing something like an 
> > IOException instead of a TApplicationException.   But this was a while ago, 
> > not sure what current behavior of thrift is.

This isn't the case currently. An exception is definitely generated on the 
client side.


> On Nov. 7, 2012, 9:14 p.m., kturner wrote:
> > /trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java, line 
> > 547
> > <https://reviews.apache.org/r/7936/diff/1/?file=186420#file186420line547>
> >
> >     If user does not scan until end, then will scanner always be present in 
> > scannerMap and iteratorMap?  If so this could lead to memory leaks.  I 
> > think its a commom use case that users do not read all data from a scanner.

Yes, this should be addressed.


- Chris


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/7936/#review13220
-----------------------------------------------------------


On Nov. 7, 2012, 8:33 p.m., kturner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/7936/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2012, 8:33 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Description
> -------
> 
> Patch submitted by Chris McCubbin to add thrift proxy to Accumulo
> 
> 
> This addresses bug ACCUMULO-482.
>     https://issues.apache.org/jira/browse/ACCUMULO-482
> 
> 
> Diffs
> -----
> 
>   /trunk/pom.xml 1406772 
>   /trunk/proxy/README PRE-CREATION 
>   /trunk/proxy/examples/python/README PRE-CREATION 
>   /trunk/proxy/examples/python/TestClient.py PRE-CREATION 
>   /trunk/proxy/examples/python/data/__init__.py PRE-CREATION 
>   /trunk/proxy/examples/python/data/constants.py PRE-CREATION 
>   /trunk/proxy/examples/python/data/ttypes.py PRE-CREATION 
>   /trunk/proxy/examples/python/proxy/AccumuloProxy-remote PRE-CREATION 
>   /trunk/proxy/examples/python/proxy/AccumuloProxy.py PRE-CREATION 
>   /trunk/proxy/examples/python/proxy/__init__.py PRE-CREATION 
>   /trunk/proxy/examples/python/proxy/constants.py PRE-CREATION 
>   /trunk/proxy/examples/python/proxy/ttypes.py PRE-CREATION 
>   /trunk/proxy/examples/ruby/README PRE-CREATION 
>   /trunk/proxy/examples/ruby/accumulo_proxy.rb PRE-CREATION 
>   /trunk/proxy/examples/ruby/data_constants.rb PRE-CREATION 
>   /trunk/proxy/examples/ruby/data_types.rb PRE-CREATION 
>   /trunk/proxy/examples/ruby/proxy_constants.rb PRE-CREATION 
>   /trunk/proxy/examples/ruby/proxy_types.rb PRE-CREATION 
>   /trunk/proxy/examples/ruby/test_client.rb PRE-CREATION 
>   /trunk/proxy/examples/ruby/thrift.rb PRE-CREATION 
>   /trunk/proxy/pom.xml PRE-CREATION 
>   /trunk/proxy/proxy.properties PRE-CREATION 
>   /trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyHarness.java 
> PRE-CREATION 
>   /trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java 
> PRE-CREATION 
>   /trunk/proxy/src/main/java/org/apache/accumulo/proxy/TestProxyClient.java 
> PRE-CREATION 
>   /trunk/proxy/src/main/java/org/apache/accumulo/proxy/Util.java PRE-CREATION 
>   
> /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/AccumuloException.java
>  PRE-CREATION 
>   /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/AccumuloProxy.java 
> PRE-CREATION 
>   
> /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/AccumuloSecurityException.java
>  PRE-CREATION 
>   /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/IOException.java 
> PRE-CREATION 
>   
> /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/KeyValueAndPeek.java 
> PRE-CREATION 
>   
> /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/NoMoreEntriesException.java
>  PRE-CREATION 
>   
> /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/ProxyIteratorSetting.java
>  PRE-CREATION 
>   
> /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/ProxySystemPermission.java
>  PRE-CREATION 
>   
> /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/ProxyTablePermission.java
>  PRE-CREATION 
>   
> /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/TableExistsException.java
>  PRE-CREATION 
>   
> /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/TableNotFoundException.java
>  PRE-CREATION 
>   /trunk/proxy/src/main/java/org/apache/accumulo/proxy/api/UserPass.java 
> PRE-CREATION 
>   /trunk/proxy/src/main/thrift/data.thrift PRE-CREATION 
>   /trunk/proxy/src/main/thrift/proxy.thrift PRE-CREATION 
>   
> /trunk/proxy/src/test/java/org/apache/accumulo/TestProxyInstanceOperations.java
>  PRE-CREATION 
>   /trunk/proxy/src/test/java/org/apache/accumulo/TestProxyReadWrite.java 
> PRE-CREATION 
>   
> /trunk/proxy/src/test/java/org/apache/accumulo/TestProxySecurityOperations.java
>  PRE-CREATION 
>   
> /trunk/proxy/src/test/java/org/apache/accumulo/TestProxyTableOperations.java 
> PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/7936/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> kturner
> 
>

Reply via email to