Sergey.

> pay our (already huge) technical debt,

Can you, please, make your statement more specific?
What specific points of technical debt do we have?

I think we should write it down and solve the issues step by step.


> 16 нояб. 2020 г., в 14:28, Sergey Chugunov <sergey.chugu...@gmail.com> 
> написал(а):
> 
> Igniters,
> 
> I agree that create or not create is not a question, rephrasing
> Shakespeare.
> 
> My main point is that developing new features on top of old 2.x-style
> architecture is a bad idea. We will write the code and spend some time
> stabilizing it (which is expected and fine). But then, when we finally
> decide to fix our architecture and pay our (already huge) technical debt,
> we will have to rewrite this code again and spend time stabilizing it again.
> 
> Creating new components on top of 2.x (which is actually 1.x, nothing
> fundamentally new was introduced in terms of architecture) is equal to
> wasting time now and creating more worthless work for the future.
> 
> Earlier I suggested to rank all new features according to their criticality
> and amount of breaking changes and shape 3.0 scope based on this analysis.
> Let's get back to this idea and prepare a scope based on publicly shared
> arguments.
> 
> One more thing I would add here. Our users are smart people and make
> decisions about upgrading or not upgrading to a new version based on
> cost/value balance. Incremental approach keeps cost (public API breaking
> changes) high but brings questionable amounts of value with each iteration.
> If we add more valuable features to 3.0 and force users to pay the cost
> only once they will be happier than if we split really needed changes to
> several major releases and send our users to hell of endless rewriting
> their codebases. In the latter case we'll see users to be much more
> reluctant to upgrade to newer versions.
> 
> Hope this makes sense.
> 
> On Mon, Nov 16, 2020 at 2:24 PM Nikolay Izhikov <nizhi...@apache.org> wrote:
> 
>>> Let's indeed focus on Sergey's suggestions on the design->development
>> approach.
>> 
>> +1
>> 
>>>  - API & configuration cleanup
>>>  - New management tool
>>>  - Schema-first approach
>>>  - New replication infrastructure
>> 
>> +1.
>> 
>>> 16 нояб. 2020 г., в 13:40, Alexey Goncharuk <alexey.goncha...@gmail.com>
>> написал(а):
>>> 
>>> Folks,
>>> 
>>> I think we are overly driven away by the phrase 'new repo' rather than
>> the
>>> essence of my suggestion. We can keep developing in the same repo, we can
>>> even keep developing in the master branch. My point is that Ignite 3.0
>> is a
>>> chance to move on with the architecture, so if we really want to make
>>> architectural improvements, we should not strive for incremental changes
>>> for *some parts of the code*.
>>> 
>>> Maxim,
>>> 
>>> To comment on your examples: I think that the huge effort that is
>> currently
>>> required to make any significant change in Ignite is the perfect example
>> of
>>> how we lack structure in the codebase. Yes, theoretically we can
>> introduce
>>> incremental changes in the code that will improve the structure, but my
>>> question is: we did not do it before, what will enforce us to make these
>>> changes now? With the current approach, adding a new feature increases
>> the
>>> test time non-linearly because without proper decoupling you have to test
>>> all possible combinations of features together. We can move faster than
>>> that.
>>> 
>>> I also do not agree that we should reduce the scope of Ignite 3.0 that
>>> much. I do not see how the schema-first approach can be properly and
>>> reliably implemented without a reliable HA metastorage, which in turn
>>> requires a reliable replication protocol to be implemented. Besides, if a
>>> number of people want to work on some Ignite feature, why should they
>> wait
>>> because not all community members have time to review the changes?
>>> 
>>> Let's indeed focus on Sergey's suggestions on the design->development
>>> approach. I back both Nikolay's and Maxim's scope, but I think we should
>>> unite them, not intersect, and the minimal list of changes to be included
>>> to Ignite 3.0 is:
>>> 
>>>  - API & configuration cleanup
>>>  - New management tool
>>>  - Schema-first approach
>>>  - New replication infrastructure
>>> 
>>> Any smaller subset of changes will leave Ignite 3.0 in a transient state
>>> with people being too afraid to move to it because there are more major
>>> breaking changes scheduled.
>>> 
>>> пт, 13 нояб. 2020 г. в 18:28, Alexey Zinoviev <zaleslaw....@gmail.com>:
>>> 
>>>> I'm -1 for creating a new repo.
>>>> Also I support Maxim's plan for 3.0
>>>> 
>>>> пт, 13 нояб. 2020 г. в 15:50, Maxim Muzafarov <mmu...@apache.org>:
>>>> 
>>>>> Val,
>>>>> 
>>>>> 
>>>>> Why *creating a new repo* is the main point we faced with? Would it be
>>>>> better to discuss the components design approach and scope management
>>>>> first suggested by Sergey Chugunov? I doubt that new repo will solve
>>>>> move us forward.
>>>>> 
>>>>> Currently, I'm -1 to create a new repo with the inputs above.
>>>>> 
>>>>> In addition to Nikolay's answer I see the following drawbacks of
>>>>> creating new repo:
>>>>> - we have very few positive examples of finalizing really huge
>>>>> improvements to *production-ready* states the others remains
>>>>> incomplete (MVCC, Calcite, Zookeeper, Tracing, Thread per Partition,
>>>>> etc)
>>>>> - AFAIK, the Native Persistence took a very long period of
>>>>> stabilization even after it has been developed (we must take it into
>>>>> account for developing new features like IEP-61)
>>>>> - feature development for a long period of time (like 3.0) without any
>>>>> releases will lead to all these changes became obsolete at the moment
>>>>> of release (AFAIK the 2.8 which released a year ago still has no big
>>>>> deployments)
>>>>> - human resources -- some of the Igniters may lose their interest for
>>>>> 3.0 during development, some of them may switch to different projects,
>>>>> etc.
>>>>> - do we all estimating the scope of 3.0 correct? The 2.8 release took
>> 1.5
>>>>> years.
>>>>> 
>>>>> Have I missed something?
>>>>> 
>>>>> 
>>>>> I suggest the following plan:
>>>>> 
>>>>> - initiate 3.0 development in the master branch (after 2.10 release
>>>>> change version to 3.0-SNAPSHOT instead of 2.11-SNAPSHOT)
>>>>> - cleanup and collapse all the current APIs (see To Be Removed List
>>>>> For Discussion on Apache Ignite 3.0 Wishlist)
>>>>> - reduce the scope for 3.0 even more. I suggest focusing on two
>>>>> things: Calcite + Schema-first approach
>>>>> - create feature branches for proposed IEPs (for 3.0 only)
>>>>> - create the release road map (allocate e.g. IEP-61 to 4.0 etc.)
>>>>> 
>>>>> On Fri, 13 Nov 2020 at 14:03, Ivan Daschinsky <ivanda...@gmail.com>
>>>> wrote:
>>>>>> 
>>>>>>>> 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