Coder Social home page Coder Social logo

Comments (4)

aphyr avatar aphyr commented on July 21, 2024 1

from maelstrom.

aphyr avatar aphyr commented on July 21, 2024

Ah, yeah, this is somewhere we could do more rigorous checking. As far as Jepsen and Elle are concerned your histories were, in fact, correct: append-only histories are always legal, and your system insisted that the transactions it executed were append-only! This generally doesn't come up in Jepsen testing because we control the transaction generation, but in Maelstrom we're blindly trusting whatever the node happens to return, and that's clearly not correct. I'd welcome a patch to either Maelstrom or Elle which validates that completion transactions are compatible with their invocations!

from maelstrom.

aquarhead avatar aquarhead commented on July 21, 2024

Thanks for clarifying, I had a rough understanding of this history concept. I'm not entirely sure what should be considered as "compatible" though - does each µ-op must return in same order? or does it allow reordering but each µ-op need to present? or does it allow multiple µ-op to map to a single one in request? (e.g. multiple read response for a single read request)

For example for this input [[:append 224 6] [:r 226 nil]], which ones of the following should be considered as valid?

  1. [[:append 224 6] [:r 226 [1]]] - exact order (can be checked by comparing array of function + key)
  2. [[:r 226 [1]] [:append 224 6]] - reordered but all µ-ops exist (check with set of function + key)
  3. [[:append 224 6] [:r 226 [1]] [:r 226 [1 2]]] - multiple read responses (check function + key count?)

(I haven't finished the entire Datomic chapter so might be a dumb question)

from maelstrom.

aquarhead avatar aquarhead commented on July 21, 2024

BTW I opened a PR ^ for this in case you missed it :D

from maelstrom.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.