> 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