Folks, Do we have a consensus so far that MVCC should be annotated with @IgniteExperimental? Are there any objections?
Best regards, Ivan Pavlukhin пт, 7 февр. 2020 г. в 15:58, Roman Kondakov <kondako...@mail.ru.invalid>: > > I absolutely agree with Alexey that MVCC architecture should be > completely reviewed. Current implementation is uncompetitive with other > solutions. It is slow by design. Here are some my points: > - we use central coordinator for transactions ordering. This is very > similar to what Calvin [1] systems do. But unlike them we also use 2pc > for distributed commit. So, we always have several additional network > hops for each transaction and every Calvin system (FaunaDB, YandexDB) > will outperform Ignite by design. > - We write uncommitted data to the page memory and WAL and this slows > down transactions even more. > > I am a supporter of complete revising of the MVCC design. > > [1] http://cs.yale.edu/homes/thomson/publications/calvin-sigmod12.pdf > > -- > Kind Regards > Roman Kondakov > > > On 07.02.2020 15:21, Alexei Scherbakov wrote: > > My point is MVCC should be redone from scratch without messing with other > > pars of code. > > > > Currently it's spaghetti unmaintanable code. > > > > пт, 7 февр. 2020 г. в 14:52, Ivan Pavlukhin <vololo...@gmail.com>: > > > >> My humble opinion. > >> > >> We need MVCC because it is our way to SQL transactions. SQL is a very > >> important user API (as you might know there is an active work on new > >> SQL engine). Fair SQL transactions is a supplementary and quite needed > >> feature, users ask about it on user list. I believe it is a future of > >> Ignite. > >> > >> Best regards, > >> Ivan Pavlukhin > >> > >> пт, 7 февр. 2020 г. в 13:23, Seliverstov Igor <gvvinbl...@gmail.com>: > >>> > >>> Note that someone uses it > >>> > >>> Main problem is a recovery process when persistence enabled and a > >> cluster have more than one node. > >>> > >>> It is a problem even for regular transactional caches, the main > >> difference - MVCC detects any inconsistencies while regular transactional > >> caches may ignore it without any notification > >>> > >>> In other cases it works fine and provides promised guaranties. > >>> > >>> Of course there are several minor issues like performance ones, but > >> there is a plan how to solve them (I could share it if anybody is curious) > >>> > >>> My opinion we should solve consistency issues first and finalize MVCC > >> after that. > >>> > >>> Until that it’s OK to have it as experimental feature. > >>> > >>> Regards, > >>> Igor > >>> > >>>> 6 февр. 2020 г., в 21:25, Alexei Scherbakov < > >> alexey.scherbak...@gmail.com> написал(а): > >>>> > >>>> I'm strongly support removal of MVCC from master. > >>>> > >>>> At the current state it bloats code base and should be reworked from > >>>> scratch using separate code base. > >>>> > >>>> чт, 6 февр. 2020 г. в 19:45, Ilya Kasnacheev < > >> ilya.kasnach...@gmail.com>: > >>>> > >>>>> Hello! > >>>>> > >>>>> Please keep in mind that you need to create a separate proposal voting > >>>>> thread if you really like it to count. I wonder if Dmitry Pavlov can > >> help > >>>>> us with the procedure. > >>>>> > >>>>> Otherwise, I think it makes total sense to restrict MVCC clusters to > >> only > >>>>> have MVCC caches or REPLICATED TRANSACTIONAL caches (are they > >> compatible in > >>>>> our current implementation) and no ATOMIC caches at all. > >>>>> > >>>>> Regards, > >>>>> -- > >>>>> Ilya Kasnacheev > >>>>> > >>>>> > >>>>> чт, 6 февр. 2020 г. в 19:41, Maxim Muzafarov <mmu...@apache.org>: > >>>>> > >>>>>> Ilya, > >>>>>> > >>>>>> > >>>>>> 1. MVCC support requires code maintenance for other developed > >> features > >>>>>> even if has not used and disabled. Currently, we've got an x2 level > >> of > >>>>>> difficulty for implementation of new features. > >>>>>> > >>>>>> 2. It would be much easy to develop and support clusters with > >>>>>> mvcc-caches only rather than have a mixed configuration. With this > >>>>>> option we can dramatically reduce the amount of codebase removing > >> from > >>>>>> mvcc-branch local, atomic, tx caches. > >>>>>> > >>>>>> > >>>>>> So, I'm +1 to remove it from the master branch and mark the current > >>>>>> API with @IgniteExperimental. > >>>>>> > >>>>>> On Thu, 6 Feb 2020 at 19:29, Ilya Kasnacheev < > >> ilya.kasnach...@gmail.com> > >>>>>> wrote: > >>>>>>> > >>>>>>> Hello! > >>>>>>> > >>>>>>> Why would we drop MVCC!? > >>>>>>> > >>>>>>> I can totally imagine a scenario where a large Ignite user surfaces > >>>>> with > >>>>>>> fixes for MVCC mode, if it is kept as an experimental feature. Then > >>>>> maybe > >>>>>>> it will graduate to beta some time in future. > >>>>>>> > >>>>>>> If it does too much strain on the TC, let's discuss that, but I > >> don't > >>>>>>> remember problems with TC load lately, so maybe this is a moot > >> point. > >>>>>>> > >>>>>>> Regards, > >>>>>>> -- > >>>>>>> Ilya Kasnacheev > >>>>>>> > >>>>>>> > >>>>>>> чт, 6 февр. 2020 г. в 15:27, Nikolay Izhikov <nizhi...@apache.org>: > >>>>>>> > >>>>>>>>> By the way, is there any reason to have this code in the master > >>>>>> branch > >>>>>>>> > >>>>>>>> I support removal MVCC from master. > >>>>>>>> > >>>>>>>> > >>>>>>>>> 6 февр. 2020 г., в 15:26, Andrey Gura <ag...@apache.org> > >>>>> написал(а): > >>>>>>>>> > >>>>>>>>> +1 > >>>>>>>>> > >>>>>>>>> By the way, is there any reason to have this code in the master > >>>>>>>>> branch? It seems feature is in unsupportable state and just wastes > >>>>> TC > >>>>>>>>> time and our effort to support MVCC related tests. > >>>>>>>>> > >>>>>>>>> On Thu, Feb 6, 2020 at 2:44 PM Alexey Goncharuk > >>>>>>>>> <alexey.goncha...@gmail.com> wrote: > >>>>>>>>>> > >>>>>>>>>> Agree, let's mark MVCC experimental. > >>>>>>>>>> > >>>>>>>>>> Stephen, the annotation serves as an additional > >>>>> documentation-style > >>>>>>>> marker. > >>>>>>>>>> For now there are no compile-time warnings when the API is used. > >>>>>>>>>> > >>>>>>>>>> чт, 6 февр. 2020 г. в 14:35, Stephen Darlington < > >>>>>>>>>> stephen.darling...@gridgain.com>: > >>>>>>>>>> > >>>>>>>>>>> Yes! I’ve already seen people try to use this without awareness > >>>>>> that > >>>>>>>> it’s > >>>>>>>>>>> not production ready. > >>>>>>>>>>> > >>>>>>>>>>> What happens with the annotation, incidentally? Is it just in > >> the > >>>>>>>>>>> documentation or do you get a compile-time warning? > >>>>>>>>>>> > >>>>>>>>>>>> On 6 Feb 2020, at 11:32, Nikolay Izhikov <nizhi...@apache.org> > >>>>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> Hello, Igniters. > >>>>>>>>>>>> > >>>>>>>>>>>> Should we mark MVCC feature with the new @IgniteExperimental? > >>>>>>>>>>>> > >>>>>>>>>>>> We explicitly note users that MVCC has beta status, for now [1] > >>>>>>>>>>>> > >>>>>>>>>>>>> Beta version of Transactional SQL and MVCC > >>>>>>>>>>>>> In Ignite v2.7, Transactional SQL and MVCC are released as > >> beta > >>>>>>>>>>> versions to allow users to experiment and share feedback. > >>>>>>>>>>>>> This version of Transactional SQL and MVCC should not be > >>>>>> considered > >>>>>>>> for > >>>>>>>>>>> production. > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> [1] > >>>>>>>> > >> https://apacheignite.readme.io/docs/multiversion-concurrency-control > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>> > >>>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Best regards, > >>>> Alexei Scherbakov > >>> > >> > > > >