[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: Request for comments: New address book API
From: Cornelius Schumacher <schumacher () kde ! org>
Date: 2001-10-14 21:50:29
[Download RAW message or body]
On Sunday 14 October 2001 19:49, Rik Hemsley wrote:
> #if Cornelius Schumacher
>
> > Per-record locking could be done by splitting up the file and store
> > one record per file, but this would also complicate the API. Is
> > this really worth it? What are the advantages?
>
> Well, just imagine if the entire CVS repository was locked when one
> person committed changes to one file, and they were doing this over a
> slow link...
Yes, but this is a different application. In CVS you have thousands of
files and many different people are frequently accessing these for
reading and writing. For the addressbook I would assume that the
typical case is a few dozens entries and most of the time a single user
is accessing them read-only. Even if you take into account shared
address books on a server I don't think that it happens very often that
two users are writing to the address book at the same time.
> BTW, storing the entire db in one file is risky, no ? How do you
> write ? Write an entire new file, then mv ? If you don't, how do you
> cope with a server crash ?
Good point. File saving could be made safer, that's right, but at the
moment this is just an implementation detail, we can work on things
like that later.
> > Merging changes can be quite difficult, if different changes have
> > been done to the same record. This might not be possible without
> > user interaction and even then you need the locking for the time of
> > the merge.
>
> Yes, it would require user interaction, but if the user makes changes
> and tries to commit them, then you see the record has changed since
> you last looked at it, you have to merge anyway, so I fear this is
> unavoidable.
If you lock before you do any changes than you don't have to merge. It
can for example happen that you are not allowed to edit a an address in
KAddressbook for a short time because KPilot is syncing the address
book at the same time, but you never have to merge different changes.
Since I assume that writing to the address book is not done very often,
I think that locking is appropriate in this case. For things like
syncing the complete address book with another address book (e.g. on a
Palm) you need locking of the complete address book anyway. If we find
that this is to restrictive in practice, we can add per-record locking
later.
--
Cornelius Schumacher <schumacher@kde.org>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic