If you want to test the scenarios thia project would be helpful Http://github.com/edwardcapriolo/ec
I use brute force at different CL and assert if i detect and consistency issues. Having mvs would be nice On Saturday, February 11, 2017, Benjamin Roth <benjamin.r...@jaumo.com> wrote: > For MVs regarding this threads question only the partition key matters. > Different primary keys can have the same partition key. Which is the case > in the example in your last comment. > > Am 10.02.2017 20:26 schrieb "Kant Kodali" <k...@peernova.com > <javascript:;>>: > > @Benjamin Roth: How do you say something is a different PRIMARY KEY now? > looks like you are saying > > The below is same partition key and same primary key? > > PRIMARY KEY ((a, b), c, d) and > PRIMARY KEY ((a, b), d, c) > > @Russell Great to see you here! As always that is spot on! > > On Fri, Feb 10, 2017 at 11:13 AM, Benjamin Roth <benjamin.r...@jaumo.com > <javascript:;>> > wrote: > > > Thanks a lot for that post. If I read the code right, then there is one > > case missing in your post. > > According to StorageProxy.mutateMV, local updates are NOT put into a > batch > > and are instantly applied locally. So a batch is only created if remote > > mutations have to be applied and only for those mutations. > > > > 2017-02-10 19:58 GMT+01:00 DuyHai Doan <doanduy...@gmail.com > <javascript:;>>: > > > > > See my blog post to understand how MV is implemented: > > > http://www.doanduyhai.com/blog/?p=1930 > > > > > > On Fri, Feb 10, 2017 at 7:48 PM, Benjamin Roth < > benjamin.r...@jaumo.com <javascript:;>> > > > wrote: > > > > > > > Same partition key: > > > > > > > > PRIMARY KEY ((a, b), c, d) and > > > > PRIMARY KEY ((a, b), d, c) > > > > > > > > PRIMARY KEY ((a), b, c) and > > > > PRIMARY KEY ((a), c, b) > > > > > > > > Different partition key: > > > > > > > > PRIMARY KEY ((a, b), c, d) and > > > > PRIMARY KEY ((a), b, d, c) > > > > > > > > PRIMARY KEY ((a), b) and > > > > PRIMARY KEY ((b), a) > > > > > > > > > > > > 2017-02-10 19:46 GMT+01:00 Kant Kodali <k...@peernova.com > <javascript:;>>: > > > > > > > > > Okies now I understand what you mean by "same" partition key. I > > think > > > > you > > > > > are saying > > > > > > > > > > PRIMARY KEY(col1, col2, col3) == PRIMARY KEY(col2, col1, col3) // > so > > > far > > > > I > > > > > assumed they are different partition keys. > > > > > > > > > > On Fri, Feb 10, 2017 at 10:36 AM, Benjamin Roth < > > > benjamin.r...@jaumo.com <javascript:;> > > > > > > > > > > wrote: > > > > > > > > > > > There are use cases where the partition key is the same. For > > example > > > if > > > > > you > > > > > > need a sorting within a partition or a filtering different from > the > > > > > > original clustering keys. > > > > > > We actually use this for some MVs. > > > > > > > > > > > > If you want "dumb" denormalization with simple append only cases > > (or > > > > more > > > > > > general cases that don't require a read before write on update) > you > > > are > > > > > > maybe better off with batched denormalized atomics writes. > > > > > > > > > > > > The main benefit of MVs is if you need denormalization to sort or > > > > filter > > > > > by > > > > > > a non-primary key field. > > > > > > > > > > > > 2017-02-10 19:31 GMT+01:00 Kant Kodali <k...@peernova.com > <javascript:;>>: > > > > > > > > > > > > > yes thanks for the clarification. But why would I ever have MV > > > with > > > > > the > > > > > > > same partition key? if it is the same partition key I could > just > > > read > > > > > > from > > > > > > > the base table right? our MV Partition key contains the columns > > > from > > > > > the > > > > > > > base table partition key but in a different order plus an > > > additional > > > > > > column > > > > > > > (which is allowed as of today) > > > > > > > > > > > > > > On Fri, Feb 10, 2017 at 10:23 AM, Benjamin Roth < > > > > > benjamin.r...@jaumo.com <javascript:;> > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > It depends on your model. > > > > > > > > If the base table + MV have the same partition key, then the > MV > > > > > > mutations > > > > > > > > are applied synchronously, so they are written as soon the > > write > > > > > > request > > > > > > > > returns. > > > > > > > > => In this case you can rely on the R+F > RF > > > > > > > > > > > > > > > > If the partition key of the MV is different, the partition of > > the > > > > MV > > > > > is > > > > > > > > probably placed on a different host (or said differently it > > > cannot > > > > be > > > > > > > > guaranteed that it is on the same host). In this case, the MV > > > > updates > > > > > > are > > > > > > > > executed async in a logged batch. So it can be guaranteed > they > > > will > > > > > be > > > > > > > > applied eventually but not at the time the write request > > returns. > > > > > > > > => You cannot rely and there is no possibility to absolutely > > > > > guarantee > > > > > > > > anything, not matter what CL you choose. A MV update may > always > > > > > "arrive > > > > > > > > late". I guess it has been implemented like this to not block > > in > > > > case > > > > > > of > > > > > > > > remote request to prefer the cluster sanity over consistency. > > > > > > > > > > > > > > > > Is it now 100% clear? > > > > > > > > > > > > > > > > 2017-02-10 19:17 GMT+01:00 Kant Kodali <k...@peernova.com > <javascript:;>>: > > > > > > > > > > > > > > > > > So R+W > RF doesnt apply for reads on MV right because say > I > > > set > > > > > > QUORUM > > > > > > > > > level consistency for both reads and writes then there can > > be a > > > > > > > scenario > > > > > > > > > where a write is successful to the base table and then say > > > > > > immediately > > > > > > > I > > > > > > > > do > > > > > > > > > a read through MV but prior to MV getting the update from > the > > > > base > > > > > > > table. > > > > > > > > > so there isn't any way to make sure to read after MV had > been > > > > > > > > successfully > > > > > > > > > updated. is that correct? > > > > > > > > > > > > > > > > > > On Fri, Feb 10, 2017 at 6:30 AM, Benjamin Roth < > > > > > > > benjamin.r...@jaumo.com <javascript:;>> > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > Hi Kant > > > > > > > > > > > > > > > > > > > > Is it clear now? > > > > > > > > > > Sorry for the confusion! > > > > > > > > > > > > > > > > > > > > Have a nice one > > > > > > > > > > > > > > > > > > > > Am 10.02.2017 09:17 schrieb "Kant Kodali" < > > k...@peernova.com <javascript:;> > > > >: > > > > > > > > > > > > > > > > > > > > thanks! > > > > > > > > > > > > > > > > > > > > On Thu, Feb 9, 2017 at 8:51 PM, Benjamin Roth < > > > > > > > benjamin.r...@jaumo.com <javascript:;> > > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > Yes it is > > > > > > > > > > > > > > > > > > > > > > Am 10.02.2017 00:46 schrieb "Kant Kodali" < > > > k...@peernova.com <javascript:;> > > > > >: > > > > > > > > > > > > > > > > > > > > > > > If reading from materialized view with a consistency > > > level > > > > of > > > > > > > > quorum > > > > > > > > > am > > > > > > > > > > I > > > > > > > > > > > > guaranteed to have the most recent view? other words > > is w > > > > + r > > > > > > > n > > > > > > > > > > > contract > > > > > > > > > > > > maintained for MV's as well for both reads and > writes? > > > > > > > > > > > > > > > > > > > > > > > > Thanks! > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > Benjamin Roth > > > > > > > > Prokurist > > > > > > > > > > > > > > > > Jaumo GmbH · www.jaumo.com > > > > > > > > Wehrstraße 46 · 73035 Göppingen · Germany > > > > > > > > Phone +49 7161 304880-6 · Fax +49 7161 304880-1 > > > > > > > > AG Ulm · HRB 731058 · Managing Director: Jens Kammerer > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > Benjamin Roth > > > > > > Prokurist > > > > > > > > > > > > Jaumo GmbH · www.jaumo.com > > > > > > Wehrstraße 46 · 73035 Göppingen · Germany > > > > > > Phone +49 7161 304880-6 · Fax +49 7161 304880-1 > > > > > > AG Ulm · HRB 731058 · Managing Director: Jens Kammerer > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > Benjamin Roth > > > > Prokurist > > > > > > > > Jaumo GmbH · www.jaumo.com > > > > Wehrstraße 46 · 73035 Göppingen · Germany > > > > Phone +49 7161 304880-6 · Fax +49 7161 304880-1 > > > > AG Ulm · HRB 731058 · Managing Director: Jens Kammerer > > > > > > > > > > > > > > > -- > > Benjamin Roth > > Prokurist > > > > Jaumo GmbH · www.jaumo.com > > Wehrstraße 46 · 73035 Göppingen · Germany > > Phone +49 7161 304880-6 · Fax +49 7161 304880-1 > > AG Ulm · HRB 731058 · Managing Director: Jens Kammerer > > > -- Sorry this was sent from mobile. Will do less grammar and spell check than usual.