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