Use both sync methods simultaneously?

160 views
Skip to first unread message

Lucas D

unread,
May 28, 2014, 3:47:15 PM5/28/14
to mylifeo...@googlegroups.com
First, a word of thanks to the developers. This software is extremely useful.

Now, I'm currently using wifi sync between the desktop and my Android device, and so far everything is working beautifully. This system is good for me because I often have to work in places that have no internet, so the wifi sync is key. On the desktop, my data is stored in Dropbox, so that way I also have a cloud backup. However, during long periods of Android-only use, I become concerned that I have no updated cloud backup, so I am considering adding MLO Cloud sync to the mix. So, my questions are: Can both sync methods (wifi and MLO Cloud) be combined on my Android device? And if they can, are there any issues to be aware of?

Alexandra Borovytskaya

unread,
May 29, 2014, 4:28:50 AM5/29/14
to mylifeo...@googlegroups.com
Hi Lucas,
You can use Cloud and WiFi sync methods with no issues.


On Wed, May 28, 2014 at 10:47 PM, Lucas D <lucas....@gmail.com> wrote:
First, a word of thanks to the developers. This software is extremely useful.

Now, I'm currently using wifi sync between the desktop and my Android device, and so far everything is working beautifully. This system is good for me because I often have to work in places that have no internet, so the wifi sync is key. On the desktop, my data is stored in Dropbox, so that way I also have a cloud backup. However, during long periods of Android-only use, I become concerned that I have no updated cloud backup, so I am considering adding MLO Cloud sync to the mix. So, my questions are: Can both sync methods (wifi and MLO Cloud) be combined on my Android device? And if they can, are there any issues to be aware of?

--
You received this message because you are subscribed to the Google Groups "MyLifeOrganized" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mylifeorganiz...@googlegroups.com.
To post to this group, send email to mylifeo...@googlegroups.com.
Visit this group at http://groups.google.com/group/mylifeorganized.
To view this discussion on the web visit https://groups.google.com/d/msgid/mylifeorganized/ef4fd715-57af-4391-8e7b-4df656b2da9d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Best Regards,

Alexandra Borovytskaya

Lucas D

unread,
Jun 10, 2014, 6:07:02 PM6/10/14
to mylifeo...@googlegroups.com
There is indeed an issue! I have discovered the following scenario that leads to changes being lost:

1. On desktop, create task "Task Version 1".
2. On android, run wifi sync.
3. On desktop, edit "Task Version 1" so that it now reads "Task Version 2"
4. On desktop, run MLO online sync. 
5. On android, run MLO online sync. 
6. On desktop, again run MLO online sync. "Task Version 2" has now reverted to "Task Version 1"! I don't think this should be happening and I lost a bunch of work this way!

Notes: On android, for the "Both sides changed item" option, I have selected, "Use local version". On desktop, in the MLO synchronization options, I have selected the recommended bidirectional sync option.

(Should I be reporting this to support via some other channel?)

Best,

Lucas

Lucas D

unread,
Jun 11, 2014, 11:17:38 PM6/11/14
to mylifeo...@googlegroups.com
On further thought, I now realize it was somewhat unfair for me to blame MLO for this problem, since in a way the behavior makes sense in terms of the logic of the "Use local version" setting. But it's not ideal. So I guess what's really needed is an option under "Both sides changed item" that says "Use most recent version". That would solve the problem.

Lucas

Dwight Arthur

unread,
Jun 12, 2014, 10:42:13 AM6/12/14
to mylifeo...@googlegroups.com
Lucas, I agree with you and it really is an MLO problem.  It's just that it's not a problem with mixed-mode sync.  You can get the same problem with cloud sync alone. Just change a task on windows and sync to cloud, then without syncing Android make a change there. Then sync. One of the changes will be lost based on your sync setting, and neither setting will always be right. Latest change isnt always right either.

I believe there are two possible solutions:
1. Implement on Android the process that's on Windows that notifies the user that a task was modified on both sides and let the user pick which one to keep,  or
2. On both Windows and Android, sync each record to the cloud immediately when it is modified.
-Dwight
-Dwight
Mlo betazoid on Android sgn2

Steve Gledhill

unread,
Jun 13, 2014, 8:19:08 PM6/13/14
to mylifeo...@googlegroups.com
I agree with Dwight: we need to find a way to solve this fundamental problem.

My preferred method would be option 2: sync each record to the cloud immediately. I don't know why this isn't the case already.

Dwight Arthur

unread,
Jun 13, 2014, 9:29:23 PM6/13/14
to mylifeo...@googlegroups.com

Instant synch would be ideal, but there’s actually a little more to it. Whenever a changed record gets synched to the cloud there would need to be a way to push the changed record out to every platform that stores a copy of the record. It would have to be done quickly enough to arrive at each platform faster than it would take the user to arrive and start updating the other platform.

 

Regarding why this is not the case already, this takes a lot more resources. It would take bigger servers and faster internet connections, in other words money. In addition any user running MLO on a system where it feels a little sluggish would see a clearly perceptible slowdown when this is implemented, and may have to upgrade to a bigger or faster phone.

_Dwight

Steve Gledhill

unread,
Jun 15, 2014, 6:02:18 AM6/15/14
to mylifeo...@googlegroups.com
Thanks Dwight. I can understand the second point about the resources (I guess you're saying that mlo would have to be continually syncing and your servers can't cope). This could be addressed by introducing another level of service to generate the income required to upgrade.

