Hub & Spoke vs Mesh

I’m looking to optimize performance around a 3 device setup, where one of the devices is an “always on” server. Did some testing:


Server connected to node A and Server connected to node B. However nodes A and B not connected to each other. Server shares the same repository with nodes A and B. No node is “master”

(2) MESH

All 3 nodes (Server, A, and B) connected to each other sharing the same repository. No mode is “master”.

In my observations, BOTH designs kept the files in the repository in sync. The mesh seemed to take a lot longer to establish all the connections and go “GREEN” in the GUI on all 3 nodes.

So here is my question: Which is the better network setup for more than 2 nodes - considering resources, stability, and security? I understand the pros and cons of the various generic network options … I am looking for input specifically about Syncthing and its robustness in handling different network topologies ranging from 3 to 30 - and perhaps up to as many as 100 nodes.


1 Like

The more nodes you have connected (i.e. the closer to full mesh rather than hub/spoke) the more efficient the syncing will be and nodes will get in sync faster. However each node (currently, this is due to be changed in v0.9) keeps the index of other connected nodes in RAM, so the more connected nodes the higher memory utilization. I expect a good trade off to be around ten peers; at least I haven’t tested for more. Syncthing will work fine even in a 100 node daisy chain, changes will just take a little longer to propagate from node 1 to mode 100.

Thanks calmh - it all sounds good. And since v0.9 will focus on RAM, it’s even better.

The only hangup I have about large syncthing mesh networks, is the number of node ID entries that have to be made in aggregate on all the devices in the network. I estimate it at (n^2-n) - where n is the number of nodes in the mesh.

This gets to be a large number quickly. I can envision a use case for a professional association I belong to that has 1200 members - but not sure I’d want to tackle managing approx. 1.4 million node ID entries on all the nodes in the entire mesh.

Your estimate of a 10 node mesh sounds about right - until someone figures out a scaleable method to handle node ID configuration.


Yeah, for something like that manual configuration would suck. I’d probably stick the list of node ID:s somewhere, generate a config file from that and copy it out to each node. It can be pretty much identical, at least to start with.

What’s about a copy&paste function of more than one Note ID?