Folks,
Let's back to discussion. We've already deprecated local caches [1], so it's time to remove them. I've prepared the PR, please check: - https://issues.apache.org/jira/browse/IGNITE-15759 - https://github.com/apache/ignite/pull/10157 [1] https://issues.apache.org/jira/browse/IGNITE-15756 On Wed, 15 Sept 2021 at 09:33, Zhenya Stanilovsky <arzamas...@mail.ru.invalid> wrote: > > > > 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 > > > > > > > > > > > >