<div dir="ltr"><div class="gmail_quote">On Thu, Jun 14, 2012 at 10:42 AM, Klaas Freitag <span dir="ltr"><<a href="mailto:freitag@owncloud.com" target="_blank">freitag@owncloud.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 13.06.2012 21:53, Jono wrote:<br>
Hey Jono,<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks for your response. I found the compiling problem to be that<br>
DefineOptions.cmake had LOG_TO_CALLBACK set to OFF. Now I have the<br>
client running.<br>
</blockquote></div>
Cool, thanks for mentioning, and sorry that I forgot... Will try to make that more smooth.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
A little background. I wrote a Dropbox like system last year:<br>
<a href="https://github.com/jonocodes/mybox" target="_blank">https://github.com/jonocodes/<u></u>mybox</a><br>
</blockquote></div>
Ah, interesting.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
It has some similarities to mirall, but one difference is it is a<br>
client and server which coordinate syncs over socket communication so<br>
there is no polling.<br>
<br>
I recently found csync while looking for a new sync backend to use in<br>
mybox. Which is why I am looking at how mirall does it.<br>
<br>
What are the plans you mentioned to make server sync more efficient?<br>
</blockquote></div>
Well, thats basically what you have: Use the servers capabilities of having knowledge about all files. csync is a bit inefficient (for the WebDAV case) because of the lots of directory listings which it does. Each of them is a PROPFIND which takes it's time and loads the server.<br>

<br>
A first step for more efficiency could be to get all information about all files in one request (utilizing onwClouds file cache) and provide use that data. That is a nice example as that would be a good performance boost without reinventing everything - which I am not a friend of ;-)<br>

<br>
Another great improvement will be to use some kind of server push to get to know about changes on the server to avoid polling.<br>
<br>
The first problem we need to solve is the requirement of csync to have syncronized times on both machines. While that technically is a good requirement many users complain about. We need to change that.<div class="im"><br>

<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Too bad I did not know about your project earlier. Sounds like we were<br>
working in parallel at the same time on similar things. I probably<br>
would have joined you in the beginning, and perhaps I still can be of<br>
help. We'll see. Maybe it is time for me to get back into C++.<br>
</blockquote>
<br></div>
Yeah, that would be great! While csync is written in C (which is hard for cross platform) We're using C++ and Qt [1] in mirall. That is a really is a great toolkit which makes C++ smooth and with literally breathtaking cross platform capabilities. If you haven't worked with it yet, I promise you will love it.<br>
</blockquote><div><br></div><div>My two cents after dealing with so many sync applications: It would be good to have unison like functionality. Ie when running over slow links, the server shall also participate on the "change detection", so client & server shall detect the changes on their sides and then compare each other, then do the changes in an rsync like algorithm, if the user chooses that option.</div>
<div><br></div><div>Change detection shall be done with the filesystem notification functions of supported operating systems. Periodic polling is not efficient and not much different than running unison manually or in a scheduled mode.</div>
<div><br></div></div>-- <br>Emre<br>
</div>