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

Reply via email to