From 048d3f19b28ee04dd6b2ca3c8f86e5fa65dc7355 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Tue, 15 Jul 2014 07:37:46 -0600 Subject: Add DB.NoSync option for bulk loading. This commit adds the DB.NoSync flag to skip fsync() calls on each commit. This should only be used for bulk loading as it can corrupt your database in the event of a system failure. Initial tests show it can provide a 2x speed up for sequential inserts. --- db.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'db.go') diff --git a/db.go b/db.go index 4df79e2..2a2e2ed 100644 --- a/db.go +++ b/db.go @@ -47,6 +47,15 @@ type DB struct { // amount if you know that your write workloads are mostly append-only. FillPercent float64 + // Setting the NoSync flag will cause the database to skip fsync() + // calls after each commit. This can be useful when bulk loading data + // into a database and you can restart the bulk load in the event of + // a system failure or database corruption. Do not set this flag for + // normal use. + // + // THIS IS UNSAFE. PLEASE USE WITH CAUTION. + NoSync bool + path string file *os.File dataref []byte -- cgit v1.2.3