keith-turner opened a new pull request, #5550:
URL: https://github.com/apache/accumulo/pull/5550

   Thrift supports the following two configurations related to incoming framed 
messages sizes.
   
    1. A max size for individual message.  When a message is over this size 
thrift will close the connection and not read the message. Accumulo configure 
that setting 
[here](https://github.com/apache/accumulo/blob/1e4b7924a13f1fe1883c7de3c8faca7fdb4791ce/server/base/src/main/java/org/apache/accumulo/server/rpc/TServerUtils.java#L273)
    2. A max size for all messages across all connections that will be held in 
memory.  If a message on a connection would exceed this limit, then thrift 
delays reading the data off the connection until there is enough memory.  
Accumulo configures that setting 
[here](https://github.com/apache/accumulo/blob/1e4b7924a13f1fe1883c7de3c8faca7fdb4791ce/server/base/src/main/java/org/apache/accumulo/server/rpc/TServerUtils.java#L280)
   
   The thrift code implementing to these two configurations can be seen 
[here](https://github.com/apache/thrift/blob/df626d768a87fe07fef215b4dde831185e6929d7/lib/java/src/main/java/org/apache/thrift/server/AbstractNonblockingServer.java#L342-L356).
 
   
   Accumulo configures both thrift settings to the same value.  Experimented 
with adding a seperate setting for the total across all configurations in this 
PR.  Also added a ton of logging and a test to convince myself this is actually 
working, and it is working will see thrift deferring reading from a connection 
when there is too much already in memory.  Can not think of a way to actaully 
test this feature because it will eventually work, there is just an 
indeterminate delay.
   
   One uncertainty I have about adding this new property is the way it changes 
behavior.  The existing accumulo property used to configure two thrift settings 
in code.  After this change the existing accumulo property only configures one 
thrift setting code and the new accumulo property configures the other thrift 
setting. This changes seem tricky for the case where the existing property is 
already set.  That uncertainty about the new property and not having an ability 
to test this new property are the reasons why I am opening this as draft for 
now.   The test that was added was used to cause activity that would allow me 
to look in the logs and verify this is working, it does not actually test the 
new property is working.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to