Hi Igor, How can we invoke the affinity function on the client, if we don't have the implementation at hand? Am I missing something?
Thanks, Pavel On Wed, Jun 13, 2018 at 5:34 PM, Igor Sapego <isap...@apache.org> wrote: > Hi, Igniters, > > Currently, I'm working on the thin C++ client implementation. > As you may already know, there is an issue with latency in our > thin clients, which also can result in performance issues (you > can see the "About Ignite Thin client performance" thread on > user list). > > So, how about we implement some kind of "Best Effort Affinity" > for our thin clients? In my opinion, this could be possible and > may improve mean latency when using thin clients dramatically. > > The scenario is following: > 1. Thin client connects to one of the node from the provided > address list, just as now. > 2. When user create instance of CacheClient, thin client > requests partition mapping for the cache. > 3. Client establishes connections to nodes, which are both in the > list, provided by user and in a server node response. > 4. When user makes put/get/some other cache operation, > thin client makes the best effort to send the request to the node, > which stores the data. > 5. To update partition mapping, thin client can provide public API, > or do it with some timeout. Also, we can add "miss" flag to cache > operation response, which whill indicate, that operation was not > local for the server node and which thin client can use to > understand, that partition mapping has changed to request server > node for an update. > > What do you think? > > Best Regards, > Igor >