I've updated IEP page: [1] What do you think now? To me it looks cleaner.
[1] - https://cwiki.apache.org/confluence/display/IGNITE/IEP-23%3A+Best+Effort+Affinity+for+thin+clients Best Regards, Igor On Mon, Feb 4, 2019 at 4:44 PM Igor Sapego <isap...@apache.org> wrote: > Ok, I understand now. I'll try updating IEP according to this proposal and > notify you guys. > > Best Regards, > Igor > > > On Mon, Feb 4, 2019 at 4:27 PM Vladimir Ozerov <voze...@gridgain.com> > wrote: > >> Igor, >> >> My idea is simply to add the list of caches with the same distribution to >> the end of partition response. Client can use this information to populate >> partition info for more caches in a single request. >> >> On Mon, Feb 4, 2019 at 3:06 PM Igor Sapego <isap...@apache.org> wrote: >> >> > Vladimir, >> > >> > So correct me if I'm wrong, what you propose is to avoid mentioning >> > of cache groups, and use instead of "cache group" term something like >> > "distribution"? Or do you propose some changes in protocol? If so, can >> > you briefly explain, what kind of changes they are? >> > >> > Best Regards, >> > Igor >> > >> > >> > On Mon, Feb 4, 2019 at 1:13 PM Vladimir Ozerov <voze...@gridgain.com> >> > wrote: >> > >> > > Igor, >> > > >> > > Yes, cache groups are public API. However, we try to avoid new APIs >> > > depending on them. >> > > The main point from my side is that “similar cache group” can be >> easily >> > > generalized to “similar distribution”. This way we avoid cache groups >> on >> > > protocol level at virtually no cost. >> > > >> > > Vladimir. >> > > >> > > пн, 4 февр. 2019 г. в 12:48, Igor Sapego <isap...@apache.org>: >> > > >> > > > Guys, >> > > > >> > > > Can you explain why do we want to avoid Cache groups in protocol? >> > > > >> > > > If it's about simplicity of the protocol, then removing cache groups >> > will >> > > > not help much with it - we will still need to include >> "knownCacheIds" >> > > > field in request and "cachesWithTheSamePartitioning" field in >> response. >> > > > And also, since when do Ignite prefers simplicity over performance? >> > > > >> > > > If it's about not wanting to show internals of Ignite then it sounds >> > like >> > > > a very weak argument to me, since Cache Groups is a public thing >> [1]. >> > > > >> > > > [1] - https://apacheignite.readme.io/docs/cache-groups >> > > > >> > > > Best Regards, >> > > > Igor >> > > > >> > > > >> > > > On Mon, Feb 4, 2019 at 11:47 AM Vladimir Ozerov < >> voze...@gridgain.com> >> > > > wrote: >> > > > >> > > > > Pavel, Igor, >> > > > > >> > > > > This is not very accurate to say that this will not save memory. >> In >> > > > > practice we observed a number of OOME issues on the server-side >> due >> > to >> > > > many >> > > > > caches and it was one of motivations for cache groups (another one >> > disk >> > > > > access optimizations). On the other hand, I agree that we'd >> better to >> > > > avoid >> > > > > cache groups in the protocol because this is internal >> implementation >> > > > detail >> > > > > which is likely (I hope so) to be changed in future. >> > > > > >> > > > > So I have another proposal - let's track caches with the same >> > affinity >> > > > > distribution instead. That is, normally most of PARTITIONED caches >> > will >> > > > > have very few variants of configuration: it will be Rendezvous >> > affinity >> > > > > function, most likely with default partition number and with 1-2 >> > > backups >> > > > at >> > > > > most. So when affinity distribution for specific cache is >> requested, >> > we >> > > > can >> > > > > append to the response *list of caches with the same >> distribution*. >> > > I.e.: >> > > > > >> > > > > class AffinityResponse { >> > > > > Object distribution; // Actual distribution >> > > > > List<Integer> cacheIds; // Caches with similar distribution >> > > > > } >> > > > > >> > > > > Makes sense? >> > > > > >> > > > > On Sun, Feb 3, 2019 at 8:31 PM Pavel Tupitsyn < >> ptupit...@apache.org> >> > > > > wrote: >> > > > > >> > > > > > Igor, I have a feeling that we should omit Cache Group stuff >> from >> > the >> > > > > > protocol. >> > > > > > It is a rare use case and even then dealing with them on client >> > > barely >> > > > > > saves some memory. >> > > > > > >> > > > > > We can keep it simple and have partition map per cacheId. >> Thoughts? >> > > > > > >> > > > > > On Fri, Feb 1, 2019 at 6:49 PM Igor Sapego <isap...@apache.org> >> > > wrote: >> > > > > > >> > > > > > > Guys, I've updated the proposal once again [1], so please, >> > > > > > > take a look and let me know what you think. >> > > > > > > >> > > > > > > [1] - >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> https://cwiki.apache.org/confluence/display/IGNITE/IEP-23%3A+Best+Effort+Affinity+for+thin+clients >> > > > > > > >> > > > > > > Best Regards, >> > > > > > > Igor >> > > > > > > >> > > > > > > >> > > > > > > On Thu, Jan 17, 2019 at 1:05 PM Igor Sapego < >> isap...@apache.org> >> > > > > wrote: >> > > > > > > >> > > > > > > > Yeah, I'll add it. >> > > > > > > > >> > > > > > > > Best Regards, >> > > > > > > > Igor >> > > > > > > > >> > > > > > > > >> > > > > > > > On Wed, Jan 16, 2019 at 11:08 PM Pavel Tupitsyn < >> > > > > ptupit...@apache.org> >> > > > > > > > wrote: >> > > > > > > > >> > > > > > > >> > to every server >> > > > > > > >> I did not think of this issue. Now I agree with your >> approach. >> > > > > > > >> Can you please add an explanation of this to the IEP? >> > > > > > > >> >> > > > > > > >> Thanks! >> > > > > > > >> >> > > > > > > >> On Wed, Jan 16, 2019 at 2:53 PM Igor Sapego < >> > isap...@apache.org >> > > > >> > > > > > wrote: >> > > > > > > >> >> > > > > > > >> > Pavel, >> > > > > > > >> > >> > > > > > > >> > Yeah, it makes sense, but to me it seems that this >> approach >> > > can >> > > > > lead >> > > > > > > >> > to more complicated client logic, as it will require to >> make >> > > > > > > additional >> > > > > > > >> > call >> > > > > > > >> > to every server, that reports affinity topology change. >> > > > > > > >> > >> > > > > > > >> > Guys, WDYT? >> > > > > > > >> > >> > > > > > > >> > Best Regards, >> > > > > > > >> > Igor >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > On Tue, Jan 15, 2019 at 10:59 PM Pavel Tupitsyn < >> > > > > > ptupit...@apache.org >> > > > > > > > >> > > > > > > >> > wrote: >> > > > > > > >> > >> > > > > > > >> > > Igor, >> > > > > > > >> > > >> > > > > > > >> > > > It is proposed to add flag to every response, that >> > shows >> > > > > > whether >> > > > > > > >> the >> > > > > > > >> > > Affinity Topology Version of the cluster has changed >> since >> > > the >> > > > > > last >> > > > > > > >> > request >> > > > > > > >> > > from the client. >> > > > > > > >> > > I propose to keep this flag. So no need for periodic >> > checks. >> > > > > Makes >> > > > > > > >> sense? >> > > > > > > >> > > >> > > > > > > >> > > On Tue, Jan 15, 2019 at 4:45 PM Igor Sapego < >> > > > isap...@apache.org >> > > > > > >> > > > > > > >> wrote: >> > > > > > > >> > > >> > > > > > > >> > > > Pavel, >> > > > > > > >> > > > >> > > > > > > >> > > > This will require from client to send this new >> request >> > > > > > > periodically, >> > > > > > > >> > I'm >> > > > > > > >> > > > not >> > > > > > > >> > > > sure this will make clients simpler. Anyway, let's >> > discuss >> > > > it. >> > > > > > > >> > > > >> > > > > > > >> > > > Vladimir, >> > > > > > > >> > > > >> > > > > > > >> > > > With current proposal, we will have affinity info in >> > > message >> > > > > > > header. >> > > > > > > >> > > > >> > > > > > > >> > > > Best Regards, >> > > > > > > >> > > > Igor >> > > > > > > >> > > > >> > > > > > > >> > > > >> > > > > > > >> > > > On Tue, Jan 15, 2019 at 11:01 AM Vladimir Ozerov < >> > > > > > > >> voze...@gridgain.com >> > > > > > > >> > > >> > > > > > > >> > > > wrote: >> > > > > > > >> > > > >> > > > > > > >> > > > > Igor, >> > > > > > > >> > > > > >> > > > > > > >> > > > > I think that "Cache Partitions Request" should >> contain >> > > > > > affinity >> > > > > > > >> > > topology >> > > > > > > >> > > > > version. Otherwise we do not know what >> distribution is >> > > > > > returned >> > > > > > > - >> > > > > > > >> the >> > > > > > > >> > > one >> > > > > > > >> > > > > we expected, or some newer one. The latter may >> happen >> > in >> > > > > case >> > > > > > > >> > topology >> > > > > > > >> > > > > changed or late affinity assignment happened >> between >> > > > server >> > > > > > > >> response >> > > > > > > >> > > and >> > > > > > > >> > > > > subsequent client partitions request. >> > > > > > > >> > > > > >> > > > > > > >> > > > > Vladimir. >> > > > > > > >> > > > > >> > > > > > > >> > > > > On Mon, Jan 14, 2019 at 6:08 PM Igor Sapego < >> > > > > > isap...@apache.org >> > > > > > > > >> > > > > > > >> > > wrote: >> > > > > > > >> > > > > >> > > > > > > >> > > > > > Hello guys, >> > > > > > > >> > > > > > >> > > > > > > >> > > > > > I've updated IEP page [1] describing proposed >> > solution >> > > > in >> > > > > > more >> > > > > > > >> > > details >> > > > > > > >> > > > > and >> > > > > > > >> > > > > > proposing some changes for a protocol. >> > > > > > > >> > > > > > >> > > > > > > >> > > > > > Please, take a look and let me know what you >> think. >> > > > > > > >> > > > > > >> > > > > > > >> > > > > > [1] - >> > > > > > > >> > > > > > >> > > > > > > >> > > > > > >> > > > > > > >> > > > > >> > > > > > > >> > > > >> > > > > > > >> > > >> > > > > > > >> > >> > > > > > > >> >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> https://cwiki.apache.org/confluence/display/IGNITE/IEP-23%3A+Best+Effort+Affinity+for+thin+clients >> > > > > > > >> > > > > > >> > > > > > > >> > > > > > Best Regards, >> > > > > > > >> > > > > > Igor >> > > > > > > >> > > > > > >> > > > > > > >> > > > > > >> > > > > > > >> > > > > > On Tue, Jun 19, 2018 at 11:54 AM Vladimir Ozerov >> < >> > > > > > > >> > > voze...@gridgain.com >> > > > > > > >> > > > > >> > > > > > > >> > > > > > wrote: >> > > > > > > >> > > > > > >> > > > > > > >> > > > > > > Denis, >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > Yes, in principle we can extend it. We are >> going >> > to >> > > > > > > implement >> > > > > > > >> it >> > > > > > > >> > in >> > > > > > > >> > > > > > > subsequent phases of this IEP. >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > On Tue, Jun 19, 2018 at 4:30 AM, Dmitriy >> > Setrakyan < >> > > > > > > >> > > > > > dsetrak...@apache.org> >> > > > > > > >> > > > > > > wrote: >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > > On Mon, Jun 18, 2018 at 11:07 AM, Denis >> Magda < >> > > > > > > >> > dma...@apache.org >> > > > > > > >> > > > >> > > > > > > >> > > > > > wrote: >> > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > > > Folks, >> > > > > > > >> > > > > > > > > >> > > > > > > >> > > > > > > > > Feel that this functionality can be >> extended >> > to >> > > > the >> > > > > > > >> automatic >> > > > > > > >> > > > > > > reconnect, >> > > > > > > >> > > > > > > > > can't it? Presently we require to provide a >> > > static >> > > > > > list >> > > > > > > of >> > > > > > > >> > IPs >> > > > > > > >> > > to >> > > > > > > >> > > > > be >> > > > > > > >> > > > > > > used >> > > > > > > >> > > > > > > > > at a reconnect time. By having a partition >> map >> > > of >> > > > > all >> > > > > > > the >> > > > > > > >> > > nodes, >> > > > > > > >> > > > > the >> > > > > > > >> > > > > > > thin >> > > > > > > >> > > > > > > > > client should be able to automate this >> piece. >> > > > > > > >> > > > > > > > > >> > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > > Not sure if static IP list can be avoided. >> What >> > > Igor >> > > > > is >> > > > > > > >> > > suggesting >> > > > > > > >> > > > is >> > > > > > > >> > > > > > > that >> > > > > > > >> > > > > > > > we try to pick the best node out of the >> static >> > IP >> > > > > list. >> > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > > D. >> > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > > > >> > > > > >> > > > > > > >> > > > >> > > > > > > >> > > >> > > > > > > >> > >> > > > > > > >> >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >