Comments (7)
Yes, strong-session-SI is implemented, and it does work! However, it looks like Elle can't catch this particular anomaly just yet. I should note that in general Elle aims to be correct but (for efficiency) not sound; there are in general anomalies it cannot detect. This one should be inferrable, though! I've added a (presently commented-out) test if you'd like to experiment. Note also a test just above which does detect a strong-session-SI violation.
elle/test/elle/list_append_test.clj
Lines 655 to 691 in 0511c4f
from elle.
Aha! An email from Alexey Gotsman got me looking at the right part of the code by accident--I wasn't certain, when I implemented g-nonadjacent, whether it could be properly generalized to realtime and process variants. Your example is not g-single-process, but g-nonadjacent-process, and because of my earlier caution I didn't implement that particular checker. After a few years of experience with nonadjacent, and your issue, I think it's probably reasonable for us to consider this a strong session SI violation. I've added support for it to elle, and the test now passes. :-)
from elle.
Thanks!
from elle.
If I had known you were planning to write a paper based on this issue which claimed to invalidate the core claim of our work, I would have spent more time on my response. "Efficient but not sound" is obviously a typo: that should be "Efficient but not complete". I am also baffled at how "strong-session-SI is implemented, and it does work" became "we have confirmed with the developer that Elle does not [check strong session SI]".
Like... that's the exact opposite of what I said. What the fuck.
from elle.
We very much appreciate and respect the work of Elle. In fact, we are big fans of Elle. We also believe that it is a groundbreaking art which has stimulated the recent torrent of testing database systems. During our study, we tried to provide high-quality issue reports here and sought clarification and help from you and the community. For this particular issue, anything we claim in the manuscript is based on our understanding of the communication here. Overall, we think that the above comment of yours is not fair. See details below.
First, we knew that Elle is incomplete (at least in practice); that's why we said "Elleβs actual implementation ... and there are also anomalies it cannot detect." What we were not aware of was that Elle was not sound for efficiency. Therefore, we simply quoted what you said in the comment as we believed that you would be the right person to know Elle the best. Given that soundness and completeness are absolutely different concepts, we never thought it would be a typo, but just something we didn't know about Elle.
Second, we did not claim that Elle does not check strong session SI. Instead, we say "Elle does not fulfll this functionality in its latest release", meaning that Elle does not fully support strong session SI in the release for which we report this issue. In particular, this claim is based on the follow-up comment of yours, which explicitly says "... I didn't implement that particular checker ... I've added support for it to elle, and the test now passes. :-)" This sounds controversial to the earlier comment of yours "Yes, strong-session-SI is implemented, and it does work!" However, since the follow-up comment came later, our understanding is that you had not implemented "g-nonadjacent-process" checking, which is, however, fundamental to strong session SI.
However, although it is in general not mandatory, we think that having good communications here before publishing could've been better. We will have us improved in the future.
from elle.
we simply quoted what you said in the comment
Had you quoted the comment, it would have been obvious that this was not a soundness property.
What we were not aware of was that Elle was not sound for efficiency.
Again, this is not true. Our paper discussed soundness and completeness in depth. "[T]here are in general anomalies it cannot detect" is obviously referring to completeness.
In general: I get so, so many support requests. I try my best to respond, but I'm not paid for any of this work--I'm often squeezing responses to GH issues in between sets at the gym or during breakfast. I'm not always gonna get that right. If you're gonna publish a paper refuting the central claim of a work, and think a sentence seems completely bonkers, double-check first.
from elle.
We have clarified the above discussed issues; see the updated version.
from elle.
Related Issues (16)
- 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
- 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
- PL-2L(monotonic-view) G-monotonic: experiment with adding the anomaly 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
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.