My use case requires syncing a read only folder with 2,000 files, 1.5GB data to 1 million Android devices.
Is that possible if accomplished in stages of sharing and resharing?
It seems that the weak point is the device that is resharing the 2,000 files that it has itself has received by sync. How many peers can the input and output swarms be before the phone in the middle passing on the cascading sync to the next swarm begins to suffer?
Connections to other devices cost CPU and RAM (and hence battery, on a phone). I’d keep it on the order of the low tens on a phone. It doesn’t sound to me like Syncthing is the ideal candidate for what you want to do, probably.
Also, there is no such thing as read only folders in syncthing, there is “i refuse to accept changes from others”, but that is fundamentally different
Does it make any difference in how how many peers there can be if the principle device sharing is a windows computer, (2, 4, 32, 64 or 128 core) and the rest are Android devices?
as @AudriusButkevicius said you have no control over the devices that are not shared with your server directly, so I think Syncthing is not the best/easiest way to go.
idea 1:
Go with a simple app that downloads a list cointaing urls/hashes from a central server to a folder on the device. If a files is missing/changed it is downloaded again. pros: you have control; user does not need to know anything besides installing app; you can delete/update files remotely cons: bandwith
idea 2:
create a (weekly) torrent file containing all files, maybe split into courses for smaller download size pros: fast downloads; bandwidth saving; no extra app from you needed; if you always name folder same existing files should be reused cons: torrent app needs to be installed; users may exceed their bandwidth usage; you cannot delete files remotely
Idea 3:
When setting up a folder to distribute from the originating Syncthing device have a “broadcast (BC)” checkbox.
BC makes a magnet link that will auto install and auto subscribe the folder on a Syncthing installation or just auto subscribe the folder if ST is already installed.
BC will have an algorithm to load balance the sync swarm size and location by sending notifications to BC folder recipients to activate/deactivate their folder share as needed.
Pros:
BC can perform the ongoing sync of a folder across an infinite number of connected users.
BC simplifies curriculum distribution by making the user agnostic to the to the Syncthing UI.
ST is open source making it possible to add such features.
Con:
Sync latency increases with increase in number of peer population. But that is ok for curriculum updates.
Potential Users of the curriculum is greatly limited because ST does not yet support extSD.
Coding is required.
BC would only work on Androids because notifications is an Android utility?? But that’s OK since curriculum is mostly used on Androids.