From: drh Date: Tue, 7 Jul 2015 14:06:18 +0000 (+0000) Subject: Simplify the page recycling condition in pcache1. Fix test cases to work X-Git-Tag: version-3.8.11~49^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c54357cc2ae6ff5526f3dd38c1f28fb633a36117;p=thirdparty%2Fsqlite.git Simplify the page recycling condition in pcache1. Fix test cases to work with the latest changes. FossilOrigin-Name: 5b60df5503f61922326b3e10e94aa197b17afe4b --- diff --git a/manifest b/manifest index 4622da25d7..bd367c068c 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C A\sunified\scache\sis\snow\sonly\sused\sfor\sSQLITE_ENABLE_MEMORY_MANAGEMENT,\sor\sif\nSQLITE_CONFIG_PAGECACHE\sdefines\sa\sshared\sstart-time\spage\scache\sbuffer\sand\sthe\napplication\sis\ssingle-threaded. -D 2015-07-06T20:57:22.615 +C Simplify\sthe\spage\srecycling\scondition\sin\spcache1.\s\sFix\stest\scases\sto\swork\nwith\sthe\slatest\schanges. +D 2015-07-07T14:06:18.833 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 017bf0511d1b2dd1db5e16488fbf75a17b526cbc F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -319,7 +319,7 @@ F src/pager.h 6d435f563b3f7fcae4b84433b76a6ac2730036e2 F src/parse.y 6d60dda8f8d418b6dc034f1fbccd816c459983a8 F src/pcache.c cde06aa50962595e412d497e22fd2e07878ba1f0 F src/pcache.h 9968603796240cdf83da7e7bef76edf90619cea9 -F src/pcache1.c 17c392b4208ea6e1e5d220be18bcfebac07110b1 +F src/pcache1.c 1b6bc285d8d6a1a7df41e345cb45914093aecfdf F src/pragma.c c1f4d012ea9f6b1ce52d341b2cd0ad72d560afd7 F src/pragma.h b8632d7cdda7b25323fa580e3e558a4f0d4502cc F src/prepare.c 82e5db1013846a819f198336fed72c44c974e7b1 @@ -843,9 +843,9 @@ F test/mallocL.test 252ddc7eb4fbf75364eab17b938816085ff1fc17 F test/malloc_common.tcl aac62499b76be719fac31e7a3e54a7fd53272e7f F test/manydb.test 28385ae2087967aa05c38624cec7d96ec74feb3e F test/mem5.test c6460fba403c5703141348cd90de1c294188c68f -F test/memdb.test fcb5297b321b562084fc79d64d5a12a1cd2b639b +F test/memdb.test c1f2a343ad14398d5d6debda6ea33e80d0dafcc7 F test/memleak.test 10b9c6c57e19fc68c32941495e9ba1c50123f6e2 -F test/memsubsys1.test 690d142525a7d31efb638b0d232e25fac3afeb1a +F test/memsubsys1.test 1733c617e246642db5bf3b9f78c18e2b14fac96c F test/memsubsys2.test 3a1c1a9de48e5726faa85108b02459fae8cb9ee9 F test/minmax.test 42fbad0e81afaa6e0de41c960329f2b2c3526efd F test/minmax2.test b44bae787fc7b227597b01b0ca5575c7cb54d3bc @@ -900,7 +900,7 @@ F test/pagerfault3.test 1003fcda009bf48a8e22a516e193b6ef0dd1bbd8 F test/pageropt.test 6b8f6a123a5572c195ad4ae40f2987007923bbd6 F test/pagesize.test 5769fc62d8c890a83a503f67d47508dfdc543305 F test/pcache.test b09104b03160aca0d968d99e8cd2c5b1921a993d -F test/pcache2.test a83efe2dec0d392f814bfc998def1d1833942025 +F test/pcache2.test ec3ae192f444ee6a0a80d1fd80d99695d884bfb3 F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff F test/permutations.test 6a88fd9ca15b804e9c20990773262ca67494058f F test/pragma.test be7195f0aa72bdb8a512133e9640ac40f15b57a2 @@ -1364,7 +1364,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P aa7341c8736732a0a59f6688cc34e78be02a7bfc -R ab876e072a5f820e07c8ea2cb7e263ca +P d5ff1d69054d51a55eff6e1979971822db7f8f30 +R 968aaca5a1f6e381bde3c0ae75591e74 U drh -Z d6cf6ae811ec210c263fdd6a92d21a0f +Z 609b7f68c8ef0f31b06857cf6a1355d8 diff --git a/manifest.uuid b/manifest.uuid index d027464ae1..68d4259bf2 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d5ff1d69054d51a55eff6e1979971822db7f8f30 \ No newline at end of file +5b60df5503f61922326b3e10e94aa197b17afe4b \ No newline at end of file diff --git a/src/pcache1.c b/src/pcache1.c index c34d0bba1c..71c5971c3a 100644 --- a/src/pcache1.c +++ b/src/pcache1.c @@ -818,11 +818,10 @@ static SQLITE_NOINLINE PgHdr1 *pcache1FetchStage2( assert( pCache->nHash>0 && pCache->apHash ); /* Step 4. Try to recycle a page. */ - if( pCache->bPurgeable && pGroup->pLruTail && ( - (pCache->nPage+1>=pCache->nMax) - || pGroup->nCurrentPage>=pGroup->nMaxPage - || pcache1UnderMemoryPressure(pCache) - )){ + if( pCache->bPurgeable + && pGroup->pLruTail + && ((pCache->nPage+1>=pCache->nMax) || pcache1UnderMemoryPressure(pCache)) + ){ PCache1 *pOther; pPage = pGroup->pLruTail; assert( pPage->isPinned==0 ); diff --git a/test/memdb.test b/test/memdb.test index a2efc0369b..7bad26f526 100644 --- a/test/memdb.test +++ b/test/memdb.test @@ -419,11 +419,10 @@ ifcapable autovacuum { INSERT INTO t1 VALUES(randstr(1000,1000)); INSERT INTO t1 VALUES(randstr(1000,1000)); } - set memused [lindex [sqlite3_status SQLITE_STATUS_MEMORY_USED 0] 1] - set pgovfl [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_OVERFLOW 0] 1] + set before [db one {PRAGMA page_count}] execsql { DELETE FROM t1 } - set memused2 [lindex [sqlite3_status SQLITE_STATUS_MEMORY_USED 0] 1] - expr {($memused2 + 2048 < $memused) || $pgovfl==0} + set after [db one {PRAGMA page_count}] + expr {$before>$after} } {1} } diff --git a/test/memsubsys1.test b/test/memsubsys1.test index 891558fd52..3eb3cd4a95 100644 --- a/test/memsubsys1.test +++ b/test/memsubsys1.test @@ -75,6 +75,7 @@ set xtra_size 290 db close sqlite3_shutdown sqlite3_config_lookaside 0 0 +sqlite3_config_pagecache 0 0 sqlite3_initialize reset_highwater_marks build_test_db memsubsys1-1 {PRAGMA page_size=1024} @@ -115,10 +116,10 @@ do_test memsubsys1-2.5 { db close sqlite3_shutdown sqlite3_config_pagecache [expr 512+$xtra_size] 20 +sqlite3_config singlethread sqlite3_initialize reset_highwater_marks build_test_db memsubsys1-3.1 {PRAGMA page_size=1024} -#show_memstats do_test memsubsys1-3.1.3 { set pg_used [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 2] } 0 @@ -312,6 +313,7 @@ sqlite3_config_memstatus 1 sqlite3_config_pagecache 0 0 sqlite3_config_scratch 0 0 sqlite3_config_lookaside 100 500 +sqlite3_config serialized sqlite3_initialize autoinstall_test_functions finish_test diff --git a/test/pcache2.test b/test/pcache2.test index 77e7a26132..1c15b8b56a 100644 --- a/test/pcache2.test +++ b/test/pcache2.test @@ -24,6 +24,7 @@ do_test pcache2-1.1 { sqlite3_reset_auto_extension sqlite3_shutdown sqlite3_config_pagecache 6000 100 + sqlite3_config singlethread sqlite3_initialize autoinstall_test_functions sqlite3_status SQLITE_STATUS_PAGECACHE_USED 1 @@ -73,6 +74,7 @@ catch {db2 close} sqlite3_reset_auto_extension sqlite3_shutdown sqlite3_config_pagecache 0 0 +sqlite3_config serialized sqlite3_initialize autoinstall_test_functions