[Ndn-lib] PSync PartialProducer on multiple nodes
Lan Wang (lanwang)
lanwang at memphis.edu
Tue Jan 29 12:58:56 PST 2019
On Jan 29, 2019, at 2:47 PM, Junxiao Shi <shijunxiao at email.arizona.edu<mailto:shijunxiao at email.arizona.edu>> wrote:
Maybe use separate sync prefix for different producers (/sync/user-0 and /sync/user-1)? If they share the same prefix, because of the best route strategy, the hello interests from A-D may be routed to the same producer.
I do not want to use separate sync prefix because the subscriber may not know how many producers are out there, and which producer does each user node live at.
Take a multi-party chat application example:
1. The chatroom has multiple participants. They want to find the roster, i.e. who are the participants. This was easy in ChronoSync.
2. Each participant can publish multiple data streams, such as text and picture. Each data stream is a user node (named '/username-text' or '/username-picture'). A participant may want to get sync updates about text messages but not pictures. This feature is only available in PSync, but not in ChronoSync.
3. None of the participants has full dataset.
4. Even if the roster is discovered in some other way (such as ChronoSync), it's very expensive to establish a separate Consumer toward the PartialProducer of each participant.
Just to add a bit of explanation of PartialSync: if you have multiple producers hosting the *same* set of data, then they should share the same sync prefix and each of them may handle some of the consumers/subscribers (with the best-route strategy, the subscribers’ interests may go to different producers if they are spread out in the network)
Is there another strategy I can use?
Suppose I switch to a flooding strategy, how would Consumer class retrieve data from each distinct producer?
The Sync prefix in PartialSync includes the producer of a dataset and all the subscribers interested in that data (could be a subset). It doesn’t include different producers with different datasets.
You can use a FullSync group to discover new participants and then use PartialSync to subscribe to their data.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Ndn-lib