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