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
>>>
>>
> 
> 

Reply via email to