From 40ecdeb0b60a7dfd15339ce9e0e851ce209b5da1 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 10 Feb 2016 15:15:05 -0800 Subject: [core] Optimize offline database schema * Under the hood, SQLite creates surrogate keys (ROWID) anyway. We may as well take advantage of this and use the surrogates for foreign keys as well, since they are simpler and more efficient than compound foreign keys. * Create indexes for efficient eviction queries --- test/storage/offline_database.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/test/storage/offline_database.cpp b/test/storage/offline_database.cpp index e4a5381d21..3a731e3995 100644 --- a/test/storage/offline_database.cpp +++ b/test/storage/offline_database.cpp @@ -517,23 +517,24 @@ TEST(OfflineDatabase, PutReturnsSize) { TEST(OfflineDatabase, PutEvictsLeastRecentlyUsedResources) { using namespace mbgl; - OfflineDatabase db(":memory:", 1024 * 20); + OfflineDatabase db(":memory:", 1024 * 25); Response response; response.data = randomString(1024); for (uint32_t i = 1; i <= 20; i++) { - db.put(Resource::style("http://example.com/"s + util::toString(i)), response); + Resource resource = Resource::style("http://example.com/"s + util::toString(i)); + db.put(resource, response); + EXPECT_TRUE(bool(db.get(resource))) << i; } EXPECT_FALSE(bool(db.get(Resource::style("http://example.com/1")))); - EXPECT_TRUE(bool(db.get(Resource::style("http://example.com/20")))); } TEST(OfflineDatabase, PutRegionResourceDoesNotEvict) { using namespace mbgl; - OfflineDatabase db(":memory:", 1024 * 20); + OfflineDatabase db(":memory:", 1024 * 25); OfflineRegionDefinition definition { "", LatLngBounds::world(), 0, INFINITY, 1.0 }; OfflineRegion region = db.createRegion(definition, OfflineRegionMetadata()); @@ -552,7 +553,7 @@ TEST(OfflineDatabase, PutFailsWhenEvictionInsuffices) { using namespace mbgl; Log::setObserver(std::make_unique()); - OfflineDatabase db(":memory:", 1024 * 20); + OfflineDatabase db(":memory:", 1024 * 25); Response small; small.data = randomString(1024); -- cgit v1.2.1