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 >>>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>> >>>> >> >>