Overall SQLite has been the perfect solution to our situation. We needed some 
relation but nothing too heavy weight to store our meta data about files and 
shares. Early on we figured out quite quickly not leverage the read/write 
locking models of SQLite (SQLITE_BUSY hell) but instead use a single monolithic 
lock for all our transactions into SQLite. Also we've struggled a bit with 
delete performance in SQLite and  quickly learned not to use too many foreign 
key constraints in these situations; in addition to ensuring our like/glob 
queries leveraged the index where appropriate.

As it stands now, our customers periodically have random I/O errors in sqlite, 
that we have no real explanation for aside from possibly a write i/o failure on 
the system, in addition to the occasional corrupt db. None of the issues with 
SQLite have been show stoppers though, and its worked out great for us.

-Jason

-----Original Message-----
From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-boun...@sqlite.org] 
On Behalf Of Roger Binns
Sent: Friday, March 1, 2013 1:31 PM
To: General Discussion of SQLite Database
Subject: Re: [sqlite] Announcement of Copy - A cross platform syncing app, that 
uses SQLite as its backend

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 01/03/13 09:56, Jason Dictos wrote:
> This app we wrote couldn't have happened without SQLite,

I would be interested in hearing about the experience with SQLite, especially 
anything relevant to other developers.

One of your competitors is Dropbox who also use SQLite (I have no connection to 
them other than as a customer).  On desktop computers you can find the SQLite 
databases in a .dropbox subdirectory of your home directory (or equivalent).  
They were encrypted a while back because of various issues.

The Dropbox Android client also uses SQLite with a non-encrypted database.
 It has several tables related to camera images, with the core schema being 
these two tables:


CREATE TABLE dropbox (_id INTEGER PRIMARY KEY AUTOINCREMENT, _data TEXT, 
modified TEXT, bytes INTEGER, revision TEXT, hash TEXT, icon TEXT, is_dir 
INTEGER, path TEXT , canon_path TEXT, root TEXT, size TEXT, mime_type TEXT, 
thumb_exists INTEGER, parent_path TEXT, canon_parent_path TEXT, _display_name 
TEXT COLLATE NOCASE, is_favorite INTEGER, local_modified INTEGER, local_bytes 
INTEGER, local_revision TEXT, local_hash TEXT, accessed INTEGER, encoding TEXT, 
sync_status INTEGER, _natsort_name TEXT COLLATE NOCASE);

CREATE TABLE pending_uploads (_id INTEGER PRIMARY KEY AUTOINCREMENT, class 
TEXT, data TEXT);

dropbox._data is the path to a local copy of the file, not the file contents.

Roger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAlEw8/IACgkQmOOfHg372QSl3gCgnJzdP1aqglyaUkL2Dp2+nPIk
7j8AoK7sorrrzzh0z+jrxzmGjWqjx4AL
=zgYl
-----END PGP SIGNATURE-----
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Copy, by Barracuda, helps you store, protect, and share all your amazing
things. Start today: www.copy.com.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to