Hello Maxim, > Properties are not too important and we can remove unnecessary > functionality reflecting them even, for 2.8 -> 2.9 releases for instance. IMHO, we should preserve source, binary and behavioral compatibility. Removing methods from public API may break all these requirements.
> As for rebalancing SYNC caches first like here [1], it breaks the > meaning of currently used `rebalanceOrder` property. The ASYNC cache > with the rebalance order `1` will be rebalanced after the SYNC cache > with the rebalance order `2`. > https://issues.apache.org/jira/browse/IGNITE-12705 This is not correct. Please take a look at javadoc: Note that a cache with {@link CacheRebalanceMode#SYNC SYNC} rebalancing mode always takes precedence over caches with {@link CacheRebalanceMode#ASYNC ASYNC} rebalancing mode in the group of caches with *the same rebalance order.* This means that ASYNC cache with rebalance order '1' will be rebalanced *before *the SYNC cache with the rebalance order '2' in your example. Thanks, Slava. чт, 20 февр. 2020 г. в 17:18, Maxim Muzafarov <mmu...@apache.org>: > Slava, > > I don't know the right answer to this case, but I think what exactly > compatibility is important: > > 1. PDS compatibility > 2. Messaging compatibility > 3. Rolling upgrades > 4. Compile application on newer 2.x version > > Properties are not too important and we can remove unnecessary > functionality reflecting them even, for 2.8 -> 2.9 releases for > instance. > > > As for rebalancing SYNC caches first like here [1], it breaks the > meaning of currently used `rebalanceOrder` property. The ASYNC cache > with the rebalance order `1` will be rebalanced after the SYNC cache > with the rebalance order `2`. This will confuse users much more than > removing rebalanceDelay\rebalanceOrder functionality. > > > [1] https://issues.apache.org/jira/browse/IGNITE-12705 > > On Thu, 20 Feb 2020 at 16:49, Вячеслав Коптилин > <slava.kopti...@gmail.com> wrote: > > > > Hello Maxim, > > > > In general, we should not remove existing public APIs / properties until > > the major version is released, even though the community has an agreement > > that these properties are useless. > > I fully support the idea that rebalanceOrder, rebalanceDelay, and > > CacheRebalanceMode#NONE should be marked with @Deprecated right now and > > should be removed in a major version of AI. > > > > Thanks, > > S. > > > > чт, 20 февр. 2020 г. в 16:41, Maxim Muzafarov <mmu...@apache.org>: > > > > > Folks, > > > > > > > > > Can we not only mark `rebalanceDelay` and `rebalanceOrder` with > > > @deprecated annotation but also remove its support from the source > > > code? For instance, for the next 2.9 release. I see the next > > > advantages here: > > > > > > 1. It will greatly simplify the implementation of ExchageManager (It > > > also overcomplicated for now). > > > 2. We already have BLT support for persistence and in-memory caches, > > > so from a user perspective, there are no changes (in general). > > > > > > > > > Also, I think these properties were had meaning for Apache Ignite 1.x > > > version, but not for 2.x. > > > Are there any reasons to wait for removing them it 3.0? > > > > > > On Tue, 18 Feb 2020 at 12:21, Alexei Scherbakov > > > <alexey.scherbak...@gmail.com> wrote: > > > > > > > > Folks, > > > > > > > > Looks like we came to an agreement - rebalanceDelay and > rebalanceOrder > > > > should be deprecated. > > > > > > > > Anyone else has objections ? > > > > > > > > > > > > чт, 13 февр. 2020 г. в 14:40, Alexei Scherbakov < > > > > alexey.scherbak...@gmail.com>: > > > > > > > > > But in combination with BLT it will work as intended - no > rebalancing > > > > > under the cover. > > > > > > > > > > чт, 13 февр. 2020 г. в 14:39, Alexei Scherbakov < > > > > > alexey.scherbak...@gmail.com>: > > > > > > > > > >> Of course, stable topology will be just a hint. > > > > >> > > > > >> Any node can leave at any moment. > > > > >> > > > > >> чт, 13 февр. 2020 г. в 14:35, Alexei Scherbakov < > > > > >> alexey.scherbak...@gmail.com>: > > > > >> > > > > >>> 1. Yes > > > > >>> > > > > >>> 2. This is right but doesn't sound like a bug. The rebalancing > will > > > be > > > > >>> finished before releasing syncFut and partitions will contain all > > > necessary > > > > >>> data (but are still in moving state). > > > > >>> > > > > >>> 3. No, local node doesn't wait the rebalancing on all grid nodes. > > > > >>> > > > > >>> Actually, I think SYNC mode should be dropped as well. Instead we > > > must > > > > >>> provide the convenient public API to wait for "stable" topology. > > > > >>> > > > > >>> > > > > >>> чт, 13 февр. 2020 г. в 14:09, Maxim Muzafarov <mmu...@apache.org > >: > > > > >>> > > > > >>>> Pavel, > > > > >>>> > > > > >>>> It's still a big question regarding SYNC rebalance mode. Here > is my > > > > >>>> thoughts. > > > > >>>> > > > > >>>> 1. Yes, we must rebalance such caches prior to ASYNC one (if the > > > > >>>> rebalanceOrder configuration will be removed). > > > > >>>> > > > > >>>> 2. When persistence is enabled and when WAL is disabled (on the > > > first > > > > >>>> rebalance start), I think we should finish syncFuture only on > > > > >>>> checkpoint like we are enabling the WAL state for cache group > and > > > > >>>> simultaneously owning all MOVING partitions. But currently, I've > > > seen > > > > >>>> that syncFuture finishes when there are no remaining partitions > left > > > > >>>> [1]. > > > > >>>> Is it correct? Seems like a bug. > > > > >>>> > > > > >>>> 3. In my understanding, a new local node can start only when ALL > > > SYNC > > > > >>>> cache groups have been fully rebalanced on ALL nodes, right? > But how > > > > >>>> about late affinity assignment here? It seems that SYNC caches > will > > > be > > > > >>>> rebalanced locally on the node, the node will start, but other > nodes > > > > >>>> still think this node is not operational (late affinity > assignment > > > not > > > > >>>> occurred yet). > > > > >>>> > > > > >>>> > > > > >>>> [1] > > > > >>>> > > > > https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java#L1561 > > > > >>>> > > > > >>>> On Thu, 13 Feb 2020 at 12:57, Pavel Pereslegin < > xxt...@gmail.com> > > > > >>>> wrote: > > > > >>>> > > > > > >>>> > > +1 to deprecate rebalanceOrder and remove related > functionality, > > > > >>>> > Meant to "rework related functionality" not "remove". > > > > >>>> > > > > > >>>> > чт, 13 февр. 2020 г. в 12:47, Pavel Pereslegin < > xxt...@gmail.com > > > >: > > > > >>>> > > > > > > >>>> > > Hello, > > > > >>>> > > > > > > >>>> > > +1 to deprecate rebalanceOrder and remove related > functionality, > > > > >>>> > > should we create a separate ticket for this? > > > > >>>> > > > > > > >>>> > > Btw, as I understand, SYNC mode is only useful for in-memory > > > caches, > > > > >>>> > > because when persistence is enabled (and WAL is disabled > during > > > > >>>> > > rebalancing), even "ignite-sys-cache" owns partitions only > > > after all > > > > >>>> > > cache groups are rebalanced. Thus, even utility cache is > still > > > > >>>> > > inoperable after node startup when persistence is enabled. > Do we > > > > >>>> > > really need to wait for SYNC caches when a node starts with > > > enabled > > > > >>>> > > persistence or should we enabled WAL for SYNC-caches? > > > > >>>> > > > > > > >>>> > > чт, 13 февр. 2020 г. в 11:13, Ivan Rakov < > ivan.glu...@gmail.com > > > >: > > > > >>>> > > > > > > > >>>> > > > Hello, > > > > >>>> > > > > > > > >>>> > > > +1 from me for rebalance delay deprecation. > > > > >>>> > > > I can imagine only one actual case for this option: > prevent > > > > >>>> excessive load > > > > >>>> > > > on the cluster in case of temporary short-term topology > > > changes > > > > >>>> (e.g. node > > > > >>>> > > > is stopped for a while and then returned back). > > > > >>>> > > > Now it's handled by baseline auto adjustment in a much > more > > > > >>>> correct way: > > > > >>>> > > > partitions are not reassigned within a maintenance > interval > > > > >>>> (unlike with > > > > >>>> > > > the rebalance delay). > > > > >>>> > > > I also don't think that ability to configure rebalance > delay > > > per > > > > >>>> cache is > > > > >>>> > > > crucial. > > > > >>>> > > > > > > > >>>> > > > > rebalanceOrder is also useless, agreed. > > > > >>>> > > > +1 > > > > >>>> > > > Except for one case: we may want to rebalance caches with > > > > >>>> > > > CacheRebalanceMode.SYNC first. But anyway, this behavior > > > doesn't > > > > >>>> require a > > > > >>>> > > > separate property to be enabled. > > > > >>>> > > > > > > > >>>> > > > On Wed, Feb 12, 2020 at 4:54 PM Alexei Scherbakov < > > > > >>>> > > > alexey.scherbak...@gmail.com> wrote: > > > > >>>> > > > > > > > >>>> > > > > Maxim, > > > > >>>> > > > > > > > > >>>> > > > > rebalanceDelay was introduced before the BLT appear in > the > > > > >>>> product to solve > > > > >>>> > > > > scenarios which are now solved by BLT. > > > > >>>> > > > > > > > > >>>> > > > > It's pointless for me having it in the product since > BLT was > > > > >>>> introduced. > > > > >>>> > > > > > > > > >>>> > > > > I do not think delaying rebalancing per cache group has > any > > > > >>>> meaning. I > > > > >>>> > > > > cannot image any reason for it. > > > > >>>> > > > > > > > > >>>> > > > > rebalanceOrder is also useless, agreed. > > > > >>>> > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > >>>> > > > > ср, 12 февр. 2020 г. в 16:19, Maxim Muzafarov < > > > > >>>> mmu...@apache.org>: > > > > >>>> > > > > > > > > >>>> > > > > > Alexey, > > > > >>>> > > > > > > > > > >>>> > > > > > Why do you think delaying of historical rebalance (on > BLT > > > > >>>> node join) > > > > >>>> > > > > > for particular cache groups is not the real world use > > > case? > > > > >>>> Probably > > > > >>>> > > > > > the same topic may be started on user-list to collect > more > > > > >>>> use cases > > > > >>>> > > > > > from real users. > > > > >>>> > > > > > > > > > >>>> > > > > > In general, I support reducing the number of available > > > > >>>> rebalance > > > > >>>> > > > > > configuration parameters, but we should do it really > > > > >>>> carefully. > > > > >>>> > > > > > I can also propose - rebalanceOrder param for > removing. > > > > >>>> > > > > > > > > > >>>> > > > > > On Wed, 12 Feb 2020 at 15:50, Alexei Scherbakov > > > > >>>> > > > > > <alexey.scherbak...@gmail.com> wrote: > > > > >>>> > > > > > > > > > > >>>> > > > > > > Maxim, > > > > >>>> > > > > > > > > > > >>>> > > > > > > In general rebalanceDelay is used to delay/disable > > > > >>>> rebalance then > > > > >>>> > > > > > topology > > > > >>>> > > > > > > is changed. > > > > >>>> > > > > > > Right now we have BLT to avoid unnecesary > rebalancing > > > when > > > > >>>> topology is > > > > >>>> > > > > > > changed. > > > > >>>> > > > > > > If a node left from cluster topology no rebalancing > > > happens > > > > >>>> until the > > > > >>>> > > > > > node > > > > >>>> > > > > > > explicitly removed from baseline topology. > > > > >>>> > > > > > > > > > > >>>> > > > > > > I would like to know real world scenarios which can > not > > > be > > > > >>>> covered by > > > > >>>> > > > > BLT > > > > >>>> > > > > > > configuration. > > > > >>>> > > > > > > > > > > >>>> > > > > > > > > > > >>>> > > > > > > > > > > >>>> > > > > > > ср, 12 февр. 2020 г. в 15:16, Maxim Muzafarov < > > > > >>>> mmu...@apache.org>: > > > > >>>> > > > > > > > > > > >>>> > > > > > > > Alexey, > > > > >>>> > > > > > > > > > > > >>>> > > > > > > > > All scenarios where rebalanceDelay has meaning > are > > > > >>>> handled by > > > > >>>> > > > > > baseline > > > > >>>> > > > > > > > topology now. > > > > >>>> > > > > > > > > > > > >>>> > > > > > > > Can you, please, provide more details here e.g. > the > > > whole > > > > >>>> list of > > > > >>>> > > > > > > > scenarios where rebalanceDelay is used and how > these > > > > >>>> handled by > > > > >>>> > > > > > > > baseline topology? > > > > >>>> > > > > > > > > > > > >>>> > > > > > > > Actually, I doubt that it covers exactly all the > cases > > > > >>>> due to > > > > >>>> > > > > > > > rebalanceDelay is a "per cache group property" > rather > > > > >>>> than "baseline" > > > > >>>> > > > > > > > is meaningful for the whole topology. > > > > >>>> > > > > > > > > > > > >>>> > > > > > > > On Wed, 12 Feb 2020 at 12:58, Alexei Scherbakov > > > > >>>> > > > > > > > <alexey.scherbak...@gmail.com> wrote: > > > > >>>> > > > > > > > > > > > > >>>> > > > > > > > > I've meant baseline topology. > > > > >>>> > > > > > > > > > > > > >>>> > > > > > > > > ср, 12 февр. 2020 г. в 12:41, Alexei Scherbakov > < > > > > >>>> > > > > > > > > alexey.scherbak...@gmail.com>: > > > > >>>> > > > > > > > > > > > > >>>> > > > > > > > > > > > > > >>>> > > > > > > > > > V.Pyatkov > > > > >>>> > > > > > > > > > > > > > >>>> > > > > > > > > > Doesn't rebalance topology solves it ? > > > > >>>> > > > > > > > > > > > > > >>>> > > > > > > > > > ср, 12 февр. 2020 г. в 12:31, V.Pyatkov < > > > > >>>> vldpyat...@gmail.com>: > > > > >>>> > > > > > > > > > > > > > >>>> > > > > > > > > >> Hi, > > > > >>>> > > > > > > > > >> > > > > >>>> > > > > > > > > >> I am sure we can to reduce this ability, but > do > > > not > > > > >>>> completely. > > > > >>>> > > > > > > > > >> We can use rebalance delay for disable it > until > > > > >>>> manually > > > > >>>> > > > > > triggered. > > > > >>>> > > > > > > > > >> > > > > >>>> > > > > > > > > >> CacheConfiguration#setRebalanceDelay(-1) > > > > >>>> > > > > > > > > >> > > > > >>>> > > > > > > > > >> It may helpful for cluster where can not > allow > > > > >>>> performance drop > > > > >>>> > > > > > from > > > > >>>> > > > > > > > > >> rebalance at any time. > > > > >>>> > > > > > > > > >> > > > > >>>> > > > > > > > > >> > > > > >>>> > > > > > > > > >> > > > > >>>> > > > > > > > > >> -- > > > > >>>> > > > > > > > > >> Sent from: > > > > >>>> > > > > http://apache-ignite-developers.2346864.n4.nabble.com/ > > > > >>>> > > > > > > > > >> > > > > >>>> > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > >>>> > > > > > > > > > -- > > > > >>>> > > > > > > > > > > > > > >>>> > > > > > > > > > Best regards, > > > > >>>> > > > > > > > > > Alexei Scherbakov > > > > >>>> > > > > > > > > > > > > > >>>> > > > > > > > > > > > > >>>> > > > > > > > > > > > > >>>> > > > > > > > > -- > > > > >>>> > > > > > > > > > > > > >>>> > > > > > > > > Best regards, > > > > >>>> > > > > > > > > Alexei Scherbakov > > > > >>>> > > > > > > > > > > > >>>> > > > > > > > > > > >>>> > > > > > > > > > > >>>> > > > > > > -- > > > > >>>> > > > > > > > > > > >>>> > > > > > > Best regards, > > > > >>>> > > > > > > Alexei Scherbakov > > > > >>>> > > > > > > > > > >>>> > > > > > > > > >>>> > > > > > > > > >>>> > > > > -- > > > > >>>> > > > > > > > > >>>> > > > > Best regards, > > > > >>>> > > > > Alexei Scherbakov > > > > >>>> > > > > > > > > >>>> > > > > >>> > > > > >>> > > > > >>> -- > > > > >>> > > > > >>> Best regards, > > > > >>> Alexei Scherbakov > > > > >>> > > > > >> > > > > >> > > > > >> -- > > > > >> > > > > >> Best regards, > > > > >> Alexei Scherbakov > > > > >> > > > > > > > > > > > > > > > -- > > > > > > > > > > Best regards, > > > > > Alexei Scherbakov > > > > > > > > > > > > > > > > > -- > > > > > > > > Best regards, > > > > Alexei Scherbakov > > > >