Giter Club home page Giter Club logo

Comments (7)

Ericson2314 avatar Ericson2314 commented on August 23, 2024 2

Also I opened https://github.com/dmbarbour/haskell-vcache/issues/5 It would be very nice to have vcache for persistence, something like IPFS for transport, and then this as a rather-smaller layer on top.

from juno.

Ericson2314 avatar Ericson2314 commented on August 23, 2024 1

I don't have a specific use-case in mind.

Versus postgres I have nothing super concrete either. The Merkle DAG maps to immutable functional program heap very well. But while relational DBs can probably the same Haskell datatypes, the mapping isn't as clean---some relational features aren't used, yet properties (immutability and access patterns) aren't expressible. Basically, I think some IPFS-like transport and persistence layer is the "correct" abstraction on which to layer this sort of consensus infrastructure, and I hope doing so long term allows more optimizations / less complexity.

from juno.

Ericson2314 avatar Ericson2314 commented on August 23, 2024

https://github.com/dmbarbour/haskell-vcache is also worthy of a mention then.

from juno.

axman6 avatar axman6 commented on August 23, 2024

Agreed, that's probably an even better choice

from juno.

axman6 avatar axman6 commented on August 23, 2024

I should probably add that the reason I feel acid state is a good match for Juno is that it is basically implemented as a log of modifications to the datatype, with snapshots being stored occasionally, so the raft log perfectly marries with it.

from juno.

Ericson2314 avatar Ericson2314 commented on August 23, 2024

So the key is only so much of the data will change every iteration.

Initially, the Haskell data type / virtual heap is stored and transferred as a Merkle dag, and Raft only worries about a single changing pointer into the virtual heap. So top level mutable references and immutable everything else.

Then there is what VCache does with the PVars---they don't have to be top level. That corresponds to immutable nodes including black box names. The raft log would correspond to a single top-level root pointer, but rather transactions over the (also changing as variables are added or dropped) map of bindings.

from juno.

buckie avatar buckie commented on August 23, 2024

FYI: updates are out.

I am interested in this idea but don't have the bandwidth to focus on it in the near term. To get me thinking about this correctly:

  • what would the use case of this be?
  • what would this give you over an integrated persistence layer (e.g. postgres) that you read from instead?

from juno.

Related Issues (11)

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.