Hello,

Henry> No. It might be on your particular systems, but we cannot make
Henry> a general case. It is possible that it will always be safe on
Henry> (for example) Windows 2000, while not safe on NT or XP! It
Henry> depends on how the OS handles caching. They are supposed to
Henry> check on each file access to see if the file changed, but
Henry> networks are slow, so they might not. Thus you could start
Henry> reading data that is in the cache, which is out of date.

My understanding, after all of your helpful comments,  currently is:

Simultaneous reading of a server file by different clients is safe, as
long as the file doesnt get changed at all (at least in a time scale
where the Client Os could cache it). Updaing the file might cause
problems becuase of caching on the Client Os side, no matter how
cleanly and isolated this update was done (eg all clients off, and
update on server machine). (Im not sure I fully understand what terms
like "atomic and "durable" mean in this context but I presume Ive
gotten the jist?)

The same applies to sqlite accesses since it just uses regular files.
And when you only querying the database (not changing the data), you
are just reading the database file .. ie sqlite doesnt do anything
which would break the clients only reading condition.

Am I right so far?

>> In my opinion system time stamps etc are not a reliable means of
>> comparing 2 files. Many things can change the timestamp of a file,
>> without changing the contents, and one (server) os/filesystem can
>> report a different file size to another (local) for the same file
>> (contents). As I said already, I think having a version number
>> embedded in the databse itself is much more relible.

Mrs.> Wrong. The sqlite database is binary. Any size check is going to
Mrs.> be in 8-bit bytes and will always be the same- except for
Mrs.> platforms that SQLite doesn't run on- any comparison with a
Mrs.> system that doesn't have 8-bit bytes will have to be aware of
Mrs.> that fact.

The size of a file depends for example on the cluster size of the
underlying partition. And regardless is of little value in comparing
two files; the same file size/name doesnt mean two files are
identical.


Mrs.> You still haven't said what platform you're developing for.

Windown in particular, but also others.

Mrs.> djm: You still haven't told us exactly what you're using.

Im currently using C++ (Qt) but also plan to use php with sqlite for
other projjects. In either cases the app should be cross platform.

Best regards,
 djm                            mailto:[EMAIL PROTECTED]


Reply via email to