Comments (5)
Not exactly: there's both a probabilistic and a deterministic way to use seq-kv here. My thinking in designing this challenge was that folks would have this exact kind of "aha!" moment realizing that sequentially consistent stores didn't guarantee recency, and that they'd have an easy-but-inelegant way (doing lots of retries, as shown here) to work around that staleness. Because it's probabilistic and feels a bit inelegant, I was hoping it might prompt people to ask "wait, is there a more elegant, deterministic way I could do this?"--and that might lead them to discover the trick, and in the process gain (or show off) a deeper intuition about sequential consistency.
from maelstrom.
This may actually be a bug (er, sort of, but it's certainly not consistent with lww-kv) in seq-kv! I was sprinting to write these challenges and didn't have time to fully go through and test this one. Give me a little bit and I'll see if I can get that fixed for you.
from maelstrom.
HA! There was a bug of sorts. seq-kv was doing something legal but v frustrating where reads and other re-orderable operations would converge on the next to latest state, but would never consider the latest state unless forced to. Version 0.2.3 should converge if you just spam it with requests. This affects #39 too.
from maelstrom.
@aphyr, is it correct to say that if we want all the nodes to converge to the same value, using a sequential store gets there probabilistically, and a linear store deterministically? I'm wondering a bit what the pedagogy in challenge 4 is - certainly I've realised that sequential consistency is much looser than you'd think at first!
from maelstrom.
@aphyr Is the "trick" in question the one that you mention in this comment #39 (comment)?
Because later in the same issue thread, someone asked if this "trick" was a property of sequential consistency (#39 (comment)), and your response seemed to indicate that this is not a property of sequential consistency, but a property of your particular implementation of data-store.
If this is the case, I definitely think you should clarify the challenge description to make it clear that the data-store has some additional properties beyond sequential consistency.
from maelstrom.
Related Issues (20)
- Trying to set this up, but getting error=13, Permission denied HOT 1
- Compare-and-swap on seq-kv HOT 10
- Permission denied when running `--bin` binary HOT 7
- Namesis partition issue? HOT 1
- Error: Unable to access jarfile lib/maelstrom.jar HOT 2
- Kafka workload never finishes analyzing HOT 1
- Java 1.8 support HOT 1
- Suggestion: A better API for `RPC` method in Go HOT 3
- txn-rw-register workload does not detect g0 write cycles under read-uncommitted consistency HOT 5
- txn-rw-register: non complete response payload validation HOT 1
- Wonky error when missing newlines between messages
- `Invalid dest for message` on teardown
- Running test yields `NoSuchFileException` HOT 4
- Python client library HOT 1
- Would it be possible to SIGINT/SIGTERM processes instead of SIGKILLING them? HOT 2
- Default workload name not being set when not explicitly passed HOT 2
- Kafka workflow crashes with NullPointerException HOT 2
- Update Jepsen to 0.3.4 from 0.3.1
- Runing the demo js script does not work on Mac OS
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 maelstrom.