A. Pagaltzis wrote:
* Roger Binns <[EMAIL PROTECTED]> [2006-06-05 00:05]:
I don't know if anyone has tracked how well Spotlight (Mac) or
Beagle (Linux) work with SQLite files.
They cause no problems. The semantics of the filesystem API on
*nix systems differ from those of Windows; in short, a file and
its name are separate entities on *nix and locking is advisory.
One effect is that you can delete the name of a file without the
file being (immediately) affected. It is only "garbage collected"
once there are no other names for it elsewhere in the filesystem
nor any processes holding it open. There are several other
effects that cumulatively make concurrent modifications of the
filesystem by multiple processes a non-issue in most cases where
it requires hacky workarounds on Windows. (It does mean you have
to be more careful and diligent about some things, as well.)
This is what makes it a reasonable assumption for SQLite that it
"owns" any temporary transaction file it created. On *nix, that
Just Works with no further effort or any thought about action at
a distance.
Regards,
Sqlite could create journal with exclusive RW access under Windows.
That way no other process can read from it.The only problem is that the
other process could be just another sqlite driven application ;-)
In this case must use the same lock (this means probably single sqlite
instance?) which further complicates this issue (shared memory needed
(?)) - I don't even know if this is possible.
Anyway - it is a bad design of other applications (like TortoiseSVN) -
which should never exclusively lock not owned files.
Just my 2 cents.
Regards
Boguslaw Brandys