Hello Nikolay,

>>  plugin framework allows to implement internal components and use the
internal API.
> Can you please, point out to documentation or place in Ignite code that
describe this behaviour?

Looks like it states here https://ignite.apache.org/docs/latest/plugins

> The Ignite plugin system allows you to extend the core functionality of
> Ignite. Plugins have access to different internal Ignite components, such
> as security processor and others, and can extend the programmatic API of
> Ignite.


Thanks,
S.


сб, 4 дек. 2021 г. в 14:54, Nikolay Izhikov <nizhi...@apache.org>:

> Valentin
>
> >  plugin framework allows to implement internal components and use the
> internal API.
>
> Can you please, point out to documentation or place in Ignite code that
> describe this behaviour?
> AFAIK plugin can only use public API, internal API can be changed any time
> we want.
>
> > Folks, can anyone explain the rush?
>
> No rush from my side.
>
> Just want to understand your vision of integration points between Ignite
> and plugins.
>
> > Is there any specific reason for it?
>
> Intention of IEP-80 is to improve Ignite codebase by removing abandoned
> features.
>
> > But the fact is that there are users that can depend on the system cache
> via the plugin framework.
>
> Why this dependency can’t be changed to any regular cache?
> Just replace `Ignite#cache` to `Ignite#getOrCreateCache` and that’s it.
>
> Do we have some special guarantees or logic besides system cache?
>
>
> > 4 дек. 2021 г., в 02:14, Valentin Kulichenko <
> valentin.kuliche...@gmail.com> написал(а):
> >
> > Nikolay, that's right, plugin framework allows to implement internal
> > components and use the internal API. There is a difference between a
> plugin
> > and an extension that uses only public API
> >
> > Folks, can anyone explain the rush? Is there any specific reason for it?
> >
> > I think we all agree that this is a good change - system cache has to
> go. I
> > guess technically it's not even a breaking change, because system cache
> is
> > not a public API feature. But the fact is that there are users that can
> > depend on the system cache via the plugin framework. Let's be respectful
> to
> > those users, provide a reasonable documented alternative and give time.
> >
> > -Val
> >
> > On Fri, Dec 3, 2021 at 8:18 AM Nikolay Izhikov <nizhi...@apache.org>
> wrote:
> >
> >> I don’t understand how it possible.
> >>
> >> Are you talking about plugin that uses some kind of internal API?
> >>
> >>> 3 дек. 2021 г., в 18:50, Вячеслав Коптилин <slava.kopti...@gmail.com>
> >> написал(а):
> >>>
> >>> Hello Nikolay,
> >>>
> >>> If I am not mistaken, the method you mentioned, allows to create a
> "user"
> >>> cache that is available through public api for the user. This does not
> >>> cover the case when the plugin developer wants to hide such cache and
> >>> protect it form the end user (at least, via public api).
> >>>
> >>> Thanks,
> >>> S.
> >>>
> >>> пт, 3 дек. 2021 г., 14:15 Nikolay Izhikov <nizhi...@apache.org>:
> >>>
> >>>> 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