You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Swapnil Bawaskar (JIRA)" <ji...@apache.org> on 2018/02/01 22:52:43 UTC

[jira] [Closed] (GEODE-3074) Integrate new client protocol into existing connection logic

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

Swapnil Bawaskar closed GEODE-3074.
-----------------------------------

> 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
>            Priority: Major
>             Fix For: 1.4.0
>
>
> 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
(v7.6.3#76005)