I'm not sure about first point:  " It would have to be done quickly enough to arrive at each platform faster than it would take the user to arrive and start updating the other platform." I only ever use MLO on one device at a time. I  may move from from PC to my laptop to my phone quite quickly but certainly not instantly. If we could have mlo check for changes when it has been inactive for a while then that would do. I.e. I make a change on my laptop and then immediately start using mlo on the phone ; mlo on the phone will have been inactive and will therefore auomtatically sync when it has focus. 

Dwight Arthur

unread,
Jun 15, 2014, 8:22:20 AM6/15/14
to mylifeo...@googlegroups.com
Hi, Steve. First of all, they are not *my* servers. I'm just a user with a lot of opinions. I might have to get a more powerful phone,  though.

The other issue involves pushing versus pulling synched changes. In push sync, the server tells the client thay there are changes waiting. In pull sync, the client polls periodically. MLO currently pulls. I am not certain but I think Google Calendar, Gmail and Evernote all push. The performance of pull sync depends on the polling interval, or how often the client looks for changes. If it's too slow, there's a greater risk that a change shows up too late. But the faster it gets, the more of your phone's data quota and cpu gets used up. Your suggestion of polling whenever the client regains focus does help to reduce the risk of late/missed changes but there are two problems. (1) when I discover a new task and want to add it to my task list and pick up my phone,  I want to get on with adding it right now. If the phone makes me watch a "please wait" sign for 20 seconds before starting, I would be very frustrated.  (2) sometimes I find a task in MLO, put the phone down, spend a while on the task, go to my laptop, make some changes, and later pick up the phone to look at my tasks.apparently MLO was in the foreground all this time and does not have to "regain focus", so to pick up all changes, timer-driven polling is still necessary.

In my view,  push sync is better but it's more complex to code.
Ng-Dwight

Mlo betazoid on Android sgn2

Lisa Stroyan

unread,
Jun 15, 2014, 10:25:31 AM6/15/14
to MyLifeOrganized Group

The other issue, at least from a practical standpoint right now, is widgets and such. Widgets don't usually have "focus"; and at least in the current Android version, completing tasks from the status bar does not have the same effect as completing them from the application and then switching focus.

Steve Gledhill

unread,
Jun 16, 2014, 4:22:30 AM6/16/14
to mylifeo...@googlegroups.com
Hi Dwight / Lisa

It seems that the key factor here is how often MLO 'pulls'. Ideally it would pull so often it would be indistinguishable from a push. That would impact on a phone's battery but I'm not sure how it would affect the data usage. Except for the small amount of data sent to their ( :-) ) servers asking for any changes. I  assume this is a hash of some kind (I can't imagine the phone downloads the cloud copy and does a record by record comparison). Only when it finds a difference will it download more data. I'm only guessing though.

I agree that continual real-time collection is a key part of GTD  success. If MLO pulls every time it gets focus that need not interfere with collecting a new task since, by definition, MLO knows that this will not be found in the cloud. So, MLO  can sync in the background whilst you type a new task. Or, if this level of multi-tasking is too much, it would be fair to tell MLO not to sync while you have the add task dialogue open: you won't know if your phone is out of sync because you are only looking at your new task. When you exit the new task dialogue MLO can start/continue the sync.

Your second scenario (phone still had focus whilst you were on the PC and therefore wouldn't re-sync) would be fixed by a more frequent pull. If you are returning to your phone so soon after editing on your pc then you would probably realise there could be sync problem and manually sync. This pre-supposes that MLO  is set up to have automatically sycned when you made a change on the PC. It this final point that is the most frustrating part of the sync process:  I  would like to see that every edit initiates a sync - definitely on a PC but perhaps with configurable options on a phone to presererve battery and data.

Lisa, mmm, yes. Widgets. I can see that being a problem. I'm not a phone developer but I suspect the Widgets act in a different way and that their functionality is dependent on a small footprint/impact on the under-lying app. So, a glib (a al Captain Pickard) "make it sync" is not as easy as it sounds.

So, ideally we:
  • push more frequently, ideally after each change
  • suspend syncing when adding new tasks
  • improve the way we present conflicts 

Dwight Arthur

unread,
Jun 16, 2014, 9:27:41 AM6/16/14
to mylifeo...@googlegroups.com
Hi, Steve. I have no inside knowledge but from watching what happens when sync has a bug I believe that the device polls the server by saying "here's the time (UCT) of my last sync, do you have any changes for me" and the server replies either "no" or "yes, here are some changes for you". If this is correct, some conclusions I draw are:
1. Idle polls don't use much data
2. The server does not do any analysis of changes to detect conflicts are do anything else with task content. It's all done at the client.
3. If two client devices could accomplish a key exchange they could have a cloud sync that wall fully encrypted end-to-end without the server ever needing to decrypt the messages or even know the keys. Asymmetric encryption could be used so long as every client exchanges keys with every other client. All that would be necessary would be that each task have a unique record id that can be found in the encrypted message in cleartext or under symmetric encryption. This allows the server to discard prior versions of newly updated records.

-Dwight
Mlo betazoid on Android sgn2

Reply all
Reply to author
Forward
0 new messages