> What is the issue if third-party plugins will create «ignite-sys-cache»
from the code?
Great idea!

On Fri, Dec 3, 2021 at 2:15 PM Nikolay Izhikov <nizhi...@apache.org> wrote:

> Vyacheslav, Val, can you please clarify - What is the issue if third-party
> plugins will create «ignite-sys-cache» from the code?
>
> Like just replacing `Ignite#cache` with the `Ignite#getOrCreateCache`.
>
> > 2 дек. 2021 г., в 16:13, Вячеслав Коптилин <slava.kopti...@gmail.com>
> написал(а):
> >
> > Hello Maxim,
> >
> >> I don't understand why you are using *backwards compatibility* for
> > completely internal things.
> >> Why you are thinking in terms of users usage when are talking about
> > ignite-sys-cache but not thinking when refactoring
> > First of all, we are talking about all plugin developers. It does not
> > matter it is open-source or proprietary plugins.
> > Honestly, I don't have a list of all possible plugins that have already
> > been developed and available under the ASF license, for instance.
> > Do you have such a list? Can you be sure that this change will not affect
> > anyone?
> >
> >> I don't understand why you are using *backwards compatibility* for
> > completely internal things.
> >> Why you are thinking in terms of users usage when are talking about
> > ignite-sys-cache but not thinking when refactoring
> > The system cache was the crucial thing in the architecture of Apache
> Ignite
> > 1.x and 2.x (at least 2.1 - 2.11?)
> >
> >> All the internals have been reworked and nobody even mentioned that it
> > may affect some of the plugin developers.
> > Yep, perhaps, some internal parts of Apache Ignite were reworked in order
> > to avoid using the system cache.
> > However, it is still a part of Ignite and it works and can be used in
> > plugins.
> > Honestly, the mentioned alternative, I mean the distributed metastorage,
> is
> > the INTERNAL thing as well.
> > It means that plugin developer depends on INTERNAL entities. (it does not
> > matter system-cache/metastorage)
> > IMHO, such questions should be CAREFULLY discussed with no rush.
> >
> >> I do not propose to rush with the ignite-sys-cache removal. I'd like to
> > collect all the technical stuff that we depend on, fix all of them and
> > after everything will be ready do a final removal.
> > Good! We are on the same page!
> >
> >> 1. Add deprecation for the 2.12 release. I hope it is still possible.
> > If I am not mistaken, the code freeze was October 29. I think it is too
> > late to introduce this change. We can add deprecation for the 2.13
> release.
> >
> >> Apache Ignite core still have some dependencies on ignite-sys-cache that
> > should fix for 2.13
> > Ok, I agree. We need to try to find out all edge cases and add new
> > abilities to the metastorage in order to cover all known
> > issues/requirements.
> >
> >> Remove the system cache in 2.14.
> > It depends on our progress with improving the distributed metastorage. In
> > general, I hope it will be possible.
> >
> > Thanks,
> > S.
> >
> > чт, 2 дек. 2021 г. в 13:36, Maxim Muzafarov <mmu...@apache.org>:
> >
> >> Pavel,
> >>
> >>
> >> I don't understand why you are using *backwards compatibility* for
> >> completely internal things. Why you are thinking in terms of users
> >> usage when are talking about ignite-sys-cache but not thinking when
> >> refactoring, for instance, all the checkpoint classes? Take a look at
> >> the [1] issue. All the internals have been reworked and nobody even
> >> mentioned that it may affect some of the plugin developers. This is
> >> really strange, so I can't agree with you.
> >>
> >>
> >> I do not propose to rush with the ignite-sys-cache removal. I'd like
> >> to collect all the technical stuff that we depend on, fix all of them
> >> and after everything will be ready do a final removal. Slava already
> >> mentioned some crucial cases, so I hope you and Val also help with the
> >> rest of them. Let's be more precise in terms *what we need to fix*.
> >>
> >>
> >> I've made some investigations related to the ignite-sys-cache and here
> >> is my proposal:
> >>
> >> 1. Add deprecation for the 2.12 release. I hope it is still possible.
> >>
> >> 2. Apache Ignite core still have some dependencies on ignite-sys-cache
> >> that should fix for 2.13:
> >>
> >> 2.1. CLUSTER_NAME property: when it's not set the `deploymentId` of
> >> system cache is used. Let's move it to metastorage.
> >> 2.2. When the Security is enabled each compute task name (hash to be
> >> more precise) is written to the ignite-sys-cache [2]. From my point of
> >> view, we can remove it in 2.13. Can anyone check?
> >> 2.3. Slava mentioned some issues with the distributed metastorage that
> >> might be fixed. I think this is doable.
> >>
> >> 3. Remove the system cache in 2.14.
> >>
> >>
> >>
> >> [1] https://issues.apache.org/jira/browse/IGNITE-13143
> >> [2]
> >>
> https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java#L201
> >>
> >> On Thu, 2 Dec 2021 at 12:56, Pavel Tupitsyn <ptupit...@apache.org>
> wrote:
> >>>
> >>> Maxim,
> >>>
> >>>> I don't think that we should wait for 3-rd party plugins to be updated
> >>>> this is an awful practice when the open-source product releases depend
> >>>> on some of the proprietary plugins
> >>>
> >>> This makes no sense, sorry.
> >>>
> >>> It is not that we depend on 3rd party plugins.
> >>> It is that *our users depend on us to preserve backwards
> compatibility*.
> >>> No one likes when their app breaks suddenly because of a library
> update.
> >>>
> >>> We know about one use case for sys-cache in GridGain, but there may be
> >>> more, no one knows.
> >>> Every breaking change should be carried out carefully and gradually.
> >>>
> >>>
> >>> On Thu, Dec 2, 2021 at 12:34 PM Maxim Muzafarov <mmu...@apache.org>
> >> wrote:
> >>>
> >>>> Slava,
> >>>>
> >>>> Thank you for the comments.
> >>>>
> >>>>> Maxim, the community must provide a reasonable time interval in
> >> order to
> >>>> notify all contributors and wait for updating all 3-rd party plugins.
> >>>>
> >>>> This is not actually true. We must notify about changes as earlier as
> >>>> possible and not only users but all the developers also. However, I
> >>>> don't think that we should wait for 3-rd party plugins to be updated
> >>>> this is an awful practice when the open-source product releases depend
> >>>> on some of the proprietary plugins. There is no dependency between
> >>>> Apache Ignite releases and proprietary plugin releases. If someone
> >>>> desires to upgrade to a new version of Apache Ignite it can update its
> >>>> plugins any time he likes.
> >>>>
> >>>>> We just need to provide a window that is enough to cover all related
> >>>> issues.
> >>>>
> >>>> Can you share all the issues you know, please?
> >>>>
> >>>>> distributed meta storage does not provide the ability to atomically
> >>>> change several properties at the same time (there are no transactions
> >> on
> >>>> this API).
> >>>>
> >>>> Can you share an example of what kind of properties we intend to
> >>>> change at the same? Will it be enough to change them through a single
> >>>> thread (e.g. the discovery thread or the exchange thread)? I agree
> >>>> here that distributed metastorage should provide such an ability,
> >>>> however, I can't find any real examples for Apache Ignite internal
> >>>> needs. Please, share the details and let's fix it.
> >>>>
> >>>> On Wed, 1 Dec 2021 at 23:19, Valentin Kulichenko
> >>>> <valentin.kuliche...@gmail.com> wrote:
> >>>>>
> >>>>> Agree with Slava. Two months is not enough time, especially
> >> considering
> >>>>> that the system cache is not functionally equivalent to the
> >> metastorage.
> >>>> I
> >>>>> suggest we do the following:
> >>>>>
> >>>>> 1. Write down the differences between the system cache and the
> >>>> metastorage,
> >>>>> and provide a transition guide for plugin developers.
> >>>>> 2. Deprecate the system cache in 2.13.
> >>>>> 3. Remove the system cache in one of the further releases. I don't
> >> think
> >>>>> it's reasonable to do this earlier than mid next year (even that is
> >>>>> potentially too early).
> >>>>>
> >>>>> Removing the system cache is the right move, but let's be more
> >>>> considerate
> >>>>> to the users. There is absolutely no need to rush.
> >>>>>
> >>>>> -Val
> >>>>>
> >>>>> On Wed, Dec 1, 2021 at 7:28 AM Вячеслав Коптилин <
> >>>> slava.kopti...@gmail.com>
> >>>>> wrote:
> >>>>>
> >>>>>> Hi Maxim,
> >>>>>>
> >>>>>>> On the other hand, I don't see any valuable reason why the change
> >>>> can't
> >>>>>> be done and we should wait for the future that never comes.
> >>>>>> Maxim, the community must provide a reasonable time interval in
> >> order
> >>>> to
> >>>>>> notify all contributors and wait for updating all 3-rd party
> >> plugins.
> >>>>>> Honestly, it does not seem to me that two, three months (the
> >> current
> >>>>>> timeline - end of March is the release date, so the end of Feb is
> >> code
> >>>>>> freeze) are quite enough.
> >>>>>>
> >>>>>>> I don't see any reasons why we should keep something in the CORE
> >>>> module
> >>>>>> that is being used at PLUGINS only. This is a lack of architecture
> >>>> design
> >>>>>> that must be fixed for sure;
> >>>>>> I agree with you. We just need to provide a window that is enough
> >> to
> >>>> cover
> >>>>>> all related issues.
> >>>>>> For example, distributed meta storage does not provide the ability
> >> to
> >>>>>> atomically change several properties at the same time (there are no
> >>>>>> transactions on this API).
> >>>>>>
> >>>>>> Perhaps, it would be nice to plan to remove the system cache on
> >> 2.14 or
> >>>>>> even 2.15. What do you think?
> >>>>>>
> >>>>>> Thanks,
> >>>>>> S.
> >>>>>>
> >>>>>>
> >>>>>> вт, 30 нояб. 2021 г. в 13:58, Maxim Muzafarov <mmu...@apache.org>:
> >>>>>>
> >>>>>>> Hello Val,
> >>>>>>>
> >>>>>>> Thank you for sharing the details. On the one hand, I agree with
> >> you
> >>>>>>> that there is no need to haste with this change and it must be
> >>>>>>> prepared carefully. On the other hand, I don't see any valuable
> >>>> reason
> >>>>>>> why the change can't be done and we should wait for the future
> >> that
> >>>>>>> never comes.
> >>>>>>>
> >>>>>>> Please, consider the following my considerations:
> >>>>>>>
> >>>>>>> - The release 2.13 is not started yet. It will take months to be
> >>>>>>> released (e.g. the end of March as a possible release date). The
> >> time
> >>>>>>> is more than enough;
> >>>>>>> - The 2.13 release has breaking changes, so it is a good
> >> opportunity
> >>>>>>> to fix some gaps;
> >>>>>>> - I don't see any reasons why we should keep something in the
> >> CORE
> >>>>>>> module that is being used at PLUGINS only. This is a lack of
> >>>>>>> architecture design that must be fixed for sure;
> >>>>>>> - The cache affects cluster stability and require additional
> >> human
> >>>>>>> resources for the code maintenance;
> >>>>>>> - As a straightforward solution plugins can create their own
> >> internal
> >>>>>>> caches and use them ever they like (or use the metastorage as I
> >>>>>>> mentioned earlier). Moving system cache to plugin doesn't look so
> >>>>>>> complicated and harmful;
> >>>>>>>
> >>>>>>> On Mon, 29 Nov 2021 at 23:07, Valentin Kulichenko
> >>>>>>> <valentin.kuliche...@gmail.com> wrote:
> >>>>>>>>
> >>>>>>>> Maxim,
> >>>>>>>>
> >>>>>>>> You're right that the system cache is still likely to be used
> >> by
> >>>>>> plugins.
> >>>>>>>> We at GridGain use it for security features, for example. As
> >> far
> >>>> as I
> >>>>>>> know,
> >>>>>>>> that's not the only case.
> >>>>>>>>
> >>>>>>>> I also agree that the metastorage should be the preferred way
> >> for
> >>>> this
> >>>>>>> kind
> >>>>>>>> of purposes, but is there any harm in keeping the system cache
> >> for
> >>>> now?
> >>>>>>>> Unlike the legacy Service Grid, this is not a public feature
> >> that
> >>>> can
> >>>>>> be
> >>>>>>>> used directly by a regular user, so I'm not sure why the rush.
> >>>>>>>>
> >>>>>>>> How about we instead deprecate the system cache, clearly
> >> document
> >>>> how
> >>>>>> to
> >>>>>>>> use the metastorage as an alternative, and then complete the
> >>>> removal
> >>>>>>>> sometime in the future?
> >>>>>>>>
> >>>>>>>> -Val
> >>>>>>>>
> >>>>>>>> On Sun, Nov 28, 2021 at 6:49 AM Maxim Muzafarov <
> >> mmu...@apache.org
> >>>>>
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>> Igniters,
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Since the legacy service grid implementation was removed [2]
> >> I'd
> >>>> like
> >>>>>>>>> to remove the ignite-sys-cache also. It is still possible
> >> that
> >>>> some
> >>>>>> of
> >>>>>>>>> Ignite plugins (e.g. security plugin) are still using this
> >> cache,
> >>>>>>>>> however, AFAIK this is not the reason to keep the outdated
> >> system
> >>>>>>>>> cache and these plugins must be migrated to the metastorage
> >>>> instead.
> >>>>>>>>>
> >>>>>>>>> I've filed the issue [1] for removal. Any objections?
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> [1] https://issues.apache.org/jira/browse/IGNITE-16008
> >>>>>>>>> [2] https://issues.apache.org/jira/browse/IGNITE-15758
> >>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> >>
>
>

Reply via email to