4 ms·
Oh, sorry, I was imprecise: I meant "distributed database as a library". As in, you compile/bundle your application logic together with the persistence/replicat
by judofyr 7y ago
Oh, sorry, I was imprecise: I meant "distributed database as a library". As in, you compile/bundle your application logic together with the persistence/replication/transaction logic and that is what you're running in a cluster.
- liveoneggs 7y agoEHCache has tons of capabilities and is bundled directly into your app('s war file)
- ryanworl 7y agoThis is do-able with FoundationDB. You could distribute your application colocated with the database nodes and write a router to redirect requests to the machine which owns the data you're looking for. Then your application logic is computing against data on the same machine. FoundationDB exposes the key-range to node mapping to you to make this router possible.
- s_kilk 7y agoThe BeamVM languages (Erlang, Elixir) seem to have this in the form of Mnesia, and libraries that are built on top of it, such as riak-core.
- StreamBright 7y agoRiak uses Mnesia?
- ergl 7y agoNot that I know, but it uses ETS to handle state, and the global process registry to store peer information, as far as I know. Also, be aware that OP mentioned riak-core, which is a different thing from Riak. riak-core is a library to build dynamo-style distributed applications, which gives you virtual nodes, consistent hashing and data migration as building blocks.
- elcritch 7y agoRiak KV uses leveldb, but as @ergl mentioned, riak-core is essentially a hash-ring and replication (aka dynamo) layer.
- dillonmckay 7y agoHa! I was just about to ask about that. ‘I bet Elixir already has something like this’.
- stingraycharles 7y agoDatomic is a distributed database written in Clojure, and is best described as "cqrs-as-a-service". It allows you to run a "peer" inside your local Java VM, which essentially does exactly this: it caches the parts your local vm needs, and if not it looks elsewhere. https://docs.datomic.com/on-prem/peer-server.html https://docs.datomic.com/on-prem/peer-server.html