From 7dbd4dee4702e30efb24c81898ae45dd0d502c41 Mon Sep 17 00:00:00 2001 From: shess Date: Tue, 6 Oct 2015 10:39:16 -0700 Subject: [sql] Use memory-mapped I/O for sql::Connection. sql::Connection::Open*() uses PRAGMA mmap_size to enable SQLite's memory-mapped I/O. Additionally instrument to flush dirty pages from the page cache after writes. BUG=489784,533682,537681,537636 [Relands https://crrev.com/9a1948a4d6d4 (#350362), reverted at https://crrev.com/55c3216b15ce (#350386), relanded at https://crrev.com/5c2f4e50d96d (#351344), reverted at https://crrev.com/745e18c52384 (#351596). May the waterfall have mercy on my CL.] Review URL: https://codereview.chromium.org/1382283003 Cr-Commit-Position: refs/heads/master@{#352631} --- sql/statement.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'sql/statement.cc') diff --git a/sql/statement.cc b/sql/statement.cc index 09c95da..2a0faa7 100644 --- a/sql/statement.cc +++ b/sql/statement.cc @@ -110,6 +110,11 @@ void Statement::Reset(bool clear_bound_vars) { ref_->connection()->RecordOneEvent(Connection::EVENT_STATEMENT_SUCCESS); } + // Potentially release dirty cache pages if an autocommit statement made + // changes. + if (ref_->connection()) + ref_->connection()->ReleaseCacheMemoryIfNeeded(false); + succeeded_ = false; stepped_ = false; } -- cgit v1.1