Ok, we can use node filters in such a case, i understand )
>I just dream up ) If some one have cached web session layer over >ignite with sticky cookie [1] and cross cache transaction logic through >local and global caches how this schema will transform without local ? > >[1] >https://www.imperva.com/learn/availability/sticky-session-persistence-and-cookies/ > > >> I am not about creation per se, but creation from a thin client side. >> >> This feature simply doesn't work as expected, broken and impossible to >> fix. >> It cannot broke any code, because it was already broken and it is >> impossible to use in production. >> But it still can embarrass newcomers and brings a lot of frustration. >> >> It is much more safe to ban a creation of LOCAL caches from thin clients. >> >> But it can survive for a while for ignite cluster nodes, client and >> server. >> >> вт, 14 сент. 2021 г. в 14:06, Maxim Muzafarov < mmu...@apache.org >: >> >>> Ivan, >>> >>> I don't think we should rush with this. Banning the creation of LOCAL >>> caches without a warning through the code sounds not good. Will it be >>> better to do everything in three steps (releases)? 2.12 deprecate, >>> 2.13 forbid new cache creation, 2.14 remove. >>> >>> On Tue, 14 Sept 2021 at 12:09, Ivan Daschinsky < ivanda...@gmail.com > >>> wrote: >>> > >>> > Few thoughts about LOCAL caches on thin client: >>> > >>> > 1. If partition awareness is disabled: >>> > a. Inconsistent behaviour if node to which client is connected goes >>> down. >>> > 2. If partition awareness is enabled: >>> > a. For Java and .NET -- same as 1a >>> > b. For C++ and python -- use random routing for caches that are not >>> > PARTITIONED, so inconsistent behaviour from the beginning. >>> > >>> > So I suppose we should ban creation of LOCAL caches from thin client >>> in >>> > 2.12 (fail attempt to create such caches in ClientRequestHandler >>> > >>> > вт, 14 сент. 2021 г. в 11:31, Ivan Daschinsky < ivanda...@gmail.com >: >>> > >>> > > >> Unsupported operation exception. >>> > > Binary protocol doesn't have a concept of exception, only error >>> status >>> and >>> > > message, but it is just a remark >>> > > I suppose that response with error status and message is ok, but >>> may be >>> > > others have different opinion? >>> > > >>> > > >> Removal should happen at 2.13. >>> > > A few thin clients are released separately. I suppose that it is >>> better to >>> > > remove this feature from pyignite a little bit earlier. >>> > > >>> > > вт, 14 сент. 2021 г. в 11:21, Anton Vinogradov < a...@apache.org >: >>> > > >>> > >> > 1. What is expected behaviour if an old thin client requests >>> creation of >>> > >> > LOCAL cache on the newest ignite cluster? >>> > >> Unsupported operation exception. >>> > >> >>> > >> > 2. Should we completely remove LOCAL caches support in thin >>> clients >>> > >> (i.e. >>> > >> pyignite) before 2.13 release? >>> > >> Removal should happen at 2.13. >>> > >> >>> > >> On Tue, Sep 14, 2021 at 10:30 AM Ivan Daschinsky < >>> ivanda...@gmail.com >>> > >>> > >> wrote: >>> > >> >>> > >> > >> 2. 2.13 - complete removal LOCAL caches from codebase. >>> > >> > Let's discuss this step with more details. >>> > >> > 1. What is expected behaviour if an old thin client requests >>> creation of >>> > >> > LOCAL cache on the newest ignite cluster? >>> > >> > 2. Should we completely remove LOCAL caches support in thin >>> clients >>> > >> (i.e. >>> > >> > pyignite) before 2.13 release? >>> > >> > >>> > >> > вт, 14 сент. 2021 г. в 10:11, Nikolay Izhikov < >>> nizhi...@apache.org >>> >: >>> > >> > >>> > >> > > I proposed the following plan: >>> > >> > > >>> > >> > > 1. 2.12 - deprecation of LOCAL caches. >>> > >> > > 2. 2.13 - complete removal LOCAL caches from codebase. >>> > >> > > >>> > >> > > > 13 сент. 2021 г., в 13:30, Ivan Daschinsky < >>> ivanda...@gmail.com >>> > >>> > >> > > написал(а): >>> > >> > > > >>> > >> > > > I personally support deprecation, but we should at least >>> have a >>> > >> plan. >>> > >> > > > I suppose that putting annotations and removing documentation >>> are >>> > >> not >>> > >> > > > enough. >>> > >> > > > >>> > >> > > > >>> > >> > > > пн, 13 сент. 2021 г. в 13:22, Maxim Muzafarov < >>> mmu...@apache.org >: >>> > >> > > > >>> > >> > > >> Ivan, >>> > >> > > >> >>> > >> > > >> I don't think we can remove LOCAL caches at the nearest >>> time, >>> so >>> > >> there >>> > >> > > >> is no plan for that. I can only imagine a single release >>> that >>> will >>> > >> > > >> contain all the breaking changes we want to apply in 2.x >>> version. >>> > >> > > >> >>> > >> > > >> My point here is only about deprecation: >>> > >> > > >> - there are a lot of motivation points to remove written in >>> this >>> > >> > thread; >>> > >> > > >> - I always hear from the support team that they do not >>> recommend >>> > >> using >>> > >> > > >> local caches; >>> > >> > > >> - I haven't seen any bugs fixed for a long time for local >>> caches >>> > >> > > >> (suppose that we are not maintaining them); >>> > >> > > >> >>> > >> > > >> I just want to make sure that all these points are reflected >>> in the >>> > >> > > >> code base, so propose to mark them as deprecated. >>> > >> > > >> >>> > >> > > >> On Mon, 13 Sept 2021 at 11:29, Ivan Daschinsky < >>> > >> ivanda...@gmail.com > >>> > >> > > >> wrote: >>> > >> > > >>> >>> > >> > > >>> Hi, Maxim. And what is the plan of removing this >>> functionality? >>> > >> And I >>> > >> > > >> also >>> > >> > > >>> have some questions regarding deprecation in binary >>> protocol >>> > >> > > >>> >>> > >> > > >>> Currently thin client binary protocol >>> > >> > > >>> 1. Does support LOCAL caches >>> > >> > > >>> 2. Does not support node filters. >>> > >> > > >>> >>> > >> > > >>> I can hardly imagine the usefulness of this feature on thin >>> > >> clients, >>> > >> > > >>> especially with partition awareness, but nevertheless. >>> > >> > > >>> What is expected behaviour if this feature is removed from >>> newest >>> > >> > > version >>> > >> > > >>> of Apache Ignite server and and and old client is >>> requesting >>> > >> > > >>> creation of LOCAL cache? >>> > >> > > >>> >>> > >> > > >>> вс, 12 сент. 2021 г. в 15:10, Maxim Muzafarov < >>> mmu...@apache.org >>> > >> >: >>> > >> > > >>> >>> > >> > > >>>> Folks, >>> > >> > > >>>> >>> > >> > > >>>> Let's get back to the discussion of obsolete LOCAL caches >>> since a >>> > >> > lot >>> > >> > > >>>> of time has passed since the last discussion. >>> > >> > > >>>> I've created an issue [1] for deprecation. Let's deprecate >>> them >>> > >> at >>> > >> > > >>>> least at the next 2.12 release. >>> > >> > > >>>> >>> > >> > > >>>> WDYT? >>> > >> > > >>>> >>> > >> > > >>>> >>> > >> > > >>>> [1] https://issues.apache.org/jira/browse/IGNITE-15499 >>> > >> > > >>>> >>> > >> > > >>>> On Fri, 27 Jul 2018 at 20:59, Valentin Kulichenko >>> > >> > > >>>> < valentin.kuliche...@gmail.com > wrote: >>> > >> > > >>>>> >>> > >> > > >>>>> Guys, >>> > >> > > >>>>> >>> > >> > > >>>>> Use cases for local caches are rare, but they definitely >>> exist. >>> > >> I >>> > >> > > >> don't >>> > >> > > >>>>> think it's a very good idea to deprecate this >>> functionality >>> at >>> > >> this >>> > >> > > >>>> point. >>> > >> > > >>>>> >>> > >> > > >>>>> At the same point, it's obviously not the most critical >>> part of >>> > >> the >>> > >> > > >>>>> product, so maintaining the whole separate implementation >>> for >>> > >> it is >>> > >> > > >>>>> probably an overkill. We had exact same story with >>> replicated >>> > >> > caches >>> > >> > > >> btw >>> > >> > > >>>> - >>> > >> > > >>>>> they were implemented separately which caused >>> maintainability >>> > >> > > >> issues, and >>> > >> > > >>>>> we ended up removing this separate implementation. If we >>> have >>> > >> the >>> > >> > > >> same >>> > >> > > >>>>> situation here, let's use the same solution. >>> > >> > > >>>>> >>> > >> > > >>>>> -Val >>> > >> > > >>>>> >>> > >> > > >>>>> On Fri, Jul 27, 2018 at 3:05 AM Dmitry Pavlov < >>> > >> > dpavlov....@gmail.com >>> > >> > > >>> >>> > >> > > >>>> wrote: >>> > >> > > >>>>> >>> > >> > > >>>>>> Hi Dmitriy, >>> > >> > > >>>>>> >>> > >> > > >>>>>> I would like to stress this: I'm not saying local cache >>> it >>> > >> > > >> useless. I'm >>> > >> > > >>>>>> supposing it is not used widely. I want to figure out if >>> I'm >>> > >> > > >> mistaking. >>> > >> > > >>>>>> >>> > >> > > >>>>>> All folks involved into user list says it is not used, >>> so >>> why >>> > >> not >>> > >> > > >> to >>> > >> > > >>>>>> deprecate? If we make a mistake, somebody will come to >>> user >>> > >> list >>> > >> > > >> and >>> > >> > > >>>> say, >>> > >> > > >>>>>> 'Hey, why did you deprecate this, it is used for... in >>> my >>> > >> project' >>> > >> > > >>>>>> >>> > >> > > >>>>>> Being very experienced Igniter you probably know real >>> life >>> > >> usage >>> > >> > > >>>> examples. >>> > >> > > >>>>>> And I appreciate if you or somebody else in community >>> could >>> > >> share >>> > >> > > >> it. >>> > >> > > >>>>>> >>> > >> > > >>>>>> Sincerely, >>> > >> > > >>>>>> Dmitriy Pavlov >>> > >> > > >>>>>> >>> > >> > > >>>>>> пт, 27 июл. 2018 г. в 1:04, Dmitriy Setrakyan < >>> > >> > > >> dsetrak...@apache.org >: >>> > >> > > >>>>>> >>> > >> > > >>>>>>> Guys, >>> > >> > > >>>>>>> >>> > >> > > >>>>>>> I just want to make sure we are all on the same page. >>> The >>> main >>> > >> > > >> use >>> > >> > > >>>> case >>> > >> > > >>>>>> for >>> > >> > > >>>>>>> LOCAL caches is to have a local hash map querable with >>> SQL and >>> > >> > > >>>>>>> automatically persisted to a 3rd party DB. >>> > >> > > >>>>>>> >>> > >> > > >>>>>>> I want to discourage people from saying "nobody needs >>> some >>> > >> > > >> feature". >>> > >> > > >>>> None >>> > >> > > >>>>>>> of the people in this discussion are users of any >>> features - >>> > >> we >>> > >> > > >> are >>> > >> > > >>>> all >>> > >> > > >>>>>>> developers of the features. Instead of guessing >>> whether to >>> > >> > > >> deprecate >>> > >> > > >>>>>>> something or not, I would actually see if it is even >>> worth a >>> > >> > > >>>> discussion. >>> > >> > > >>>>>>> How much effort is required to fix the bug found in the >>> LOCAL >>> > >> > > >> cache? >>> > >> > > >>>>>>> >>> > >> > > >>>>>>> D. >>> > >> > > >>>>>>> >>> > >> > > >>>>>>> On Thu, Jul 26, 2018 at 12:19 PM, Dmitry Pavlov < >>> > >> > > >>>> dpavlov....@gmail.com > >>> > >> > > >>>>>>> wrote: >>> > >> > > >>>>>>> >>> > >> > > >>>>>>>> Hi Alexey, >>> > >> > > >>>>>>>> >>> > >> > > >>>>>>>> There is nothing to be sorry about :) Сommunity >>> appreciates >>> > >> an >>> > >> > > >>>>>>> alternative >>> > >> > > >>>>>>>> vision, this allows us to make as informed decisions >>> as >>> it >>> > >> > > >>>> possible. >>> > >> > > >>>>>>>> >>> > >> > > >>>>>>>> Thank you for finding this fact, it is very >>> interesting. >>> > >> > > >>>>>>>> >>> > >> > > >>>>>>>> I'm not sure all these examples were prepared by >>> experienced >>> > >> > > >> Ignite >>> > >> > > >>>>>>> users. >>> > >> > > >>>>>>>> So idea of deprecation may have one more argument. >>> > >> Deprecation >>> > >> > > >> will >>> > >> > > >>>>>> help >>> > >> > > >>>>>>> us >>> > >> > > >>>>>>>> to inform users about LOCAL cache: Probably local >>> cache >>> is >>> > >> not >>> > >> > > >> what >>> > >> > > >>>>>> they >>> > >> > > >>>>>>>> need. >>> > >> > > >>>>>>>> >>> > >> > > >>>>>>>> Sincerely, >>> > >> > > >>>>>>>> Dmitriy Pavlov >>> > >> > > >>>>>>>> >>> > >> > > >>>>>>>> чт, 26 июл. 2018 г. в 16:57, Alexey Zinoviev < >>> > >> > > >>>> zaleslaw....@gmail.com >: >>> > >> > > >>>>>>>> >>> > >> > > >>>>>>>>> Sorry, guys, I'll put my 1 cent >>> > >> > > >>>>>>>>> >>> > >> > > >>>>>>>>> I'd like this idea "Implement LOCAL caches as >>> PARTITIONED >>> > >> > > >> caches >>> > >> > > >>>>>> over >>> > >> > > >>>>>>>> the >>> > >> > > >>>>>>>>> local node." >>> > >> > > >>>>>>>>> It make sense for examples/testing in >>> pseudo-distributed >>> > >> mode >>> > >> > > >>>> and so >>> > >> > > >>>>>>> far. >>> > >> > > >>>>>>>>> >>> > >> > > >>>>>>>>> But I think that the deprecation based on user-list >>> mentions >>> > >> > > >> is a >>> > >> > > >>>>>> wrong >>> > >> > > >>>>>>>>> way. Please look here >>> > >> > > >>>>>>>>> >>> > >> > > >>>>>> >>> > >> > > >> >>> > >> > >>> https://github.com/search?q=%22CacheMode.LOCAL%22+%26+ignite&type=Code >>> > >> > > >>>>>>>>> There a lot of hello world examples with LOCAL mode. >>> > >> > > >>>>>>>>> >>> > >> > > >>>>>>>>> And of course, we can ask about that on user-list, >>> not >>> here, >>> > >> > > >> to >>> > >> > > >>>> vote >>> > >> > > >>>>>>> for >>> > >> > > >>>>>>>>> the deprecation like this. >>> > >> > > >>>>>>>>> >>> > >> > > >>>>>>>>> 2018-07-26 11:23 GMT+03:00 Vladimir Ozerov < >>> > >> > > >> voze...@gridgain.com >>> > >> > > >>>>> : >>> > >> > > >>>>>>>>> >>> > >> > > >>>>>>>>>> I meant LOCAL + non-LOCAL transactions of course. >>> > >> > > >>>>>>>>>> >>> > >> > > >>>>>>>>>> On Wed, Jul 25, 2018 at 10:42 PM Dmitriy Setrakyan < >>> > >> > > >>>>>>>>> dsetrak...@apache.org > >>> > >> > > >>>>>>>>>> wrote: >>> > >> > > >>>>>>>>>> >>> > >> > > >>>>>>>>>>> Vladimir, >>> > >> > > >>>>>>>>>>> >>> > >> > > >>>>>>>>>>> Are you suggesting that a user cannot span more >>> than >>> one >>> > >> > > >>>> local >>> > >> > > >>>>>>> cache >>> > >> > > >>>>>>>>> in a >>> > >> > > >>>>>>>>>>> cross cache LOCAL transactions. This is extremely >>> > >> > > >> surprising >>> > >> > > >>>> to >>> > >> > > >>>>>> me, >>> > >> > > >>>>>>>> as >>> > >> > > >>>>>>>>> it >>> > >> > > >>>>>>>>>>> would require almost no effort to support it. As >>> far >>> as >>> > >> > > >>>> mixing >>> > >> > > >>>>>> the >>> > >> > > >>>>>>>>> local >>> > >> > > >>>>>>>>>>> caches with distributed caches, then I agree, >>> cross-cache >>> > >> > > >>>>>>>> transactions >>> > >> > > >>>>>>>>> do >>> > >> > > >>>>>>>>>>> not make sense. >>> > >> > > >>>>>>>>>>> >>> > >> > > >>>>>>>>>>> I am not sure why deprecating local caches has >>> become >>> a >>> > >> > > >>>> pressing >>> > >> > > >>>>>>>>> issue. I >>> > >> > > >>>>>>>>>>> can see that there are a few bugs, but why not just >>> fix >>> > >> > > >> them >>> > >> > > >>>> and >>> > >> > > >>>>>>> move >>> > >> > > >>>>>>>>> on? >>> > >> > > >>>>>>>>>>> Can someone explain why supporting LOCAL caches is >>> such a >>> > >> > > >>>> burden? >>> > >> > > >>>>>>>>>>> >>> > >> > > >>>>>>>>>>> Having said that, I am not completely opposed to >>> > >> > > >> deprecating >>> > >> > > >>>>>> LOCAL >>> > >> > > >>>>>>>>>> caches. >>> > >> > > >>>>>>>>>>> I just want to know why. >>> > >> > > >>>>>>>>>>> >>> > >> > > >>>>>>>>>>> D. >>> > >> > > >>>>>>>>>>> >>> > >> > > >>>>>>>>>>> On Wed, Jul 25, 2018 at 10:55 AM, Vladimir Ozerov < >>> > >> > > >>>>>>>>> voze...@gridgain.com > >>> > >> > > >>>>>>>>>>> wrote: >>> > >> > > >>>>>>>>>>> >>> > >> > > >>>>>>>>>>>> Dima, >>> > >> > > >>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>> LOCAL cache adds very little value to the >>> product. It >>> > >> > > >>>> doesn't >>> > >> > > >>>>>>>> support >>> > >> > > >>>>>>>>>>>> cross-cache transactions, consumes a lot of >>> memory, >>> > >> > > >> much >>> > >> > > >>>> slower >>> > >> > > >>>>>>>> than >>> > >> > > >>>>>>>>>> any >>> > >> > > >>>>>>>>>>>> widely-used concurrent hash map. Let's go the same >>> way >>> > >> > > >> as >>> > >> > > >>>> Java >>> > >> > > >>>>>> - >>> > >> > > >>>>>>>> mark >>> > >> > > >>>>>>>>>>> LOCAL >>> > >> > > >>>>>>>>>>>> cache as "deprecated for removal", and then >>> remove it >>> > >> > > >> in >>> > >> > > >>>> 3.0. >>> > >> > > >>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>> On Wed, Jul 25, 2018 at 12:10 PM Dmitrii Ryabov < >>> > >> > > >>>>>>>>> somefire...@gmail.com >>> > >> > > >>>>>>>>>>> >>> > >> > > >>>>>>>>>>>> wrote: >>> > >> > > >>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>> +1 to make LOCAL as filtered PARTITIONED cache. I >>> > >> > > >> think >>> > >> > > >>>> it >>> > >> > > >>>>>>> would >>> > >> > > >>>>>>>> be >>> > >> > > >>>>>>>>>>> much >>> > >> > > >>>>>>>>>>>>> easier and faster than fixing all bugs. >>> > >> > > >>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>> 2018-07-25 11:51 GMT+03:00 Dmitriy Setrakyan < >>> > >> > > >>>>>>>>> dsetrak...@apache.org >>> > >> > > >>>>>>>>>>> : >>> > >> > > >>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>> I would stay away from deprecating such huge >>> > >> > > >> pieces as >>> > >> > > >>>> a >>> > >> > > >>>>>>> whole >>> > >> > > >>>>>>>>>> LOCAL >>> > >> > > >>>>>>>>>>>>> cache. >>> > >> > > >>>>>>>>>>>>>> In retrospect, we should probably not even have >>> > >> > > >> LOCAL >>> > >> > > >>>>>> caches, >>> > >> > > >>>>>>>> but >>> > >> > > >>>>>>>>>>> now I >>> > >> > > >>>>>>>>>>>>> am >>> > >> > > >>>>>>>>>>>>>> certain that it is used by many users. >>> > >> > > >>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>> I would do one of the following, whichever one >>> is >>> > >> > > >>>> easier: >>> > >> > > >>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>> - Fix the issues found with LOCAL caches, >>> > >> > > >> including >>> > >> > > >>>>>>>>> persistence >>> > >> > > >>>>>>>>>>>>> support >>> > >> > > >>>>>>>>>>>>>> - Implement LOCAL caches as PARTITIONED caches >>> > >> > > >> over >>> > >> > > >>>> the >>> > >> > > >>>>>>>> local >>> > >> > > >>>>>>>>>>> node. >>> > >> > > >>>>>>>>>>>> In >>> > >> > > >>>>>>>>>>>>>> this case, we would have to hide any >>> > >> > > >>>>>> distribution-related >>> > >> > > >>>>>>>>> config >>> > >> > > >>>>>>>>>>>> from >>> > >> > > >>>>>>>>>>>>>> users, like affinity function, for example. >>> > >> > > >>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>> D. >>> > >> > > >>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>> On Wed, Jul 25, 2018 at 9:05 AM, Valentin >>> > >> > > >> Kulichenko < >>> > >> > > >>>>>>>>>>>>>> valentin.kuliche...@gmail.com > wrote: >>> > >> > > >>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>> It sounds like the main drawback of LOCAL cache >>> > >> > > >> is >>> > >> > > >>>> that >>> > >> > > >>>>>>> it's >>> > >> > > >>>>>>>>>>>>> implemented >>> > >> > > >>>>>>>>>>>>>>> separately and therefore has to be maintained >>> > >> > > >>>> separately. >>> > >> > > >>>>>>> If >>> > >> > > >>>>>>>>>> that's >>> > >> > > >>>>>>>>>>>> the >>> > >> > > >>>>>>>>>>>>>>> only issue, why not keep LOCAL cache mode on >>> > >> > > >> public >>> > >> > > >>>> API, >>> > >> > > >>>>>>> but >>> > >> > > >>>>>>>>>>>> implement >>> > >> > > >>>>>>>>>>>>> it >>> > >> > > >>>>>>>>>>>>>>> as a PARTITIONED cache with a node filter >>> > >> > > >> forcefully >>> > >> > > >>>> set? >>> > >> > > >>>>>>>>> That's >>> > >> > > >>>>>>>>>>>>> similar >>> > >> > > >>>>>>>>>>>>>> to >>> > >> > > >>>>>>>>>>>>>>> what we do with REPLICATED caches which are >>> > >> > > >> actually >>> > >> > > >>>>>>>>> PARTITIONED >>> > >> > > >>>>>>>>>>> with >>> > >> > > >>>>>>>>>>>>>>> infinite number of backups. >>> > >> > > >>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>> This way we fix the issues described by Stan >>> and >>> > >> > > >>>> don't >>> > >> > > >>>>>> have >>> > >> > > >>>>>>>> to >>> > >> > > >>>>>>>>>>>>> deprecate >>> > >> > > >>>>>>>>>>>>>>> anything. >>> > >> > > >>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>> -Val >>> > >> > > >>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>> On Wed, Jul 25, 2018 at 12:53 AM Stanislav >>> > >> > > >> Lukyanov < >>> > >> > > >>>>>>>>>>>>>>> stanlukya...@gmail.com > >>> > >> > > >>>>>>>>>>>>>>> wrote: >>> > >> > > >>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>>> Hi Igniters, >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>>> I’d like to start a discussion about the >>> > >> > > >>>> deprecation of >>> > >> > > >>>>>>> the >>> > >> > > >>>>>>>>>> LOCAL >>> > >> > > >>>>>>>>>>>>>> caches. >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>>> LOCAL caches are an edge-case functionality >>> > >> > > >>>>>>>>>>>>>>>> I haven’t done any formal analysis, but from >>> my >>> > >> > > >>>>>>> experience >>> > >> > > >>>>>>>>>> LOCAL >>> > >> > > >>>>>>>>>>>>> caches >>> > >> > > >>>>>>>>>>>>>>>> are needed very rarely, if ever. >>> > >> > > >>>>>>>>>>>>>>>> I think most usages of LOCAL caches I’ve seen >>> > >> > > >> were >>> > >> > > >>>>>>> misuses: >>> > >> > > >>>>>>>>> the >>> > >> > > >>>>>>>>>>>> users >>> > >> > > >>>>>>>>>>>>>>>> actually needed a simple HashMap, or an actual >>> > >> > > >>>>>>> PARTITIONED >>> > >> > > >>>>>>>>>> cache. >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>>> LOCAL caches are easy to implement on top of >>> > >> > > >>>>>> PARTITIONED >>> > >> > > >>>>>>>>>>>>>>>> If one requires a LOCAL cache (which is itself >>> > >> > > >>>>>>>> questionable, >>> > >> > > >>>>>>>>> as >>> > >> > > >>>>>>>>>>>>>> discussed >>> > >> > > >>>>>>>>>>>>>>>> above) it is quite easy to implement one on >>> > >> > > >> top of >>> > >> > > >>>>>>>>> PARTITIONED >>> > >> > > >>>>>>>>>>>> cache. >>> > >> > > >>>>>>>>>>>>>>>> A node filter of form `node -> node.id >>> > >> > > >>>>>>>>> ().equals(localNodeId)` >>> > >> > > >>>>>>>>>> is >>> > >> > > >>>>>>>>>>>>>> enough >>> > >> > > >>>>>>>>>>>>>>>> to make the cache to be stored on the node >>> that >>> > >> > > >>>> created >>> > >> > > >>>>>>> it. >>> > >> > > >>>>>>>>>>>>>>>> Locality of access to the cache (i.e. making >>> it >>> > >> > > >>>>>>> unavailable >>> > >> > > >>>>>>>>>> from >>> > >> > > >>>>>>>>>>>>> other >>> > >> > > >>>>>>>>>>>>>>>> nodes) can be achieved on the application >>> > >> > > >> level. >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>>> LOCAL caches are hard to maintain >>> > >> > > >>>>>>>>>>>>>>>> A quick look at the open issues mentioning >>> > >> > > >> “local >>> > >> > > >>>>>> cache” >>> > >> > > >>>>>>>>>> suggests >>> > >> > > >>>>>>>>>>>>> that >>> > >> > > >>>>>>>>>>>>>>>> this is a corner case for implementation of >>> > >> > > >> many >>> > >> > > >>>> Ignite >>> > >> > > >>>>>>>>>> features: >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>>>> https://issues.apache.org/jira/issues/?jql=text%20~%20% >>> > >> > > >>>>>>>>>>>>>>> >>> > >> > > >> 22local%20cache%22%20and%20%20project%20%3D%20IGNITE% >>> > >> > > >>>>>>>>>>>>>>> 20and%20status%20%3D%20open >>> > >> > > >>>>>>>>>>>>>>>> In particular, a recent SO question brought up >>> > >> > > >> the >>> > >> > > >>>> fact >>> > >> > > >>>>>>>> that >>> > >> > > >>>>>>>>>>> LOCAL >>> > >> > > >>>>>>>>>>>>>> caches >>> > >> > > >>>>>>>>>>>>>>>> don’t support native persistence: >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>> https://stackoverflow.com/questions/51511892/how-to- >>> > >> > > >>>>>>>>>>>>>>> >>> > >> > > >> configure-persistent-storage-for-apache-ignite-cache >>> > >> > > >>>>>>>>>>>>>>>> Having to ask ourselves “how does it play with >>> > >> > > >>>> LOCAL >>> > >> > > >>>>>>>> caches” >>> > >> > > >>>>>>>>>>> every >>> > >> > > >>>>>>>>>>>>> time >>> > >> > > >>>>>>>>>>>>>>> we >>> > >> > > >>>>>>>>>>>>>>>> write any code in Ignite seems way to much for >>> > >> > > >> the >>> > >> > > >>>>>>> benefits >>> > >> > > >>>>>>>>> we >>> > >> > > >>>>>>>>>>> gain >>> > >> > > >>>>>>>>>>>>>> from >>> > >> > > >>>>>>>>>>>>>>> it. >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>>> Proposal >>> > >> > > >>>>>>>>>>>>>>>> Let’s deprecate LOCAL caches in 2.x and remove >>> > >> > > >>>> them in >>> > >> > > >>>>>>> 3.0. >>> > >> > > >>>>>>>>>>>>>>>> As a part of deprecation let’s do the >>> > >> > > >> following: >>> > >> > > >>>>>>>>>>>>>>>> - Put @Deprecated on the CacheMode.LOCAL >>> > >> > > >>>>>>>>>>>>>>>> - Print a warning every time a LOCAL cache is >>> > >> > > >>>> created >>> > >> > > >>>>>>>>>>>>>>>> - Remove all mentions of LOCAL caches from >>> > >> > > >>>> readme.io, >>> > >> > > >>>>>> if >>> > >> > > >>>>>>>>> any, >>> > >> > > >>>>>>>>>>>> except >>> > >> > > >>>>>>>>>>>>>> for >>> > >> > > >>>>>>>>>>>>>>>> the page about cache modes >>> > >> > > >>>>>>>>>>>>>>>> - On the page about cache modes explain that >>> > >> > > >> LOCAL >>> > >> > > >>>> is >>> > >> > > >>>>>>>>>> deprecated >>> > >> > > >>>>>>>>>>>> and >>> > >> > > >>>>>>>>>>>>>> can >>> > >> > > >>>>>>>>>>>>>>>> be replaced with a PARTITIONED cache with a >>> > >> > > >> node >>> > >> > > >>>> filter >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>>> Thanks, >>> > >> > > >>>>>>>>>>>>>>>> Stan >>> > >> > > >>>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>>> >>> > >> > > >>>>>>>>>>>> >>> > >> > > >>>>>>>>>>> >>> > >> > > >>>>>>>>>> >>> > >> > > >>>>>>>>> >>> > >> > > >>>>>>>> >>> > >> > > >>>>>>> >>> > >> > > >>>>>> >>> > >> > > >>>> >>> > >> > > >>> >>> > >> > > >>> >>> > >> > > >>> -- >>> > >> > > >>> Sincerely yours, Ivan Daschinskiy >>> > >> > > >> >>> > >> > > > >>> > >> > > > >>> > >> > > > -- >>> > >> > > > Sincerely yours, Ivan Daschinskiy >>> > >> > > >>> > >> > > >>> > >> > >>> > >> > -- >>> > >> > Sincerely yours, Ivan Daschinskiy >>> > >> > >>> > >> >>> > > >>> > > >>> > > -- >>> > > Sincerely yours, Ivan Daschinskiy >>> > > >>> > >>> > >>> > -- >>> > Sincerely yours, Ivan Daschinskiy >>> >> >> -- >> Sincerely yours, Ivan Daschinskiy > > > >