Comments (2)
I'm afraid I haven't worked at all on causal or PL-2L yet--nobody's actually asked me to check those properties yet. There's a few definitions in consistency-models.clj, but that's just as a "this can catch occasional anomalies and "having these partial definitions might be useful later if someone takes on these models in more detail" rather than "Elle knows about all forms of anomalies in every consistency model". It'd certainly be nice if it did, haha.
G-single and G-monotonic aren't interchangeable. Elle's G-single is taken directly from Adya's G-single definition, and is defined over DSGs. G-monotonic is defined over USG(H, T_i), which doesn't (presently) exist in Elle. They're not the same graph, which is probably why you're seeing Weird Results here. ;-)
G-single-process is a boundary anomaly for strong-session SI. Pulling it out into a weaker isolation level probably broke the BFS phase of the anomaly search. I imagine something like "the cycle existence pass says there was a strong-session-SI cycle, but also found no cycles that would arise in weaker isolation levels. From this we know that any search for boundary anomalies at levels lower than strong-session-SI are redundant, so we won't bother searching for G-single-process at all".
- monotonic-view's G-monotonic needs to be expressed, it's currently a no-op
Maybe? I don't personally have a need for it yet, but if it's important for your use case you could add it. The naive definition is O(n^2), so you'll want to do Something Clever (TM)--perhaps it could be unified with the internal passes in list-append and rw-register. I could be convinced to take a PR for this, but it needs to be relatively simple and not impose, say, huge performance/memory penalties on the rest of the system. Either that or we put it behind a flag.
causal, consistent-view, has to end up with process order
Maybe. I'm not sure about that one. Would need to look carefully at the formalism's event order and prove it's equivalent to process order plus whatever additional constraints--they're not the same.
G-monotonic, as G-single-process, would more correctly identify what consistency level you are...
I'm afraid not--they're not the same anomaly. I'm not sure exactly all the ways this would cause Elle to be wrong, but it would definitely be wrong in some ways. ;-)
from elle.
Thanks for such an informative response!
Now I can see how dropping an arbitrary anomaly into a model would cause such weirdness, and not be what is really wanted.
I will try creating a USG, use a PL-2L-cycle-exists, etc, and report back.
The naive definition is O(n^2), so you'll want to do Something Clever (TM)
it needs to be relatively simple and not impose, say, huge performance/memory penalties
Thinking comparable to the other cycle-exists in performance and implementation.
If it can't be optimized and/or unified with the existing work being done, it's probably not a good candidate for inclusion.
from elle.
Related Issues (17)
- Example for running test-cases with Elle? HOT 1
- Build fails with `lein check` HOT 4
- Elle checks :fail results? HOT 1
- The rw-register checker succeeds on the history: wx1, rx2.
- Feature: add delete operation HOT 2
- Publish jar files for each release HOT 10
- Could I check a history that with real-time order HOT 7
- Could Elle tell the difference between snapshot isolation and strong-session-snapshot-isolation? HOT 7
- Example with list-append history is broken in 0.1.6 HOT 1
- Elle couldn't check list-append example described in a paper HOT 2
- Elle may miss two types of transaction anomalies: HOT 4
- list-append/sorted-values might be broken with history object HOT 3
- Is there any example on how to use the gen function? HOT 2
- Cannot run on the latest version of Clojure on Ubuntu 22.04: reducers.clj is not found HOT 8
- Modeling linearizable keys with the list-append workload HOT 7
- False positive on lost update HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elle.