Is it possible/reasonable to run a single vote for Ignite 2.9 and all the migrated extensions? This time. @Alex Plehanov <plehanov.a...@gmail.com>, what do you think?
If we decide to release the versions 1.0.0 of the extensions after 2.9 is out then it can last for a week or so...because we need to build, update docs, vote, publish. - Denis On Mon, Oct 12, 2020 at 7:19 PM Saikat Maitra <saikat.mai...@gmail.com> wrote: > Hi Denis, > > All the modules except OSGi have been migrated. Alexey is creating a > separate ticket for OSGi and we can migrate the same as well. > > My thoughts are Apache Ignite 2.9.0 and migrated extensions 1.0.0 to be > released together. I am thinking depending on the voting process and > testing cycles we can release the extensions 1.0.0 together with Apache > Ignite 2.9.0 or right after within days of Apache Ignite 2.9.0 release. > > > Regards, > Saikat > > On Mon, Oct 12, 2020 at 2:58 PM Denis Magda <dma...@apache.org> wrote: > >> Saikat, Alex, >> >> Based on your inputs here, it sounds like once Ignite 2.9 gets released, >> all the integrations that made their way to the extensions repo [1] will >> get stuck in limbo for some time. What I mean here: >> >> 1. While the users will be bumping up their ignite-core, >> ignite-indexing, etc. versions to 2.9, they won't find a 2.9 artifact for >> Kafka, Camel and other extensions >> 2. Also, the users won't find 1.0 versions of those extensions that >> also need to be released >> >> So, it's unclear how those users are supposed to upgrade to Ignite 2.9 if >> they use any of the extensions. Is it safe to use a 2.8 version of an >> extension? Or, should we release the 1.0 versions of all the migrated >> extensions together with 2.9? >> >> >> [1] https://github.com/apache/ignite-extensions/tree/master/modules >> >> >> - >> Denis >> >> >> On Tue, Oct 6, 2020 at 7:20 AM Alexey Goncharuk < >> alexey.goncha...@gmail.com> wrote: >> >>> Saikat, >>> >>> The plan sounds good to me! Do you have an idea for the timeline of the >>> module releases? Let me know if I can help in any way. >>> >>> Also, I was looking into the modularization IEP and noticed that OSGI >>> module is discussed to be moved to the extensions, but there is no >>> corresponding ticket. Should I create one? I will be happy to help with >>> moving this module to extensions. >>> >>> вт, 29 сент. 2020 г. в 03:03, Saikat Maitra <saikat.mai...@gmail.com>: >>> >>> > Hi Alexey, >>> > >>> > All the modules as planned in IEP-36 >>> > >>> https://cwiki.apache.org/confluence/display/IGNITE/IEP-36:+Modularization >>> > are migrated to ignite-extensions repository. >>> > >>> > We can definitely plan to release ignite-extensions modules. >>> > >>> > I have a pending PR related to the kafka module and the PR is in review >>> > https://github.com/apache/ignite/pull/8222 but its corresponding PR >>> has >>> > been merged in ignite-extensions repository. >>> > >>> > My thoughts / action items for the migration efforts and releases were >>> > as follows: >>> > >>> > 1. Merge the changes for https://github.com/apache/ignite/pull/8222 >>> > 2. Fix the upload nightly packages task for ignite-core to help fix the >>> > travis build failure in ignite-extensions repository. >>> > 3. Review and update the README.md files for the ignite-extensions >>> modules >>> > as required. >>> > 4. Update the docs for ignite-extensions modules in ignite-website. >>> > 5. Release each module separately and share updates. >>> > >>> > Please let me know if you have feedback. >>> > >>> > Regards, >>> > Saikat >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > On Mon, Sep 28, 2020 at 7:36 AM Petr Ivanov <mr.wei...@gmail.com> >>> wrote: >>> > >>> >> It seems that gitbox.apache.org is not available on CI/CD. >>> >> >>> >> I will try to update VCS to GitHub. >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> > On 28 Sep 2020, at 14:07, Alex Plehanov <plehanov.a...@gmail.com> >>> >> wrote: >>> >> > >>> >> > Guys, >>> >> > >>> >> > I've tried to build release candidate using TC [1]. But: >>> >> > 1. I can't choose a branch in this TC task (there is no such field). >>> >> > 2. On the "default" branch I got an error: Failed to collect >>> changes, >>> >> > error: List remote refs failed: >>> >> > org.apache.http.conn.ConnectTimeoutException: Connect to >>> >> > gitbox.apache.org:443 [gitbox.apache.org/52.202.80.70] failed: >>> connect >>> >> > timed out, VCS root: "GitBox [asf/ignite]" {instance id=300, parent >>> >> > internal id=74, parent id=GitBoxAsfIgnite, description: " >>> >> > https://gitbox.apache.org/repos/asf/ignite.git#refs/heads/master"} >>> >> > >>> >> > Is there some problem with this TC task? What am I doing wrong? >>> >> > >>> >> > [1] : >>> >> > >>> >> >>> https://ci.ignite.apache.org/viewType.html?buildTypeId=Releases_ApacheIgniteMain_ReleaseBuild >>> >> > >>> >> > пн, 28 сент. 2020 г. в 13:15, Alexey Goncharuk < >>> >> alexey.goncha...@gmail.com>: >>> >> > >>> >> >> Saikat, Nikolay, >>> >> >> >>> >> >> We have migrated a bunch of modules to ignite-extensions recently. >>> >> Given >>> >> >> that these modules will not be available in Ignite 2.9 anymore >>> (will >>> >> >> they?), should we also plan to release the extensions? >>> >> >> >>> >> >> ср, 23 сент. 2020 г. в 21:49, Alex Plehanov < >>> plehanov.a...@gmail.com>: >>> >> >> >>> >> >>> Igniters, >>> >> >>> >>> >> >>> I've prepared release notes for the 2.9 release [1]. Can anyone >>> review >>> >> >> it, >>> >> >>> please? >>> >> >>> >>> >> >>> [1]: https://github.com/apache/ignite/pull/8273 >>> >> >>> >>> >> >>> вт, 22 сент. 2020 г. в 09:39, Alex Plehanov < >>> plehanov.a...@gmail.com >>> >> >: >>> >> >>> >>> >> >>>> Guys, >>> >> >>>> >>> >> >>>> I've filled the ticket with reproducer [1] for the discovery bug. >>> >> This >>> >> >>> bug >>> >> >>>> caused by [2] ticket. We discussed with Vladimir Steshin >>> privately >>> >> and >>> >> >>>> decided to revert this ticket. I will do it today (after TC bot >>> visa) >>> >> >> if >>> >> >>>> there are no objections. >>> >> >>>> >>> >> >>>> [1]: https://issues.apache.org/jira/browse/IGNITE-13465 >>> >> >>>> [2]: https://issues.apache.org/jira/browse/IGNITE-13134 >>> >> >>>> >>> >> >>>> пн, 21 сент. 2020 г. в 11:08, Alex Plehanov < >>> plehanov.a...@gmail.com >>> >> >: >>> >> >>>> >>> >> >>>>> Guys, >>> >> >>>>> >>> >> >>>>> During internal testing, we've found a critical bug with >>> >> >>>>> discovery (cluster falls apart if two nodes segmented >>> sequentially). >>> >> >>> This >>> >> >>>>> problem is not reproduced in 2.8.1. I think we should fix it >>> >> >>>>> before release. Under investigation now. I'll let you know when >>> we >>> >> get >>> >> >>>>> something. >>> >> >>>>> >>> >> >>>>> чт, 17 сент. 2020 г. в 00:51, Andrey Gura <ag...@apache.org>: >>> >> >>>>> >>> >> >>>>>>> So what do you think? Should we proceed with a 'hacked' >>> version of >>> >> >>> the >>> >> >>>>>> message factory in 2.9 and go for the runtime message >>> generation in >>> >> >>> later >>> >> >>>>>> release, or keep the code clean and fix the regression in the >>> next >>> >> >>> releases? >>> >> >>>>>>> Andrey, can you take a look at my change? I think it is fairly >>> >> >>>>>> straightforward and does not change the semantics, just skips >>> the >>> >> >>> factory >>> >> >>>>>> closures for certain messages. >>> >> >>>>>> >>> >> >>>>>> IMHO 2.5% isn't too much especially because it isn't actual >>> for all >>> >> >>>>>> workloads (I didn't get any significant drops during >>> benchmarking). >>> >> >> So >>> >> >>>>>> I prefer the runtime generation in later releases. >>> >> >>>>>> >>> >> >>>>>> On Mon, Sep 14, 2020 at 12:41 PM Alexey Goncharuk >>> >> >>>>>> <alexey.goncha...@gmail.com> wrote: >>> >> >>>>>>> >>> >> >>>>>>> Alexey, Andrey, Igniters, >>> >> >>>>>>> >>> >> >>>>>>> So what do you think? Should we proceed with a 'hacked' >>> version of >>> >> >>> the >>> >> >>>>>> message factory in 2.9 and go for the runtime message >>> generation in >>> >> >>> later >>> >> >>>>>> release, or keep the code clean and fix the regression in the >>> next >>> >> >>> releases? >>> >> >>>>>>> Andrey, can you take a look at my change? I think it is fairly >>> >> >>>>>> straightforward and does not change the semantics, just skips >>> the >>> >> >>> factory >>> >> >>>>>> closures for certain messages. >>> >> >>>>>>> >>> >> >>>>>>> Personally, I would prefer fixing the regression given that we >>> >> also >>> >> >>>>>> introduced tracing in this release. >>> >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> пт, 11 сент. 2020 г. в 12:09, Alex Plehanov < >>> >> >> plehanov.a...@gmail.com >>> >> >>>> : >>> >> >>>>>>>> >>> >> >>>>>>>> Alexey, >>> >> >>>>>>>> >>> >> >>>>>>>> We've benchmarked by yardstick commits 130376741bf vs >>> ed52559eb95 >>> >> >>> and >>> >> >>>>>> the performance of ed52559eb95 is better for about 2.5% on >>> average >>> >> on >>> >> >>> our >>> >> >>>>>> environment (about the same results we got benchmarking >>> 65c30ec6 vs >>> >> >>>>>> 0606f03d). We've made 24 runs for each commit of >>> >> >>>>>> IgnitePutTxImplicitBenchmark (we got maximum drop for 2.9 on >>> this >>> >> >>>>>> benchmark), 200 seconds warmup, 300 seconds benchmark, 6 >>> servers, 5 >>> >> >>> clients >>> >> >>>>>> 50 threads each. Yardstick results for this configuration: >>> >> >>>>>>>> Commit 130376741bf: avg TPS=164096, avg latency=9173464 ns >>> >> >>>>>>>> Commit ed52559eb95: avg TPS=168283, avg latency=8945908 ns >>> >> >>>>>>>> >>> >> >>>>>>>> пт, 11 сент. 2020 г. в 09:51, Artem Budnikov < >>> >> >>>>>> a.budnikov.ign...@gmail.com>: >>> >> >>>>>>>>> >>> >> >>>>>>>>> Hi Everyone, >>> >> >>>>>>>>> >>> >> >>>>>>>>> I posted an instruction on how to publish the docs on >>> >> >>>>>> ignite.apache.org/docs [1]. When you finish with Ignite 2.9, >>> you >>> >> can >>> >> >>>>>> update the docs by following the instruction. Unfortunately, I >>> >> won't >>> >> >> be >>> >> >>>>>> able to spend any time on this project any longer. You can send >>> >> your >>> >> >>> pull >>> >> >>>>>> requests and questions about the documentation to Denis Magda. >>> >> >>>>>>>>> >>> >> >>>>>>>>> -Artem >>> >> >>>>>>>>> >>> >> >>>>>>>>> [1] : >>> >> >>>>>> >>> https://cwiki.apache.org/confluence/display/IGNITE/How+to+Document >>> >> >>>>>>>>> >>> >> >>>>>>>>> On Thu, Sep 10, 2020 at 2:45 PM Alexey Goncharuk < >>> >> >>>>>> alexey.goncha...@gmail.com> wrote: >>> >> >>>>>>>>>> >>> >> >>>>>>>>>> Alexey, >>> >> >>>>>>>>>> >>> >> >>>>>>>>>> I've tried to play with message factories locally, but >>> >> >>>>>> unfortunately, I >>> >> >>>>>>>>>> cannot spot the difference between old and new >>> implementation >>> >> in >>> >> >>>>>>>>>> distributed benchmarks. I pushed an implementation of >>> >> >>>>>> MessageFactoryImpl >>> >> >>>>>>>>>> with the old switch statement to the >>> ignite-2.9-revert-12568 >>> >> >>> branch >>> >> >>>>>>>>>> (discussed this with Andrey Gura, the change should be >>> >> >> compatible >>> >> >>>>>> with the >>> >> >>>>>>>>>> new metrics as we still use the register() mechanics). >>> >> >>>>>>>>>> >>> >> >>>>>>>>>> Can you check if this change makes any difference >>> >> >> performance-wise >>> >> >>>>>> in your >>> >> >>>>>>>>>> environment? If yes, we can go with runtime code >>> generation in >>> >> >> the >>> >> >>>>>> long >>> >> >>>>>>>>>> term: register classes and generate a dynamic message >>> factory >>> >> >> with >>> >> >>>>>> a switch >>> >> >>>>>>>>>> statement once all messages are registered (not in 2.9 >>> though, >>> >> >>>>>> obviously). >>> >> >>>>>>>>>> >>> >> >>>>>>>>>> ср, 9 сент. 2020 г. в 14:53, Alex Plehanov < >>> >> >>> plehanov.a...@gmail.com >>> >> >>>>>>> : >>> >> >>>>>>>>>> >>> >> >>>>>>>>>>> Hello guys, >>> >> >>>>>>>>>>> >>> >> >>>>>>>>>>> I've tried to optimize tracing implementation (ticket >>> [1]), it >>> >> >>>>>> reduced the >>> >> >>>>>>>>>>> drop, but not completely removed it. >>> >> >>>>>>>>>>> Ivan Rakov, Alexander Lapin, can you please review the >>> patch? >>> >> >>>>>>>>>>> Ivan Artiukhov, can you please benchmark the patch [2] >>> against >>> >> >>>>>> 2.8.1 >>> >> >>>>>>>>>>> release on your environment? >>> >> >>>>>>>>>>> With this patch on our environment, it's about a 3% drop >>> left, >>> >> >>>>>> it's close >>> >> >>>>>>>>>>> to measurement error and I think such a drop is not a >>> >> >>>>>> showstopper. Guys, >>> >> >>>>>>>>>>> WDYT? >>> >> >>>>>>>>>>> >>> >> >>>>>>>>>>> Also, I found that compatibility is broken for JDBC thin >>> >> >> driver >>> >> >>>>>> between 2.8 >>> >> >>>>>>>>>>> and 2.9 versions (ticket [3]). I think it's a blocker and >>> >> >> should >>> >> >>>>>> be >>> >> >>>>>>>>>>> fixed in 2.9. I've prepared the patch. >>> >> >>>>>>>>>>> Taras Ledkov, can you please review this patch? >>> >> >>>>>>>>>>> >>> >> >>>>>>>>>>> And one more ticket I propose to include into 2.9 [4] (NIO >>> >> >>> message >>> >> >>>>>>>>>>> send problem in some circumstances). I will cherry-pick >>> it if >>> >> >>>>>> there is no >>> >> >>>>>>>>>>> objection. >>> >> >>>>>>>>>>> >>> >> >>>>>>>>>>> [1] https://issues.apache.org/jira/browse/IGNITE-13411 >>> >> >>>>>>>>>>> [2] https://github.com/apache/ignite/pull/8223 >>> >> >>>>>>>>>>> [3] https://issues.apache.org/jira/browse/IGNITE-13414 >>> >> >>>>>>>>>>> [4] https://issues.apache.org/jira/browse/IGNITE-13361 >>> >> >>>>>>>>>>> >>> >> >>>>>>>>>>> пн, 7 сент. 2020 г. в 14:14, Maxim Muzafarov < >>> >> >> mmu...@apache.org >>> >> >>>> : >>> >> >>>>>>>>>>> >>> >> >>>>>>>>>>>> Alexey, >>> >> >>>>>>>>>>>> >>> >> >>>>>>>>>>>> I propose to include [1] issue to the 2.9 release. Since >>> >> >> this >>> >> >>>>>> issue is >>> >> >>>>>>>>>>>> related to the new master key change functionality which >>> >> >>>>>> haven't been >>> >> >>>>>>>>>>>> released yet I think it will be safe to cherry-pick >>> commit >>> >> >> to >>> >> >>>>>> the >>> >> >>>>>>>>>>>> release branch. >>> >> >>>>>>>>>>>> >>> >> >>>>>>>>>>>> [1] https://issues.apache.org/jira/browse/IGNITE-13390 >>> >> >>>>>>>>>>>> >>> >> >>>>>>>>>>>> On Tue, 1 Sep 2020 at 12:13, Nikolay Izhikov < >>> >> >>>>>> nizhi...@apache.org> >>> >> >>>>>>>>>>> wrote: >>> >> >>>>>>>>>>>>> >>> >> >>>>>>>>>>>>> Hello, Igniters. >>> >> >>>>>>>>>>>>> >>> >> >>>>>>>>>>>>> Alexey, please, include one more Python thin client fix >>> >> >> [1] >>> >> >>>>>> into the >>> >> >>>>>>>>>>> 2.9 >>> >> >>>>>>>>>>>> release >>> >> >>>>>>>>>>>>> It fixes kinda major issue - "Python client returns >>> fields >>> >> >>> in >>> >> >>>>>> wrong >>> >> >>>>>>>>>>>> order since the 2 row when fields_count>10" >>> >> >>>>>>>>>>>>> >>> >> >>>>>>>>>>>>> [1] https://issues.apache.org/jira/browse/IGNITE-12809 >>> >> >>>>>>>>>>>>> [2] >>> >> >>>>>>>>>>>> >>> >> >>>>>>>>>>> >>> >> >>>>>> >>> >> >>> >>> >> >> >>> >> >>> https://github.com/apache/ignite/commit/38025ee4167f05eaa2d6a2c5c2ab70c83a462cfc >>> >> >>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>> 31 авг. 2020 г., в 19:23, Alexey Goncharuk < >>> >> >>>>>>>>>>> alexey.goncha...@gmail.com> >>> >> >>>>>>>>>>>> написал(а): >>> >> >>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>> Alexey, thanks, got it. I am not sure we can optimize >>> >> >>>>>> anything out of >>> >> >>>>>>>>>>>> the >>> >> >>>>>>>>>>>>>> message factory with suppliers (at least I have no >>> ideas >>> >> >>>>>> right now), >>> >> >>>>>>>>>>> so >>> >> >>>>>>>>>>>>>> most likely the only move here is to switch back to the >>> >> >>>>>> switch >>> >> >>>>>>>>>>> approach >>> >> >>>>>>>>>>>>>> somehow preserving the metrics part. Probably, inlining >>> >> >>> the >>> >> >>>>>> Ignite >>> >> >>>>>>>>>>>> messages >>> >> >>>>>>>>>>>>>> to the IgniteMessageFactoryImpl should do the trick. >>> Let >>> >> >>> me >>> >> >>>>>> explore >>> >> >>>>>>>>>>> the >>> >> >>>>>>>>>>>>>> code a bit. >>> >> >>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>> P.S. I am surprised by the impact this part makes for >>> >> >> the >>> >> >>>>>>>>>>> performance. >>> >> >>>>>>>>>>>>>> Message creation is indeed on the hot path, but a >>> single >>> >> >>>>>> virtual call >>> >> >>>>>>>>>>>>>> should not make that much of a difference given the >>> >> >> amount >>> >> >>>>>> of other >>> >> >>>>>>>>>>>> work >>> >> >>>>>>>>>>>>>> happening during the message processing. >>> >> >>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>> пн, 31 авг. 2020 г. в 18:33, Alex Plehanov < >>> >> >>>>>> plehanov.a...@gmail.com >>> >> >>>>>>>>>>>> : >>> >> >>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>> Alexey, sorry, I wrongly interpreted our benchmark >>> >> >>> results. >>> >> >>>>>>>>>>> Actually, >>> >> >>>>>>>>>>>> we >>> >> >>>>>>>>>>>>>>> were looking for a drop using bi-sect in the range >>> >> >>> between >>> >> >>>>>> e6a7f93 >>> >> >>>>>>>>>>>> (first >>> >> >>>>>>>>>>>>>>> commit in the 2.9 branch after 2.8 branch cut) and >>> >> >>>>>> 6592dfa5 (last >>> >> >>>>>>>>>>>> commit in >>> >> >>>>>>>>>>>>>>> the 2.9 branch). And we found these two problematic >>> >> >>>>>> commits. >>> >> >>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>> Perhaps only IGNITE-13060 (Tracing) is responsible for >>> >> >> a >>> >> >>>>>> drop >>> >> >>>>>>>>>>> between >>> >> >>>>>>>>>>>>>>> 2.8.1 and 2.9 (we have benchmarked 2.8.1 vs 2.9 with >>> >> >>>>>> reverted >>> >> >>>>>>>>>>>> IGNITE-13060 >>> >> >>>>>>>>>>>>>>> now and performance looks the same) >>> >> >>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>> Ticket IGNITE-12568 (MessageFactory refactoring) is >>> not >>> >> >>>>>> related to >>> >> >>>>>>>>>>>> drop >>> >> >>>>>>>>>>>>>>> between 2.8.1 and 2.9, but still has some performance >>> >> >>>>>> problem, and >>> >> >>>>>>>>>>> we >>> >> >>>>>>>>>>>> can >>> >> >>>>>>>>>>>>>>> win back IGNITE-13060 drop by this ticket. >>> >> >>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>> Do we need more investigation on IGNITE-13060 or we >>> >> >> leave >>> >> >>>>>> it as is? >>> >> >>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>> What should we do with IGNITE-12568 (MessageFactory >>> >> >>>>>> refactoring)? >>> >> >>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>> пн, 31 авг. 2020 г. в 13:25, Alexey Goncharuk < >>> >> >>>>>>>>>>>> alexey.goncha...@gmail.com >>> >> >>>>>>>>>>>>>>>> : >>> >> >>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>> Alexey, >>> >> >>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>> While investigating, I found that IGNITE-12568 has an >>> >> >>>>>> incorrect fix >>> >> >>>>>>>>>>>>>>>> version and is actually present in ignite-2.8.1 >>> branch >>> >> >>>>>> [1], so it >>> >> >>>>>>>>>>>> cannot be >>> >> >>>>>>>>>>>>>>>> the source of the drop against 2.8.1. >>> >> >>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>> P.S. Looks like we need to enforce a more accurate >>> >> >> work >>> >> >>>>>> with fix >>> >> >>>>>>>>>>>> versions >>> >> >>>>>>>>>>>>>>>> or develop some sort of tooling to verify the fix >>> >> >>>>>> versions. >>> >> >>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>> --AG >>> >> >>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>> [1] >>> >> >>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>> >>> >> >>>>>>>>>>> >>> >> >>>>>> >>> >> >>> >>> >> >> >>> >> >>> https://github.com/apache/ignite/commit/3e492bd23851856bbd0385c6a419892d0bba2a34 >>> >> >>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>> пн, 31 авг. 2020 г. в 12:42, Alexey Goncharuk < >>> >> >>>>>>>>>>>> alexey.goncha...@gmail.com >>> >> >>>>>>>>>>>>>>>>> : >>> >> >>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>>> пт, 28 авг. 2020 г. в 11:16, Alex Plehanov < >>> >> >>>>>>>>>>> plehanov.a...@gmail.com >>> >> >>>>>>>>>>>>> : >>> >> >>>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>>>> Guys, >>> >> >>>>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>>>> We have benchmarked 2.9 without IGNITE-13060 and >>> >> >>>>>> IGNITE-12568 >>> >> >>>>>>>>>>>> (reverted >>> >> >>>>>>>>>>>>>>>>>> it >>> >> >>>>>>>>>>>>>>>>>> locally) and got the same performance as on 2.8.1 >>> >> >>>>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>>>> IGNITE-13060 (Tracing) - some code was added to hot >>> >> >>>>>> paths, to >>> >> >>>>>>>>>>> trace >>> >> >>>>>>>>>>>>>>>>>> these >>> >> >>>>>>>>>>>>>>>>>> hot paths, it's clear why we have performance drop >>> >> >>> here. >>> >> >>>>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>>>> IGNITE-12568 (MessageFactory refactoring) - >>> >> >>> switch/case >>> >> >>>>>> block was >>> >> >>>>>>>>>>>>>>>>>> refactored to an array of message suppliers. The >>> >> >>>>>> message factory >>> >> >>>>>>>>>>>> is on >>> >> >>>>>>>>>>>>>>>>>> the >>> >> >>>>>>>>>>>>>>>>>> hot path, which explains why this commit has an >>> >> >> impact >>> >> >>>>>> on total >>> >> >>>>>>>>>>>>>>>>>> performance. >>> >> >>>>>>>>>>>>>>>>>> I've checked JIT assembly output, done some JMH >>> >> >>>>>> microbenchmarks, >>> >> >>>>>>>>>>>> and >>> >> >>>>>>>>>>>>>>>>>> found >>> >> >>>>>>>>>>>>>>>>>> that old implementation of MessageFactory.create() >>> >> >>>>>> about 30-35% >>> >> >>>>>>>>>>>> faster >>> >> >>>>>>>>>>>>>>>>>> than >>> >> >>>>>>>>>>>>>>>>>> the new one. The reason - approach with switch/case >>> >> >>> can >>> >> >>>>>>>>>>> effectively >>> >> >>>>>>>>>>>>>>>>>> inline >>> >> >>>>>>>>>>>>>>>>>> message creation code, but with an array of >>> >> >> suppliers >>> >> >>>>>> relatively >>> >> >>>>>>>>>>>> heavy >>> >> >>>>>>>>>>>>>>>>>> "invokeinterface" cannot be skipped. I've tried to >>> >> >>>>>> rewrite the >>> >> >>>>>>>>>>> code >>> >> >>>>>>>>>>>>>>>>>> using >>> >> >>>>>>>>>>>>>>>>>> an abstract class for suppliers instead of an >>> >> >>> interface >>> >> >>>>>> (to >>> >> >>>>>>>>>>>>>>>>>> replace "invokeinterface" with the >>> "invokevirtual"), >>> >> >>>>>> but it gives >>> >> >>>>>>>>>>>> back >>> >> >>>>>>>>>>>>>>>>>> only >>> >> >>>>>>>>>>>>>>>>>> 10% of method performance and in this case, code >>> >> >> looks >>> >> >>>>>> ugly >>> >> >>>>>>>>>>>> (lambdas >>> >> >>>>>>>>>>>>>>>>>> can't >>> >> >>>>>>>>>>>>>>>>>> be used). Currently, I can't find any more ways to >>> >> >>>>>> optimize the >>> >> >>>>>>>>>>>> current >>> >> >>>>>>>>>>>>>>>>>> approach (except return to the switch/case block). >>> >> >>>>>> Andrey Gura, >>> >> >>>>>>>>>>> as >>> >> >>>>>>>>>>>> the >>> >> >>>>>>>>>>>>>>>>>> author of IGNITE-12568, maybe you have some ideas >>> >> >>> about >>> >> >>>>>>>>>>>> optimization? >>> >> >>>>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>>>> Perhaps we should revert IGNITE-12568, but there >>> are >>> >> >>>>>> some metrics >>> >> >>>>>>>>>>>>>>>>>> already >>> >> >>>>>>>>>>>>>>>>>> created, which can't be rewritten using old message >>> >> >>>>>> factory >>> >> >>>>>>>>>>>>>>>>>> implementation >>> >> >>>>>>>>>>>>>>>>>> (IGNITE-12756). Guys, WDYT? >>> >> >>>>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>>> Alexey, >>> >> >>>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>>> I see that IGNITE-12756 (metrics improvements) is >>> >> >>>>>> already released >>> >> >>>>>>>>>>>> in >>> >> >>>>>>>>>>>>>>>>> Ignite 2.8.1 while IGNITE-12568 (message factory) is >>> >> >>>>>> only present >>> >> >>>>>>>>>>>> in Ignite >>> >> >>>>>>>>>>>>>>>>> 2.9. Let's revert both IGNITE-12568 and whichever >>> new >>> >> >>>>>> metrics >>> >> >>>>>>>>>>>> created for >>> >> >>>>>>>>>>>>>>>>> 2.9 that depend on the new message factory to >>> unblock >>> >> >>>>>> the release >>> >> >>>>>>>>>>>> and deal >>> >> >>>>>>>>>>>>>>>>> with the optimizations in 2.10? >>> >> >>>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>>>>> >>> >> >>>>>>>>>>>>> >>> >> >>>>>>>>>>>> >>> >> >>>>>>>>>>> >>> >> >>>>>> >>> >> >>>>> >>> >> >>> >>> >> >> >>> >> >>> >> >>> >>