[ 
https://issues.apache.org/jira/browse/GEODE-3074?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brian Baynes updated GEODE-3074:
--------------------------------
    Summary: Integrate new client protocol into existing connection logic  
(was: Integrate new client protocol into core)

> Integrate new client protocol into existing connection logic
> ------------------------------------------------------------
>
>                 Key: GEODE-3074
>                 URL: https://issues.apache.org/jira/browse/GEODE-3074
>             Project: Geode
>          Issue Type: New Feature
>          Components: client/server
>            Reporter: Galen O'Sullivan
>
> We want to make a [new client server 
> protocol|https://cwiki.apache.org/confluence/display/GEODE/New+Client+Server+Protocol]
>  that will make it much easier for new Geode clients to be implemented in 
> other languages.
> To do this, we need a refactor of {{AcceptorImpl}} and {{ServerConnection}} 
> to allow the server to create new client protocol handler objects and run 
> them within the existing network / threading infrastructure.
> As a first task, we can make a factory that creates instances of the new 
> subclasses of {{ServerConnection}} : {{NewClientServerConnection}} and 
> {{LegacyServerConnection}}. Then we can slowly refactor functionality from 
> {{ServerConnection}} into that which is common (such as handling shutdown, 
> stats, and interacting properly with selector or thread pool) and that which 
> is specific to the old client protocol.
> This ticket will track the many subtasks of this effort.
> TODO before the whole ticket is resolved:
>  * Have a look through the {{Command}}s and see what they do.
>   - Move transient flag methods and such down to {{LegacyServerConnection}}.
>  * Make sure we handle failure consistently.
>  *  Make sure Event IDs and such are OK in the Cache.
>   - I think that using the public Region API will make this OK.
>  * Comm Buffers: can we use them? If so, use them; if not, pull down to 
> {{LegacyServerConnection}}.
>  * Socket receive and send sizes -- see `initStreams()` in `ServerConnection`.
> Other things to think about:
> * Make selector work with SSL.
> * think about redesigning selector in case of an incomplete message being 
> received (buffer message -- I think there's currently a bug here).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to