[Owncloud] Compiling the client

Emre Erenoglu erenoglu at gmail.com
Thu Jun 14 06:57:51 UTC 2012


On Thu, Jun 14, 2012 at 10:42 AM, Klaas Freitag <freitag at owncloud.com>wrote:

> On 13.06.2012 21:53, Jono wrote:
> Hey Jono,
>
>
>  Thanks for your response. I found the compiling problem to be that
>> DefineOptions.cmake had LOG_TO_CALLBACK set to OFF. Now I have the
>> client running.
>>
> Cool, thanks for mentioning, and sorry that I forgot... Will try to make
> that more smooth.
>
>
>  A little background. I wrote a Dropbox like system last year:
>> https://github.com/jonocodes/**mybox <https://github.com/jonocodes/mybox>
>>
> Ah, interesting.
>
>
>  It has some similarities to mirall, but one difference is it is a
>> client and server which coordinate syncs over socket communication so
>> there is no polling.
>>
>> I recently found csync while looking for a new sync backend to use in
>> mybox. Which is why I am looking at how mirall does it.
>>
>> What are the plans you mentioned to make server sync more efficient?
>>
> 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.
>
> 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 ;-)
>
> Another great improvement will be to use some kind of server push to get
> to know about changes on the server to avoid polling.
>
> 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.
>
>
>  Too bad I did not know about your project earlier. Sounds like we were
>> working in parallel at the same time on similar things. I probably
>> would have joined you in the beginning, and perhaps I still can be of
>> help. We'll see. Maybe it is time for me to get back into C++.
>>
>
> 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.
>

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.

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.

-- 
Emre
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/owncloud/attachments/20120614/b933e8ec/attachment.html>


More information about the Owncloud mailing list