Ok, thanks for taking the time to respond to my thoughts. That’s pretty much 
what I assumed but I hadn’t considered Bonjour.  Your point about updates every 
3 seconds is interesting - doesn’t scale well for many peers or need for 
“real-time.” 

I’ll just shove this back into my head and get back to work on current projects.

Have a great weekend.


> On Jun 20, 2015, at 3:49 PM, Jens Alfke <[email protected]> wrote:
> 
> 
>> On Jun 20, 2015, at 1:01 PM, Mark <[email protected]> wrote:
>> 
>> Jen’s session at Couch Connect and subsequent p2p mesh replication app 
>> brought forward some background ideas for a project.  For this project one 
>> of the things I’ve been stuck on is the idea of presence information.
> 
> Glad you liked the presentation. One of the things I worked on in the past 
> was iChat, including the Bonjour IM system, so I’m definitely interested in 
> presence.
> 
>> 2. Create a single heartbeat doc per device/person and continue updating it 
>> when online. Pro: less documents Cons: Lot’s of revisions; possible but 
>> unlikely revision collisions.
> 
> I think this is the better of the two approaches, but it’s still not ideal.
> 
> Problem 1: Lots of revisions, as you point out. The ForestDB storage in 1.1 
> handles this a lot better than the SQLite-based one does, because it 
> proactively prunes old revisions when new ones are added. The default 
> maxRevTreeDepth is 20, so at most 20 revisions of a doc will be kept around. 
> But regardless of storage, the more frequently state is updated, the more 
> replication traffic there will be.
> 
> Problem 2: When a device goes offline (app is backgrounded) it has to update 
> its presence document, and then replicate it to other peers. But there are 
> cases where that isn’t possible, like if the app moves out of range of the 
> LAN or otherwise loses connectivity, or if the app crashes. The typical way 
> around this is to put a timestamp on the presence document and give it a 
> fairly short time-to-live, so that if the peer keeps updating it, they’re 
> assumed to have gone offline. But now you have a conflict between timely 
> notifications of offline state, vs. the number of updates. (If you have 20 
> peers each updating their state every minute, that’s an update every 3 
> seconds.)
> 
> If everyone’s on the same LAN, it works better to use Bonjour alone. That’s 
> what iChat does. Your app’s published replication service is its presence. 
> Bonjour is pretty good at keeping its state of the world up to date (well, in 
> Yosemite it wasn’t, but apparently 10.10.4 fixed the regressions.)
> 
> —Jens
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Couchbase Mobile" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/mobile-couchbase/19F8D395-BECE-4D01-8C5C-DB43AF812D9F%40couchbase.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mobile-couchbase/A97EA3D9-AE91-4737-A099-41F6FDD26BF5%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to