>> b. Implement IEP-61 - Common Replication Infrastructure
I suppose, that this is the main cause of the current discussion.
I hardly believe that this activity can be done without at least creating a
completely new branch.

пт, 13 нояб. 2020 г. в 11:12, Nikolay Izhikov <nizhi...@apache.org>:

> My suggestion:
>
> 1. Reduce Ignite3 scope to the following:
>         a. Delete all deprecated API and support of obsolete internal
> protocols.
>         b. Implement IEP-61 - Common Replication Infrastructure
>         c. Implement new Ignite management tool ignitectl as suggested
> during Ignite3 discussion.
>
> 2. Implement and release following improvements like transactions, Calcite
> based SQL, etc in the ongoing releases - Ignite 4, 5, 6
>
> My concern against separate Ignite 3 repo is the following:
>
> 1. We spread community to the two very separated part - Ignite3 developers
> and Ignite2 maintainers.  believe it’s bad for our community.
>         That can lead to the situation when we don’t fix critical or
> blocker issueds «because they will not exists in Ignite3»
>         That will lead to the solutions never reviewed or reviewed poorly.
>
> 2. It seems for me that current scope of Ignite3 is too big to be
> implemented in any reasonable time.
>
>
> > 13 нояб. 2020 г., в 10:57, Nikolay Izhikov <nizhikov....@gmail.com>
> написал(а):
> >
> > Hello, Valentin.
> >
> >> Nikolay, Maxim, are you OK with this route?
> >
> > -1 to have another repo for Ignite3 development.
> >
> >> 13 нояб. 2020 г., в 03:04, Valentin Kulichenko <
> valentin.kuliche...@gmail.com> написал(а):
> >>
> >> Folks,
> >>
> >> We already have multiple IEPs for Ignite 3.0, and as far as I know,
> there are contributors that would like to work on them (or probably already
> started). That said, we should make a decision as soon as possible.
> >>
> >> At this point, it doesn't seem that there are any strong objections to
> the technical side of things. So I would suggest the following:
> >>
> >> 1. Proceed with Alexey's approach to the development process, as it
> seems to be the best (in my opinion - the only) way to address all the
> technical concerns and issues expressed in the thread. We'll start by
> creating a new repo and a new TC project.
> >> 2. Start a separate discussion around transparency. If there are any
> changes we need to make to our contributor guidelines, I am happy to talk
> them through, but I don't think it's reasonable to delay feature
> development because of this. In the short term, I will make sure that
> everything that happens within the new repo is as open to the community as
> possible.
> >>
> >> Nikolay, Maxim, are you OK with this route?
> >>
> >> -Val
> >>
> >> On Tue, Nov 10, 2020 at 4:55 PM Valentin Kulichenko <
> valentin.kuliche...@gmail.com> wrote:
> >> Maxim,
> >>
> >> 2.x and 3.x will have to coexist for some time - I don't see how we can
> avoid this considering the set of proposed changes. That said, we
> effectively will need to have two "masters" - one for each major version.
> Master for 3.x can technically be a branch in the existing repo, but having
> a separate repo seems cleaner, simply because it will not be a "branch" in
> the traditional sense.
> >>
> >> Note that the new repo will still be under the Apache org, with the
> same set of committers, managed by the community, etc. All the development
> happening for 3.0 must follow the rules that we currently have (if
> anything, it's an opportunity to improve those rules).
> >>
> >> As I said during the call on Friday, I strongly believe that if there
> is a transparency issue, it will exist regardless of the approach we choose
> for 3.0. If community members develop without IEPs or public discussions,
> this will happen for both 2.x and 3.x unless we address this separately. I
> don't see how this is related to Alexey's suggestion, which targets
> *technical* issues with the product more than anything else. This a way to
> achieve better modularity, introduce better coverage with unit tests,
> reduce conflicts during development, etc.
> >>
> >> Coming back to transparency, let's identify the issues and fix them. It
> probably makes sense to have a separate discussion on this topic.
> >>
> >> -Val
> >>
> >> On Tue, Nov 10, 2020 at 1:05 PM Maxim Muzafarov <mmu...@apache.org>
> wrote:
> >> Sergey,
> >>
> >>
> >> Your summary makes sense to me.
> >>
> >> However, how we come up from *Development transparency* to *create a
> >> separate public repository dedicated for 3.0*? For me *development
> >> transparency* is about making changes in the master branch. These
> >> changes will definitely be seen by all the Ignite developers.
> >>
> >> A dedicated public repository is technically public and visible for
> >> everyone, but it allows development without IEPs, without public
> >> discussion (since all the code changes are not related to the master
> >> branch) it also allows a large number of assumptions and deviations
> >> (like code-style violations). It also not about *development
> >> transparency* since developers which are working on 3.0 is only a
> >> subset of all Ignite developers which may continue working on 2.x. For
> >> me, this would be a huge step backwards.
> >>
> >> Ignite veterans should remember how long the branch stabilization took
> >> for the 2.x version with the PDS.
> >>
> >>
> >> I think each breaking change should be passed through the master branch.
> >>
> >> On Tue, 10 Nov 2020 at 22:18, Alexei Scherbakov
> >> <alexey.scherbak...@gmail.com> wrote:
> >>>
> >>> Makes sense to me.
> >>>
> >>> вт, 10 нояб. 2020 г. в 18:47, Sergey Chugunov <
> sergey.chugu...@gmail.com>:
> >>>
> >>>> Igniters,
> >>>>
> >>>> I thought over Friday meeting ideas and concerns and summarized them
> in
> >>>> these three points:
> >>>>
> >>>>
> >>>>   1. *Components design unification approach.* New proposed components
> >>>>   will be developed by different contributors, but they need to be
> unified
> >>>>   and should integrate with each other easily. To ensure that I
> suggest
> >>>>   calling an architecture group that will create design guidelines
> for all
> >>>>   components and high-level overview of overall architecture. How
> code is
> >>>>   split into components, what are component boundaries, how component
> >>>>   lifecycle works and what are its interfaces - all these and other
> >>>> questions
> >>>>   should be covered.
> >>>>
> >>>>   2. *Scope management.* Apache 3.0 should be implemented within a
> >>>>   reasonable time, so we need some procedure to decide whether a
> >>>> particular
> >>>>   feature should be dropped from the scope of 3.0 and postponed to 3.1
> >>>>   release. To do so I suggest to range all features by two parameters:
> >>>>   criticality for 3.0 and amount of breaking changes. 3.0 scope should
> >>>>   include features of high criticality AND features with a big amount
> of
> >>>>   breaking changes. All other features can be made optional.
> >>>>
> >>>>   3. *Development transparency.* Development of all components should
> be
> >>>>   made as transparent for everyone as possible. Any contributor
> should be
> >>>>   able to look over any component at any stage of development. To
> achieve
> >>>>   this I suggest to create a separate public repository dedicated for
> 3.0
> >>>>   development. It will make the code available for everyone but when
> >>>>   development of 3.0 is done we won't loose any stars of our current
> >>>>   repository as we merge dev repo into main one and drop dev.
> >>>>
> >>>> Do these ideas make sense to you? Are there any concerns not covered
> by
> >>>> these suggestions?
> >>>>
> >>>> On Fri, Nov 6, 2020 at 7:36 PM Kseniya Romanova <
> romanova.ks....@gmail.com
> >>>>>
> >>>> wrote:
> >>>>
> >>>>> Here are the slides from Alexey Goncharuk. Let's think this over and
> >>>>> continue on Monday:
> >>>>>
> >>>>>
> >>>>
> https://go.gridgain.com/rs/491-TWR-806/images/Ignite_3_Plans_and_development_process.pdf
> >>>>>
> >>>>> чт, 5 нояб. 2020 г. в 11:13, Anton Vinogradov <a...@apache.org>:
> >>>>>
> >>>>>> Folks,
> >>>>>>
> >>>>>> Should we perform cleanup work before (r)evolutional changes?
> >>>>>> My huge proposal is to get rid of things which we don't need anyway
> >>>>>> - local caches,
> >>>>>> - strange tx modes,
> >>>>>> - code overcomplexity because of RollingUpgrade feature never
> attended
> >>>> at
> >>>>>> AI,
> >>>>>> - etc,
> >>>>>> before choosing the way.
> >>>>>>
> >>>>>> On Tue, Nov 3, 2020 at 3:31 PM Valentin Kulichenko <
> >>>>>> valentin.kuliche...@gmail.com> wrote:
> >>>>>>
> >>>>>>> Ksenia, thanks for scheduling this on such short notice!
> >>>>>>>
> >>>>>>> As for the original topic, I do support Alexey's idea. We're not
> >>>> going
> >>>>> to
> >>>>>>> rewrite anything from scratch, as most of the components are going
> to
> >>>>> be
> >>>>>>> moved as-is or with minimal modifications. However, the changes
> that
> >>>>> are
> >>>>>>> proposed imply serious rework of the core parts of the code, which
> >>>> are
> >>>>>> not
> >>>>>>> properly decoupled from each other and from other parts. This makes
> >>>> the
> >>>>>>> incremental approach borderline impossible. Developing in a new
> repo,
> >>>>>>> however, addresses this concern. As a bonus, we can also refactor
> the
> >>>>>> code,
> >>>>>>> introduce better decoupling, get rid of kernel context, and develop
> >>>>> unit
> >>>>>>> tests (finally!).
> >>>>>>>
> >>>>>>> Basically, this proposal only affects the *process*, not the set of
> >>>>>> changes
> >>>>>>> we had discussed before. Ignite 3.0 is our unique chance to make
> >>>> things
> >>>>>>> right.
> >>>>>>>
> >>>>>>> -Val
> >>>>>>>
> >>>>>>> On Tue, Nov 3, 2020 at 3:06 AM Kseniya Romanova <
> >>>>>> romanova.ks....@gmail.com
> >>>>>>>>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>>> Pavel, all the interesting points will be anyway published here in
> >>>>>>> English
> >>>>>>>> (as the principal "if it's not on devlist it doesn't happened" is
> >>>>> still
> >>>>>>>> relevant). This is just a quick call for a group of developers.
> >>>> Later
> >>>>>> we
> >>>>>>>> can do a separate presentation of idea and discussion in English
> as
> >>>>> we
> >>>>>>> did
> >>>>>>>> for the Ignite 3.0 draft of changes.
> >>>>>>>>
> >>>>>>>> вт, 3 нояб. 2020 г. в 13:52, Pavel Tupitsyn <ptupit...@apache.org
> >>>>> :
> >>>>>>>>
> >>>>>>>>> Kseniya,
> >>>>>>>>>
> >>>>>>>>> Thanks for scheduling this call.
> >>>>>>>>> Do you think we can switch to English if non-Russian speaking
> >>>>>> community
> >>>>>>>>> members decide to join?
> >>>>>>>>>
> >>>>>>>>> On Tue, Nov 3, 2020 at 1:32 PM Kseniya Romanova <
> >>>>>>>> romanova.ks....@gmail.com
> >>>>>>>>>>
> >>>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> Let's do this community discussion open. Here's the link on
> >>>> zoom
> >>>>>> call
> >>>>>>>> in
> >>>>>>>>>> Russian for Friday 6 PM:
> >>>>>>>>>>
> >>>>>>
> https://www.meetup.com/Moscow-Apache-Ignite-Meetup/events/274360378/
> >>>>>>>>>>
> >>>>>>>>>> вт, 3 нояб. 2020 г. в 12:49, Nikolay Izhikov <
> >>>>> nizhi...@apache.org
> >>>>>>> :
> >>>>>>>>>>
> >>>>>>>>>>> Time works for me.
> >>>>>>>>>>>
> >>>>>>>>>>>> 3 нояб. 2020 г., в 12:40, Alexey Goncharuk <
> >>>>>>>>> alexey.goncha...@gmail.com
> >>>>>>>>>>>
> >>>>>>>>>>> написал(а):
> >>>>>>>>>>>>
> >>>>>>>>>>>> Nikolay,
> >>>>>>>>>>>>
> >>>>>>>>>>>> I am up for the call. I will try to explain my reasoning in
> >>>>>>> greater
> >>>>>>>>>>> detail
> >>>>>>>>>>>> and will be glad to hear the concerns. Will this Friday,
> >>>> Nov
> >>>>>> 6th,
> >>>>>>>>> work?
> >>>>>>>>>>>>
> >>>>>>>>>>>> вт, 3 нояб. 2020 г. в 10:09, Nikolay Izhikov <
> >>>>>>> nizhi...@apache.org
> >>>>>>>>> :
> >>>>>>>>>>>>
> >>>>>>>>>>>>> Igniters, should we have a call for this topic?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> 2 нояб. 2020 г., в 18:53, Pavel Tupitsyn <
> >>>>>> ptupit...@apache.org
> >>>>>>>>
> >>>>>>>>>>>>> написал(а):
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> not intend to rewrite everything from scratch
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Every single test from Ignite 2.x should be moved to
> >>>>> Ignite
> >>>>>> 3
> >>>>>>>>>>>>>>> regardless of how we choose to proceed.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Alexey, thank you for the explanation, this addresses all
> >>>>> of
> >>>>>> my
> >>>>>>>>>>> concerns.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> On Mon, Nov 2, 2020 at 6:43 PM Andrey Mashenkov <
> >>>>>>>>>>>>> andrey.mashen...@gmail.com>
> >>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Hi, Igniters.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> * AFAIU, we need a new repo if we want to apply
> >>>> different
> >>>>>>>>>> restrictions
> >>>>>>>>>>>>> to
> >>>>>>>>>>>>>>> pull requests,
> >>>>>>>>>>>>>>> otherwise I see no difference for myself.
> >>>>>>>>>>>>>>> E.g. make static analysis (do we have?), compile,
> >>>> styles,
> >>>>>> and
> >>>>>>>>>> javadoc
> >>>>>>>>>>>>>>> checks mandatory.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> I think that relaxed requirements here will lead to bad
> >>>>>>> product
> >>>>>>>>>>> quality.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> * Agree with Pavel, we should 'keep' integrations tests
> >>>>>>> somehow.
> >>>>>>>>>>>>>>> During active development tests will be broken most of
> >>>>> time,
> >>>>>>> so,
> >>>>>>>>>>>>>>> I'd port them e.g. suite-by-suite once we will have a
> >>>>> stable
> >>>>>>> and
> >>>>>>>>>>>>> featured
> >>>>>>>>>>>>>>> environment to run them and of course make test's code
> >>>>> clear
> >>>>>>> and
> >>>>>>>>>> avoid
> >>>>>>>>>>>>>>> bad/non-relevant ones.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> * I like bottom-up approach.
> >>>>>>>>>>>>>>> With it we could make a better framework. I mean clear
> >>>>>>> component
> >>>>>>>>>>>>> lifecycle,
> >>>>>>>>>>>>>>> component wiring mechanics, general methods to approach
> >>>>> core
> >>>>>>>>>>> components
> >>>>>>>>>>>>>>> such as exchange/communication
> >>>>>>>>>>>>>>> to avoid code mess like we have in ExchangeFuture with
> >>>> all
> >>>>>>> these
> >>>>>>>>>>> custom
> >>>>>>>>>>>>>>> callbacks for each component, interfaces like
> >>>>>>>>>>>>>>> PartitionsExchangeAware, IgniteChangeGlobalStateSupport
> >>>>> and
> >>>>>>>>>>>>>>> a pack of
> >>>>>>>>>>>>>
> >>>>>> start/stop/onKernalStart/onPluginStart/onActivate/onDisconnected
> >>>>>>>>>>>>>>> and so on in various unexpected places.
> >>>>>>>>>>>>>>> Hope, we will be able to port most of the good code to
> >>>> the
> >>>>>> new
> >>>>>>>>>>> framework
> >>>>>>>>>>>>>>> version.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> On Mon, Nov 2, 2020 at 6:18 PM Alexey Goncharuk <
> >>>>>>>>>>>>>>> alexey.goncha...@gmail.com>
> >>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Nikolay, Pavel,
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Thanks for the feedback! First of all, I wanted to
> >>>> stress
> >>>>>>> that
> >>>>>>>> I
> >>>>>>>>> do
> >>>>>>>>>>> not
> >>>>>>>>>>>>>>>> intend to rewrite everything from scratch (I never used
> >>>>>> this
> >>>>>>>>>> phrase).
> >>>>>>>>>>>>>>> There
> >>>>>>>>>>>>>>>> are significant parts of code that would be moved with
> >>>>>>> minimal
> >>>>>>>>>>>>>>>> modifications. Second, I never said that we will get
> >>>> rid
> >>>>> of
> >>>>>>> the
> >>>>>>>>> old
> >>>>>>>>>>>>> tests
> >>>>>>>>>>>>>>>> codebase. Every single test from Ignite 2.x should be
> >>>>> moved
> >>>>>>> to
> >>>>>>>>>>> Ignite 3
> >>>>>>>>>>>>>>>> regardless of how we choose to proceed.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> My point is that for some parts of the code a clean
> >>>>>> bottom-up
> >>>>>>>>>>>>>>>> implementation will be cheaper in many ways. Let me
> >>>> give
> >>>>>> you
> >>>>>>> a
> >>>>>>>>> few
> >>>>>>>>>>>>>>> concrete
> >>>>>>>>>>>>>>>> examples:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> - I think no one can object that we need a cleanly
> >>>>>> separated
> >>>>>>>>>>>>>>> persistence
> >>>>>>>>>>>>>>>> layer for Ignite. There is a very raw draft IEP for
> >>>> this
> >>>>>>>>> already.
> >>>>>>>>>> On
> >>>>>>>>>>>>>>> the
> >>>>>>>>>>>>>>>> other hand, I think we also can agree that we need a
> >>>>>>>> split-brain
> >>>>>>>>>>>>>>>> resistant
> >>>>>>>>>>>>>>>> replication protocol for caches. There is also an IEP
> >>>>> for
> >>>>>>>> this.
> >>>>>>>>>>>>>>> Neither
> >>>>>>>>>>>>>>>> of
> >>>>>>>>>>>>>>>> the changes is a good fit for 2.x because they are
> >>>>> likely
> >>>>>> to
> >>>>>>>>>>>>> introduce
> >>>>>>>>>>>>>>>> breaking changes in the persistence layer,
> >>>> configuration
> >>>>>> and
> >>>>>>>>>>>>> behavior.
> >>>>>>>>>>>>>>>> Additionally, these components are now tightly
> >>>> coupled,
> >>>>> so
> >>>>>>>> there
> >>>>>>>>>> is
> >>>>>>>>>>>>> no
> >>>>>>>>>>>>>>>> way
> >>>>>>>>>>>>>>>> these two changes can be implemented in parallel and
> >>>>> then
> >>>>>>>> merged
> >>>>>>>>>>>>>>>> together
> >>>>>>>>>>>>>>>> easily. So what we will end up with is having to
> >>>>> implement
> >>>>>>>> these
> >>>>>>>>>>>>>>> changes
> >>>>>>>>>>>>>>>> sequentially, fixing all existing tests twice, and
> >>>>>>> essentially
> >>>>>>>>>>>>>>> throwing
> >>>>>>>>>>>>>>>> away half of the work done because the other part of
> >>>> the
> >>>>>>>> change
> >>>>>>>>> is
> >>>>>>>>>>>>>>>> re-implemented
> >>>>>>>>>>>>>>>> - Similar example goes with getting rid of
> >>>>>>>> IgniteInternalFuture
> >>>>>>>>>> and
> >>>>>>>>>>>>>>>> replacing it with CompletableFuture, and any other
> >>>>> change
> >>>>>>> that
> >>>>>>>>>>>>> touches
> >>>>>>>>>>>>>>>> the
> >>>>>>>>>>>>>>>> asynchronous part of the code.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Third, I do not see how this choice affects the UX of
> >>>>>> Ignite.
> >>>>>>>> The
> >>>>>>>>>> end
> >>>>>>>>>>>>>>> user
> >>>>>>>>>>>>>>>> experience must be fixed in the IEP regardless of the
> >>>>>>>> development
> >>>>>>>>>>>>> process
> >>>>>>>>>>>>>>>> and the fact that we have gaps in this area in Ignite
> >>>> 2.x
> >>>>>>> just
> >>>>>>>>>>> confirms
> >>>>>>>>>>>>>>>> that.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Pavel, agree that a repo/branch is a technicality, I
> >>>>> guess
> >>>>>> if
> >>>>>>>>>>>>>>> reformulate,
> >>>>>>>>>>>>>>>> my point is that we might agree to have a single
> >>>>>> development
> >>>>>>>>> master
> >>>>>>>>>>>>>>> branch
> >>>>>>>>>>>>>>>> with 'disassembled' end-to-end functionality for some
> >>>>>> period
> >>>>>>> of
> >>>>>>>>>> time
> >>>>>>>>>>> to
> >>>>>>>>>>>>>>>> speed up development, and re-assemble the core features
> >>>>>> after
> >>>>>>>>>> having
> >>>>>>>>>>>>>>>> submodules tested independently.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Nikolay,
> >>>>>>>>>>>>>>>>> We have many features that have to evolve.
> >>>>>>>>>>>>>>>>> Snapshots, rebalance, tooling, tracing, zookeeper
> >>>>> support,
> >>>>>>>> etc.
> >>>>>>>>>>>>>>>> This is not very specific. In the end, resources are
> >>>>>> limited
> >>>>>>>> and
> >>>>>>>>> we
> >>>>>>>>>>>>> will
> >>>>>>>>>>>>>>>> not be able to drive both tracks simultaneously,
> >>>>> especially
> >>>>>>>>> after a
> >>>>>>>>>>>>>>> couple
> >>>>>>>>>>>>>>>> of features having been implemented for Ignite 3.0. If
> >>>>>> there
> >>>>>>>> are
> >>>>>>>>>>> indeed
> >>>>>>>>>>>>>>>> some major changes that we want to do in Ignite 2.x
> >>>>> instead
> >>>>>>> of
> >>>>>>>>>>> putting
> >>>>>>>>>>>>>>>> effort into 3.0 - let's discuss them. I am just not
> >>>> aware
> >>>>>> of
> >>>>>>>> any,
> >>>>>>>>>>>>> that's
> >>>>>>>>>>>>>>>> why I am eager to move forward with Ignite 3.0.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> We have bugs and issues that can be fixed in 2.x
> >>>> without
> >>>>>>>>> breaking
> >>>>>>>>>>>>>>> backward
> >>>>>>>>>>>>>>>> compatibility.
> >>>>>>>>>>>>>>>>> We have many users who are happy with the 2.x with all
> >>>>>> it’s
> >>>>>>>>>> issues.
> >>>>>>>>>>>>>>>> These changes will be covered by end-to-end tests and
> >>>>>>> migrated
> >>>>>>>> to
> >>>>>>>>>>>>> Ignite
> >>>>>>>>>>>>>>>> 3.0, so I see no issues here.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Finally, Anton & Nikolay
> >>>>>>>>>>>>>>>> I do not have an estimate for this simply because the
> >>>>>>> activity
> >>>>>>>> is
> >>>>>>>>>>>>>>>> community-driven and it depends on the number of people
> >>>>>>> willing
> >>>>>>>>> to
> >>>>>>>>>>>>>>>> contribute. With the current pace, I would hope to have
> >>>>> an
> >>>>>> RC
> >>>>>>>> of
> >>>>>>>>>>> Ignite
> >>>>>>>>>>>>>>> 3.0
> >>>>>>>>>>>>>>>> to be ready by the end of 2021. My gut feeling is that
> >>>> by
> >>>>>>>> moving
> >>>>>>>>>> with
> >>>>>>>>>>>>>>>> incremental changes, we will not be able to implement
> >>>>> even
> >>>>>>> half
> >>>>>>>>> of
> >>>>>>>>>>> the
> >>>>>>>>>>>>>>>> wishlist by that time.
> >>>>>>>>>>>>>>>> I doubt that releasing several major releases with
> >>>>> breaking
> >>>>>>>>> changes
> >>>>>>>>>>>>> will
> >>>>>>>>>>>>>>>> make Ignite users happy either because each upgrade
> >>>> will
> >>>>>> cost
> >>>>>>>>>> Ignite
> >>>>>>>>>>>>>>> users
> >>>>>>>>>>>>>>>> money, so the fewer major versions we release, the
> >>>>> better.
> >>>>>>> Thus
> >>>>>>>>> my
> >>>>>>>>>>> wish
> >>>>>>>>>>>>>>> to
> >>>>>>>>>>>>>>>> include all breaking changes in one release.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> I'll be now quiet for a while, let's see what other
> >>>>>> community
> >>>>>>>>>> members
> >>>>>>>>>>>>>>>> think.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> пн, 2 нояб. 2020 г. в 15:52, Pavel Tupitsyn <
> >>>>>>>>> ptupit...@apache.org
> >>>>>>>>>>> :
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> 1. Rewriting from scratch is never a good idea.
> >>>>>>>>>>>>>>>>> We don't want to follow the path of Netscape and lose
> >>>>> all
> >>>>>>> our
> >>>>>>>>>> users
> >>>>>>>>>>>>>>>>> by the time we have a working 3.0 [1]
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> 2. Not sure about new repo - seems like some pain and
> >>>> no
> >>>>>>> gain,
> >>>>>>>>>>> what's
> >>>>>>>>>>>>>>> the
> >>>>>>>>>>>>>>>>> problem with a branch?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> 3. We should keep existing integration tests when
> >>>>>> possible.
> >>>>>>>>>>>>>>>>> We have accumulated a lot of edge case knowledge over
> >>>>> the
> >>>>>>>> years,
> >>>>>>>>>>>>>>>>> it is not a good idea to send all of that down the
> >>>>> drain.
> >>>>>>>>>>>>>>>>> Yes, integration tests are slow, but they are the most
> >>>>>>>> valuable.
> >>>>>>>>>>>>>>>>> I think we can move more stuff into nightly runs and
> >>>>> have
> >>>>>> a
> >>>>>>>> fast
> >>>>>>>>>> and
> >>>>>>>>>>>>>>>> modern
> >>>>>>>>>>>>>>>>> basic suite.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Alexey, you are much more familiar with the Ignite
> >>>> core
> >>>>>>>> codebase
> >>>>>>>>>>> than
> >>>>>>>>>>>>>>>> most
> >>>>>>>>>>>>>>>>> of us,
> >>>>>>>>>>>>>>>>> can you please explain in more detail which particular
> >>>>>>>> feature,
> >>>>>>>>> in
> >>>>>>>>>>>>> your
> >>>>>>>>>>>>>>>>> opinion,
> >>>>>>>>>>>>>>>>> mandates this "start from scratch" approach?
> >>>>>>>>>>>>>>>>> Is it really not possible at all to follow a less
> >>>>> radical
> >>>>>>> way?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> [1]
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> On Mon, Nov 2, 2020 at 2:25 PM Nikolay Izhikov <
> >>>>>>>>>> nizhi...@apache.org
> >>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> Hello, Alexey.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> I think that «rewriting from scratch» approach has a
> >>>>> high
> >>>>>>>> risk
> >>>>>>>>> to
> >>>>>>>>>>>>>>> make
> >>>>>>>>>>>>>>>>> new
> >>>>>>>>>>>>>>>>>> features unusable.
> >>>>>>>>>>>>>>>>>> At the time Ignite2 was started no-one wants to do
> >>>> bad
> >>>>> UX
> >>>>>>> or
> >>>>>>>>> bad
> >>>>>>>>>>>>>>>>> features.
> >>>>>>>>>>>>>>>>>> Nevertheless, it happen.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> I think we can avoid it with the Ignite3 and
> >>>> successors
> >>>>>> if
> >>>>>>> we
> >>>>>>>>>> will
> >>>>>>>>>>>>>>> move
> >>>>>>>>>>>>>>>>>> step by step without keeping backward compatibility
> >>>>>>>>>>>>>>>>>> With the step by step approach, we can focus on each
> >>>>>>>> component
> >>>>>>>>>>>>>>>>> separately.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> What new features are we planning to implement for
> >>>>>> Ignite
> >>>>>>>> 2.x?
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> We have many features that have to evolve.
> >>>>>>>>>>>>>>>>>> Snapshots, rebalance, tooling, tracing, zookeeper
> >>>>>> support,
> >>>>>>>> etc.
> >>>>>>>>>>>>>>>>>> We have bugs and issues that can be fixed in 2.x
> >>>>> without
> >>>>>>>>> breaking
> >>>>>>>>>>>>>>>>> backward
> >>>>>>>>>>>>>>>>>> compatibility.
> >>>>>>>>>>>>>>>>>> We have many users who are happy with the 2.x with
> >>>> all
> >>>>>> it’s
> >>>>>>>>>> issues.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> 2 нояб. 2020 г., в 14:09, Anton Vinogradov <
> >>>>>> a...@apache.org
> >>>>>>>>
> >>>>>>>>>>>>>>>> написал(а):
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Alexey,
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Do we have any estimates of how fast we'll be able
> >>>> to
> >>>>>> gain
> >>>>>>>>>>>>>>>>>> production-ready
> >>>>>>>>>>>>>>>>>>> AI 3.0 in case of a "new repo" choice?
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> On Mon, Nov 2, 2020 at 2:01 PM Alexey Goncharuk <
> >>>>>>>>>>>>>>>>>> alexey.goncha...@gmail.com>
> >>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> Nikolay,
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> What new features are we planning to implement for
> >>>>>> Ignite
> >>>>>>>>> 2.x?
> >>>>>>>>>> I
> >>>>>>>>>>>>>>>> think
> >>>>>>>>>>>>>>>>>> once
> >>>>>>>>>>>>>>>>>>>> we commence working on Ignite 3.0, we should
> >>>>> gradually
> >>>>>>>> cease
> >>>>>>>>>> the
> >>>>>>>>>>>>>>>>>> activity
> >>>>>>>>>>>>>>>>>>>> on Ignite 2.x to mere bugfixes because such
> >>>> parallel
> >>>>>>>>>> development
> >>>>>>>>>>>>>>>> will
> >>>>>>>>>>>>>>>>> be
> >>>>>>>>>>>>>>>>>>>> overwhelming regardless of how we choose to
> >>>> proceed.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> пн, 2 нояб. 2020 г. в 13:38, Nikolay Izhikov <
> >>>>>>>>>>> nizhi...@apache.org
> >>>>>>>>>>>>>>>> :
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> To be clear:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> I would suggest creating a new repository for
> >>>>> Ignite
> >>>>>>> 3.0
> >>>>>>>>>>>>>>>> (perhaps, a
> >>>>>>>>>>>>>>>>>>>> new
> >>>>>>>>>>>>>>>>>>>>> clean branch, but a new repo looks nicer to me)
> >>>> and
> >>>>> a
> >>>>>>> new
> >>>>>>>>>> Ignite
> >>>>>>>>>>>>>>>> 3.0
> >>>>>>>>>>>>>>>>>>>>> TeamCity project.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> +1 for new Team City project.
> >>>>>>>>>>>>>>>>>>>>> +1 for new branch for Ignite3.
> >>>>>>>>>>>>>>>>>>>>> -1 for new repo.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> 2 нояб. 2020 г., в 13:35, Nikolay Izhikov <
> >>>>>>>>>>>>>>> nizhikov....@gmail.com
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> написал(а):
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Hello, Alexey.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> I think it will hurt our project more than help.
> >>>>>>>>>>>>>>>>>>>>>> Developing new features for 2 separate branches
> >>>>> with
> >>>>>>> the
> >>>>>>>>>>>>>>> different
> >>>>>>>>>>>>>>>>>> APIs
> >>>>>>>>>>>>>>>>>>>>> and internal structure is overwhelming
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Maybe we should relax a bit requirements for
> >>>>> Ignite3?
> >>>>>>>>>>>>>>>>>>>>>> Maybe we should move step by step and make
> >>>> Ignite3
> >>>>>> with
> >>>>>>>> new
> >>>>>>>>>>>>>>>>>>>>> configuration than Ignite4 with new transactions,
> >>>>> etc?
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> 2 нояб. 2020 г., в 13:14, Alexey Goncharuk <
> >>>>>>>>>>>>>>>>>>>> alexey.goncha...@gmail.com>
> >>>>>>>>>>>>>>>>>>>>> написал(а):
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Igniters,
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> I wanted to pitch a rather radical idea
> >>>> regarding
> >>>>>> the
> >>>>>>>>> Ignite
> >>>>>>>>>>>>>>> 3.0
> >>>>>>>>>>>>>>>>>>>>>>> development which has occurred to me some time
> >>>>> ago.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> We already have several IEPs targeted to Ignite
> >>>>> 3.0
> >>>>>>>> which
> >>>>>>>>>>> imply
> >>>>>>>>>>>>>>>>> major
> >>>>>>>>>>>>>>>>>>>>>>> changes to the codebase (the change in
> >>>> replication
> >>>>>>>>> protocol
> >>>>>>>>>>> and
> >>>>>>>>>>>>>>>>> thus
> >>>>>>>>>>>>>>>>>>>>>>> transactions, change in binary format, updated
> >>>>>>>>> metastorage,
> >>>>>>>>>>>>>>> etc).
> >>>>>>>>>>>>>>>>> We
> >>>>>>>>>>>>>>>>>>>>> also
> >>>>>>>>>>>>>>>>>>>>>>> planned significant changes in public APIs:
> >>>>>>>> configuration
> >>>>>>>>>>>>>>> format
> >>>>>>>>>>>>>>>>>>>> change,
> >>>>>>>>>>>>>>>>>>>>>>> improvements in cache APIs, SQL APIs,
> >>>> transaction
> >>>>>> mode
> >>>>>>>>>> rework.
> >>>>>>>>>>>>>>>> The
> >>>>>>>>>>>>>>>>>>>>> wishlist
> >>>>>>>>>>>>>>>>>>>>>>> of changes for Ignite 3.0 is huge.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> So, I was wondering whether it makes sense to
> >>>> try
> >>>>> to
> >>>>>>>>> change
> >>>>>>>>>>> the
> >>>>>>>>>>>>>>>> old
> >>>>>>>>>>>>>>>>>>>>>>> codebase, or start with a new baseline and move
> >>>>> old
> >>>>>>>> pieces
> >>>>>>>>>> of
> >>>>>>>>>>>>>>>> code
> >>>>>>>>>>>>>>>>>>>> that
> >>>>>>>>>>>>>>>>>>>>> do
> >>>>>>>>>>>>>>>>>>>>>>> not require significant rework. Personally, I
> >>>>> would
> >>>>>> go
> >>>>>>>>> with
> >>>>>>>>>>> the
> >>>>>>>>>>>>>>>>>> second
> >>>>>>>>>>>>>>>>>>>>>>> option for the following reasons:
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> - We have a chance to shift the development
> >>>>> paradigm
> >>>>>>> in
> >>>>>>>>> the
> >>>>>>>>>>>>>>>> project
> >>>>>>>>>>>>>>>>>>>> and
> >>>>>>>>>>>>>>>>>>>>>>> introduce the practice of true unit-tests. In
> >>>> the
> >>>>>> new
> >>>>>>>>>> baseline
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>>> the
> >>>>>>>>>>>>>>>>>>>>>>> beginning there will be no ability to run an
> >>>>>>> end-to-end
> >>>>>>>>>>>>>>> scenario,
> >>>>>>>>>>>>>>>>>>>> thus
> >>>>>>>>>>>>>>>>>>>>> we
> >>>>>>>>>>>>>>>>>>>>>>> will be forced to write unit-tests. So far, such
> >>>>>>>> practice
> >>>>>>>>>> was
> >>>>>>>>>>>>>>>> hard
> >>>>>>>>>>>>>>>>> to
> >>>>>>>>>>>>>>>>>>>>>>> implement because of tight coupling between
> >>>> Ignite
> >>>>>>>>>> components
> >>>>>>>>>>>>>>> and
> >>>>>>>>>>>>>>>>>>>>> inability
> >>>>>>>>>>>>>>>>>>>>>>> to instantiate components without an instance of
> >>>>>>>>>>> KernalContext.
> >>>>>>>>>>>>>>>> For
> >>>>>>>>>>>>>>>>>>>>>>> example, we should be able to thoroughly test
> >>>>>> internal
> >>>>>>>>>>>>>>>> primitives,
> >>>>>>>>>>>>>>>>>>>>> such as
> >>>>>>>>>>>>>>>>>>>>>>> replication protocol (without actual
> >>>>> communication),
> >>>>>>>>>>>>>>> distributed
> >>>>>>>>>>>>>>>>>>>>>>> metastorage contracts, persistence layer, etc.
> >>>>>>>>>>>>>>>>>>>>>>> - We will significantly reduce the development
> >>>>> cycle
> >>>>>>> in
> >>>>>>>>> the
> >>>>>>>>>>>>>>>>> beginning
> >>>>>>>>>>>>>>>>>>>>>>> (right now the RunAll takes two hours of
> >>>>>> astronomical
> >>>>>>>> time
> >>>>>>>>>>> with
> >>>>>>>>>>>>>>>>> empty
> >>>>>>>>>>>>>>>>>>>>> TC;
> >>>>>>>>>>>>>>>>>>>>>>> in the new approach developer will be able to
> >>>> run
> >>>>>> ALL
> >>>>>>>>> tests
> >>>>>>>>>>>>>>>> locally
> >>>>>>>>>>>>>>>>>>>> in
> >>>>>>>>>>>>>>>>>>>>> a
> >>>>>>>>>>>>>>>>>>>>>>> matter of minutes)
> >>>>>>>>>>>>>>>>>>>>>>> - We can get rid of TC bot and enforce green TC
> >>>> by
> >>>>>>>>>> integrating
> >>>>>>>>>>>>>>> TC
> >>>>>>>>>>>>>>>>>>>> build
> >>>>>>>>>>>>>>>>>>>>>>> results with GitHub PRs (the same way Travis is
> >>>>>>>> currently
> >>>>>>>>>>>>>>>>> integrated
> >>>>>>>>>>>>>>>>>>>>> to PR
> >>>>>>>>>>>>>>>>>>>>>>> check). We should restrict PR merge without a TC
> >>>>>> check
> >>>>>>>>>>>>>>>>>>>>>>> - We will still have to re-write all tests, but
> >>>>> only
> >>>>>>>> once.
> >>>>>>>>>> If
> >>>>>>>>>>>>>>> we
> >>>>>>>>>>>>>>>>> try
> >>>>>>>>>>>>>>>>>>>> to
> >>>>>>>>>>>>>>>>>>>>>>> modify the old codebase, we would need to modify
> >>>>> all
> >>>>>>> the
> >>>>>>>>>> tests
> >>>>>>>>>>>>>>>> for
> >>>>>>>>>>>>>>>>>>>>> every
> >>>>>>>>>>>>>>>>>>>>>>> major change (public API change, configuration
> >>>>>> change)
> >>>>>>>>>>>>>>>>>>>>>>> - We will have fewer conflicts when working
> >>>>>> together.
> >>>>>>>> For
> >>>>>>>>>>>>>>>> example,
> >>>>>>>>>>>>>>>>> I
> >>>>>>>>>>>>>>>>>>>>>>> cannot imagine how one would merge two changes
> >>>> of
> >>>>>>>> getting
> >>>>>>>>>> rid
> >>>>>>>>>>>>>>> of
> >>>>>>>>>>>>>>>>>>>>>>> IgniteFuture and changes in replication
> >>>> protocol,
> >>>>>> for
> >>>>>>>>>> example
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Technically, I would suggest creating a new
> >>>>>> repository
> >>>>>>>> for
> >>>>>>>>>>>>>>> Ignite
> >>>>>>>>>>>>>>>>> 3.0
> >>>>>>>>>>>>>>>>>>>>>>> (perhaps, a new clean branch, but a new repo
> >>>> looks
> >>>>>>> nicer
> >>>>>>>>> to
> >>>>>>>>>>> me)
> >>>>>>>>>>>>>>>>> and a
> >>>>>>>>>>>>>>>>>>>>> new
> >>>>>>>>>>>>>>>>>>>>>>> Ignite 3.0 TeamCity project.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> While it may seem quite radical, I do believe
> >>>> that
> >>>>>>> this
> >>>>>>>>>>>>>>> approach
> >>>>>>>>>>>>>>>>> will
> >>>>>>>>>>>>>>>>>>>>> give
> >>>>>>>>>>>>>>>>>>>>>>> us more benefits than trying to make such major
> >>>>>>> changes
> >>>>>>>> in
> >>>>>>>>>> the
> >>>>>>>>>>>>>>>>>>>> existing
> >>>>>>>>>>>>>>>>>>>>>>> codebase. If needed, let's schedule a discord
> >>>> chat
> >>>>>>> like
> >>>>>>>>>> before
> >>>>>>>>>>>>>>> to
> >>>>>>>>>>>>>>>>>>>>> discuss
> >>>>>>>>>>>>>>>>>>>>>>> this.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> WDYT?
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> --
> >>>>>>>>>>>>>>> Best regards,
> >>>>>>>>>>>>>>> Andrey V. Mashenkov
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>>
> >>> --
> >>>
> >>> Best regards,
> >>> Alexei Scherbakov
> >
>
>
>

-- 
Sincerely yours, Ivan Daschinskiy

Reply via email to