tracker r1725 - in branches/indexer-split: . data src/libtracker-db
- From: pvanhoof svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1725 - in branches/indexer-split: . data src/libtracker-db
- Date: Fri, 20 Jun 2008 13:49:15 +0000 (UTC)
Author: pvanhoof
Date: Fri Jun 20 13:49:15 2008
New Revision: 1725
URL: http://svn.gnome.org/viewvc/tracker?rev=1725&view=rev
Log:
2008-06-20 Philip Van Hoof <pvanhoof gnome org>
* src/libtracker-db/tracker-db-manager.c:
* data/sqlite-service-triggers.sql:
* data/sqlite-tracker-triggers.sql:
Using a transaction around database initializations. This speeds up
initialization, makes it more robust (what if we get killed while
initializing) and it seems to avoid a call for fsync() when we have
PRAGMA synchronous = NORMAL (which we currently do have for all
database connections).
Point of opinion about this commit: we should utilize transactions more
often in the code. It helps us avoid corruption and massively speeds up
INSERTs and UPDATEs:
http://www.sqlite.org/speed.html:
At Executive Summary: SQLite works best if you group multiple
operations together into a single transaction.
Modified:
branches/indexer-split/ChangeLog
branches/indexer-split/data/sqlite-service-triggers.sql
branches/indexer-split/data/sqlite-tracker-triggers.sql
branches/indexer-split/src/libtracker-db/tracker-db-manager.c
Modified: branches/indexer-split/data/sqlite-service-triggers.sql
==============================================================================
--- branches/indexer-split/data/sqlite-service-triggers.sql (original)
+++ branches/indexer-split/data/sqlite-service-triggers.sql Fri Jun 20 13:49:15 2008
@@ -1,5 +1,3 @@
-BEGIN TRANSACTION;!
-
CREATE TRIGGER delete_service BEFORE DELETE ON Services
BEGIN
DELETE FROM ServiceMetaData WHERE ServiceID = old.ID;
@@ -9,5 +7,3 @@
DELETE FROM ChildServices WHERE (ChildID = old.ID);
END;!
-
-COMMIT TRANSACTION;!
Modified: branches/indexer-split/data/sqlite-tracker-triggers.sql
==============================================================================
--- branches/indexer-split/data/sqlite-tracker-triggers.sql (original)
+++ branches/indexer-split/data/sqlite-tracker-triggers.sql Fri Jun 20 13:49:15 2008
@@ -1,9 +1,4 @@
-BEGIN TRANSACTION;!
-
-
CREATE TRIGGER delete_backup_service BEFORE DELETE ON BackupServices
BEGIN
DELETE FROM BackupMetaData WHERE ServiceID = old.ID;
END;!
-
-COMMIT TRANSACTION;!
Modified: branches/indexer-split/src/libtracker-db/tracker-db-manager.c
==============================================================================
--- branches/indexer-split/src/libtracker-db/tracker-db-manager.c (original)
+++ branches/indexer-split/src/libtracker-db/tracker-db-manager.c Fri Jun 20 13:49:15 2008
@@ -1712,6 +1712,7 @@
iface = db_interface_get (TRACKER_DB_COMMON, &create);
if (create) {
+ tracker_db_interface_start_transaction (iface);
/* Create tables */
load_sql_file (iface, "sqlite-tracker.sql", NULL);
load_sql_file (iface, "sqlite-metadata.sql", NULL);
@@ -1729,6 +1730,7 @@
load_metadata_file (iface, "email.metadata");
load_metadata_file (iface, "image.metadata");
load_metadata_file (iface, "video.metadata");
+ tracker_db_interface_end_transaction (iface);
}
/* Load static data into tracker ontology */
@@ -1746,7 +1748,9 @@
iface = db_interface_get (TRACKER_DB_CACHE, &create);
if (create) {
+ tracker_db_interface_start_transaction (iface);
load_sql_file (iface, "sqlite-cache.sql", NULL);
+ tracker_db_interface_end_transaction (iface);
}
return iface;
@@ -1761,8 +1765,10 @@
iface = db_interface_get (TRACKER_DB_FILE_METADATA, &create);
if (create) {
+ tracker_db_interface_start_transaction (iface);
load_sql_file (iface, "sqlite-service.sql", NULL);
load_sql_file (iface, "sqlite-service-triggers.sql", "!");
+ tracker_db_interface_end_transaction (iface);
}
return iface;
@@ -1777,7 +1783,9 @@
iface = db_interface_get (TRACKER_DB_FILE_CONTENTS, &create);
if (create) {
+ tracker_db_interface_start_transaction (iface);
load_sql_file (iface, "sqlite-contents.sql", NULL);
+ tracker_db_interface_end_transaction (iface);
}
tracker_db_interface_sqlite_create_function (iface,
@@ -1801,9 +1809,11 @@
iface = db_interface_get (TRACKER_DB_EMAIL_METADATA, &create);
if (create) {
+ tracker_db_interface_start_transaction (iface);
load_sql_file (iface, "sqlite-service.sql", NULL);
load_sql_file (iface, "sqlite-email.sql", NULL);
load_sql_file (iface, "sqlite-service-triggers.sql", "!");
+ tracker_db_interface_end_transaction (iface);
}
return iface;
@@ -1818,7 +1828,9 @@
iface = db_interface_get (TRACKER_DB_EMAIL_CONTENTS, &create);
if (create) {
+ tracker_db_interface_start_transaction (iface);
load_sql_file (iface, "sqlite-contents.sql", NULL);
+ tracker_db_interface_end_transaction (iface);
}
tracker_db_interface_sqlite_create_function (iface,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]