Vladimir, 1. Continuous queries are asynchronous in general case, so I don't think it's even possible to provide transactional ordering, especially for the case of distributed transactions. I would leave current guarantees as-is.
2. This one might be pretty useful. If it's not very hard to do, let's do this improvement. -Val On Fri, Aug 17, 2018 at 7:10 AM Nikolay Izhikov <nizhi...@apache.org> wrote: > Hello, Vladimir. > > > 1) *Event ordering*. > > I vote to keep things as is. > > > 2) *Initial query* > > With MVCC it is now > > technically possible to query data on certain snapshot and then receive > > only events happened after this snapshot > > I think it a usefull extension for current implementation. > > В Пт, 17/08/2018 в 13:18 +0300, Vladimir Ozerov пишет: > > Folks, > > > > As you know we are developing multi-version concurrency control for > Ignite > > caches, which is essentially new mode for transactional cache with > snapshot > > semantics. One of the most important applications of this mode would be > > fully transactional SQL The question is how to implement continuous query > > semantics with MVCC. Several interesting things here. > > > > 1) *Event ordering*. Currently we guarantee order of updates for specific > > key. But for fair transactional mode user may want to get transactional > > ordering instead of key ordering. If there are several dependent > > transactions, I may want to receive their updates in order. E.g.: > > TX1: transfer(A -> B) > > TX2: transfer(B -> C) > > TX3: transfer(C -> D) > > > > If user receives update on key D (TX3), should we guarantee that he > already > > received updates for all keys in TX1 and TX2? My opinion is that we'd > > better to leave things as is and guarantee only per-key ordering. Only > one > > reason - implementation complexity. > > > > 2) *Initial query*. We implemented it so that user can get some initial > > data snapshot and then start receiving events. Without MVCC we have no > > guarantees of visibility. E.g. if key is updated from V1 to V2, it is > > possible to see V2 in initial query and in event. With MVCC it is now > > technically possible to query data on certain snapshot and then receive > > only events happened after this snapshot. So that we never see V2 twice. > Do > > you think we this feature will be interesting for our users? > > > > Please share your thoughts. > > > > Vladimir.