It doesn't seem like there's much enthusiasm for any of the options available 
here...

On 12/11/2020, 14:37, "Benedict Elliott Smith" <bened...@apache.org> wrote:

    > Is the new implementation a separate, distinctly modularized new body of 
work

    It’s primarily a distinct, modularised and new body of work, however there 
is some shared code that has been modified - namely PaxosState, in which legacy 
code is maintained but modified for compatibility, and the system.paxos table 
(which receives a new column, and slightly modified serialization code).  It is 
conceptually an optimised version of the existing algorithm.

    If there's a chance of being of value to 4.0, I can try to put up a patch 
next week alongside a high level description of the changes.

    > But a performance regression is a regression, I'm not shrugging it off.

    I don't want to give the impression I'm shrugging off the correctness issue 
either. It's a serious issue to fix, but since all successful updates to the 
database are linearizable, I think it's likely that many applications behave 
correctly with the present semantics, or at least encounter only transient 
errors. No doubt many also do not, but I have no idea of the ratio.

    The regression isn't itself a simple issue either - depending on the 
topology and message latencies it is not difficult to produce inescapable 
contention, i.e. guaranteed timeouts - that might persist as long as clients 
continue to retry. It could be quite a serious degradation of service to impose 
on our users.

    I don't pretend to know the correct way to make a decision balancing these 
considerations, but I am perhaps more concerned about imposing service outages 
than I am temporarily maintaining semantics our users have apparently accepted 
for years - though I absolutely share your embarrassment there.


    On 12/11/2020, 12:41, "Joshua McKenzie" <jmcken...@apache.org> wrote:

        Is the new implementation a separate, distinctly modularized new body of
        work or does it make substantial changes to existing implementation and
        subsume it?

        On Thu, Nov 12, 2020 at 3:56 AM Sylvain Lebresne <lebre...@gmail.com> 
wrote:

        > Regarding option #4, I'll remark that experience tends to suggest 
users
        > don't consistently read the `NEWS.txt` file on upgrade, so option #4 
will
        > likely essentially mean "LWT has a correctness issue, but once it 
broke
        > your data enough that you'll notice, you'll be able to dig the proper 
flag
        > to fix it for next time". I guess it's better than nothing, of 
course, but
        > I'll admit that defaulting to "opt-in correctness", especially for a
        > feature (LWT) that exists uniquely to provide additional guarantees, 
is
        > something I have a hard rallying behind.
        >
        > But a performance regression is a regression, I'm not shrugging it 
off.
        > Still, I feel we shouldn't leave LWT with a fairly serious known
        > correctness bug and I frankly feel bad for "the project" that this 
has been
        > known for so long without action, so I'm a bit biased in wanting to 
get it
        > fixed asap.
        >
        > But maybe I'm overstating the urgency here, and maybe option #1 is a 
better
        > way forward.
        >
        > --
        > Sylvain
        >



    ---------------------------------------------------------------------
    To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
    For additional commands, e-mail: dev-h...@cassandra.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
For additional commands, e-mail: dev-h...@cassandra.apache.org

Reply via email to