orbitdb / field-manual

The Offical User's Guide to OrbitDB
207 stars 43 forks source link

Network latency/connection speed? #101

Open Bambofy opened 4 years ago

Bambofy commented 4 years ago

Hi, i am wondering about how quickly an orbitdb database is. Say if you have 10 users seeding one database, what would the connection speed be for a server to access this database? How is it calculated?

aphelionz commented 4 years ago

Hi @Bambofy.. Good question. I'll answer here and then transfer this issue to the field-manual repo to use as fodder for more writing.

Once a database is connected via the proper multiaddr, it swarms with the p2p network and starts listening via pubsub on that multiaddr and listens for peers. When peers are detected, a small "heads exchange" takes place via pubsub with a relatively small payload - the hashes of the "heads", or latest entries that each peer knows about. From there, all replication happens locally.

Ideally, those peers have already done this exchange with each other so the latest heads will be known by all peers currently listening so it should be quick, and since replication is deterministic you should only need ONE peer to report the latest heads.

From there, you'd then need to get the data from IPFS based on those heads which is N number of ipfs.dag.get requests to the IPFS network to get N number of entries.

Bambofy commented 4 years ago

thanks! see you at diffuse Berlin!