Skip to content

Instantly share code, notes, and snippets.

@vanangamudi
Created December 11, 2018 17:10
Show Gist options
  • Save vanangamudi/89b5fbb126f6f1c6b705920a245a3096 to your computer and use it in GitHub Desktop.
Save vanangamudi/89b5fbb126f6f1c6b705920a245a3096 to your computer and use it in GitHub Desktop.
Long question. Please bear with me.
Three entities. Server, User, Tracker(borrowing from bittorrent)/Broker. Servers are consumer computers. Users can be anyone and gain service from server via desktop/mobile application. For a concrete example, lets take the data tagging for machine algorithms. A user needs to look at bunch of samples and classify them into well, a class. Images can be tagged to be dogs or cats or text can be tagged as positive or negative reviews.
Server, contain these data that are to be tagged. The problem is server and users cannot stay online 24/7. Tracker/Broker can. So the users can request a batch of samples for tagging. This request is recorded by the tracker. And when server comes online, it will query for two things.
1. Has anyone requested for new batch?
2. Has anyone uploaded tagged data?
The tracker, will handover the tagged data to server and server will send batch of samples to tracker. Server may go offline before any user comes online. The tracker will handle the user requests as usual and send the batch of samples to the user who requested them.
This the very basic scenario.
Single Server - Single tracker - Multiple users.
It can be extended to
Multiple Servers - Single tracker - Multiple users.
Multiple Servers - Multiple trackers - Multiple users.
And a more complex system. The tracker actually become what is meant by tracker in bittorent. Servers and users can talk to each other, the connection is established not through the tracker but directly. IPv4/NAT will be a problem. How bittorent handles this?
Are there any existing system like bittorent for this kind of application without involving blockchain. Using git get me through half the way, but I'd like the system to be more dynamic and not dependent upon git.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment