diff options
author | grothoff <grothoff@140774ce-b5e7-0310-ab8b-a85725594a96> | 2010-05-18 07:05:20 +0000 |
---|---|---|
committer | grothoff <grothoff@140774ce-b5e7-0310-ab8b-a85725594a96> | 2010-05-18 07:05:20 +0000 |
commit | 5fa763d3a154f7e493d5b3508f623a14b9678a43 (patch) | |
tree | 934143b5005941e022b7eaaef7c48e16b4c4b278 /src/datastore/plugin_datastore_sqlite.c | |
parent | a09d3072464fdef20fb752a19fea5843ee10feac (diff) |
fix quota calculations
git-svn-id: https://gnunet.org/svn/gnunet@11410 140774ce-b5e7-0310-ab8b-a85725594a96
Diffstat (limited to 'src/datastore/plugin_datastore_sqlite.c')
-rw-r--r-- | src/datastore/plugin_datastore_sqlite.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/datastore/plugin_datastore_sqlite.c b/src/datastore/plugin_datastore_sqlite.c index 1576cef006..6e20a74914 100644 --- a/src/datastore/plugin_datastore_sqlite.c +++ b/src/datastore/plugin_datastore_sqlite.c @@ -1613,13 +1613,19 @@ process_stat_done (void *cls, struct Plugin *plugin = cls; sqlite3_stmt *stmt; uint64_t pages; - uint64_t free_pages; + uint64_t page_size; plugin->stat_get = NULL; if (plugin->stats_worked == GNUNET_NO) { CHECK (SQLITE_OK == sq_prepare (plugin->dbh, + "VACUUM;", + &stmt)); + sqlite3_step (stmt); + sqlite3_finalize (stmt); + CHECK (SQLITE_OK == + sq_prepare (plugin->dbh, "PRAGMA page_count", &stmt)); if (SQLITE_ROW == @@ -1630,17 +1636,17 @@ process_stat_done (void *cls, sqlite3_finalize (stmt); CHECK (SQLITE_OK == sq_prepare (plugin->dbh, - "PRAGMA freelist_count", + "PRAGMA page_size", &stmt)); CHECK (SQLITE_ROW == sqlite3_step (stmt)); - free_pages = sqlite3_column_int64 (stmt, 0); + page_size = sqlite3_column_int64 (stmt, 0); sqlite3_finalize (stmt); GNUNET_log (GNUNET_ERROR_TYPE_INFO, - _("Using sqlite page utilization to estimate payload (%llu pages total, %llu free)\n"), + _("Using sqlite page utilization to estimate payload (%llu pages of size %llu bytes)\n"), (unsigned long long) pages, - (unsigned long long) free_pages); - plugin->payload = (pages - free_pages) * 4092LL; + (unsigned long long) page_size); + plugin->payload = pages * page_size; } } |