field-manual icon indicating copy to clipboard operation
field-manual copied to clipboard

How do you set up a cluster?

Open jackie-scholl opened this issue 8 years ago • 6 comments

It's clear from the readme how to set up a database that can be used locally, but I don't understand how to set up a cluster with high availability and durability? It's also not clear to me how database clients could connect to such a cluster without becoming a part of it.

jackie-scholl avatar Dec 14 '16 01:12 jackie-scholl

This is not yet figured out for orbit-db. orbit-db is a CRDT-modelled thing-- and it's in the leveldb or sqllite "db" category. (it may make sense to make clusters of it, but not yet there)

jbenet avatar Dec 14 '16 04:12 jbenet

Possible we may be able to use something like https://github.com/ipfs/ipfs-cluster -- (which maybe is just a libp2p-cluster) to do this

jbenet avatar Dec 14 '16 04:12 jbenet

So is the idea that under the current system, every node stores a complete copy of the entire database, but it's still possible for two nodes to sync their copies?

Edit: Ah, and I think the part that I was missing was that two nodes that are both on the global IPFS network and have databases with identical names will automatically sync with each other, yes?

jackie-scholl avatar Dec 14 '16 16:12 jackie-scholl

@raptortech-js that's the idea, yeah! Currently all databases are in the public network and open to anyone. Obviously this is not what we want and we're working on IPFS primitives that orbit-db can use to provide mechanisms and protocol-level guarantees for private/access controlled databases. Today, if you need such functionality, you have to do it on application level.

haadcode avatar Dec 14 '16 18:12 haadcode

How does orbit-db determine which db wins during the sync?

sholtomaud avatar Jan 11 '17 06:01 sholtomaud

Moving to the Field Manual for deeper discussion

aphelionz avatar Sep 27 '19 17:09 aphelionz