mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Simplify the page recycling condition in pcache1. Fix test cases to work
with the latest changes. FossilOrigin-Name: 5b60df5503f61922326b3e10e94aa197b17afe4b
This commit is contained in:
18
manifest
18
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.
|
C Simplify\sthe\spage\srecycling\scondition\sin\spcache1.\s\sFix\stest\scases\sto\swork\nwith\sthe\slatest\schanges.
|
||||||
D 2015-07-06T20:57:22.615
|
D 2015-07-07T14:06:18.833
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in 017bf0511d1b2dd1db5e16488fbf75a17b526cbc
|
F Makefile.in 017bf0511d1b2dd1db5e16488fbf75a17b526cbc
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@ -319,7 +319,7 @@ F src/pager.h 6d435f563b3f7fcae4b84433b76a6ac2730036e2
|
|||||||
F src/parse.y 6d60dda8f8d418b6dc034f1fbccd816c459983a8
|
F src/parse.y 6d60dda8f8d418b6dc034f1fbccd816c459983a8
|
||||||
F src/pcache.c cde06aa50962595e412d497e22fd2e07878ba1f0
|
F src/pcache.c cde06aa50962595e412d497e22fd2e07878ba1f0
|
||||||
F src/pcache.h 9968603796240cdf83da7e7bef76edf90619cea9
|
F src/pcache.h 9968603796240cdf83da7e7bef76edf90619cea9
|
||||||
F src/pcache1.c 17c392b4208ea6e1e5d220be18bcfebac07110b1
|
F src/pcache1.c 1b6bc285d8d6a1a7df41e345cb45914093aecfdf
|
||||||
F src/pragma.c c1f4d012ea9f6b1ce52d341b2cd0ad72d560afd7
|
F src/pragma.c c1f4d012ea9f6b1ce52d341b2cd0ad72d560afd7
|
||||||
F src/pragma.h b8632d7cdda7b25323fa580e3e558a4f0d4502cc
|
F src/pragma.h b8632d7cdda7b25323fa580e3e558a4f0d4502cc
|
||||||
F src/prepare.c 82e5db1013846a819f198336fed72c44c974e7b1
|
F src/prepare.c 82e5db1013846a819f198336fed72c44c974e7b1
|
||||||
@ -843,9 +843,9 @@ F test/mallocL.test 252ddc7eb4fbf75364eab17b938816085ff1fc17
|
|||||||
F test/malloc_common.tcl aac62499b76be719fac31e7a3e54a7fd53272e7f
|
F test/malloc_common.tcl aac62499b76be719fac31e7a3e54a7fd53272e7f
|
||||||
F test/manydb.test 28385ae2087967aa05c38624cec7d96ec74feb3e
|
F test/manydb.test 28385ae2087967aa05c38624cec7d96ec74feb3e
|
||||||
F test/mem5.test c6460fba403c5703141348cd90de1c294188c68f
|
F test/mem5.test c6460fba403c5703141348cd90de1c294188c68f
|
||||||
F test/memdb.test fcb5297b321b562084fc79d64d5a12a1cd2b639b
|
F test/memdb.test c1f2a343ad14398d5d6debda6ea33e80d0dafcc7
|
||||||
F test/memleak.test 10b9c6c57e19fc68c32941495e9ba1c50123f6e2
|
F test/memleak.test 10b9c6c57e19fc68c32941495e9ba1c50123f6e2
|
||||||
F test/memsubsys1.test 690d142525a7d31efb638b0d232e25fac3afeb1a
|
F test/memsubsys1.test 1733c617e246642db5bf3b9f78c18e2b14fac96c
|
||||||
F test/memsubsys2.test 3a1c1a9de48e5726faa85108b02459fae8cb9ee9
|
F test/memsubsys2.test 3a1c1a9de48e5726faa85108b02459fae8cb9ee9
|
||||||
F test/minmax.test 42fbad0e81afaa6e0de41c960329f2b2c3526efd
|
F test/minmax.test 42fbad0e81afaa6e0de41c960329f2b2c3526efd
|
||||||
F test/minmax2.test b44bae787fc7b227597b01b0ca5575c7cb54d3bc
|
F test/minmax2.test b44bae787fc7b227597b01b0ca5575c7cb54d3bc
|
||||||
@ -900,7 +900,7 @@ F test/pagerfault3.test 1003fcda009bf48a8e22a516e193b6ef0dd1bbd8
|
|||||||
F test/pageropt.test 6b8f6a123a5572c195ad4ae40f2987007923bbd6
|
F test/pageropt.test 6b8f6a123a5572c195ad4ae40f2987007923bbd6
|
||||||
F test/pagesize.test 5769fc62d8c890a83a503f67d47508dfdc543305
|
F test/pagesize.test 5769fc62d8c890a83a503f67d47508dfdc543305
|
||||||
F test/pcache.test b09104b03160aca0d968d99e8cd2c5b1921a993d
|
F test/pcache.test b09104b03160aca0d968d99e8cd2c5b1921a993d
|
||||||
F test/pcache2.test a83efe2dec0d392f814bfc998def1d1833942025
|
F test/pcache2.test ec3ae192f444ee6a0a80d1fd80d99695d884bfb3
|
||||||
F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
|
F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
|
||||||
F test/permutations.test 6a88fd9ca15b804e9c20990773262ca67494058f
|
F test/permutations.test 6a88fd9ca15b804e9c20990773262ca67494058f
|
||||||
F test/pragma.test be7195f0aa72bdb8a512133e9640ac40f15b57a2
|
F test/pragma.test be7195f0aa72bdb8a512133e9640ac40f15b57a2
|
||||||
@ -1364,7 +1364,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
|
F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
|
||||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||||
P aa7341c8736732a0a59f6688cc34e78be02a7bfc
|
P d5ff1d69054d51a55eff6e1979971822db7f8f30
|
||||||
R ab876e072a5f820e07c8ea2cb7e263ca
|
R 968aaca5a1f6e381bde3c0ae75591e74
|
||||||
U drh
|
U drh
|
||||||
Z d6cf6ae811ec210c263fdd6a92d21a0f
|
Z 609b7f68c8ef0f31b06857cf6a1355d8
|
||||||
|
@ -1 +1 @@
|
|||||||
d5ff1d69054d51a55eff6e1979971822db7f8f30
|
5b60df5503f61922326b3e10e94aa197b17afe4b
|
@ -818,11 +818,10 @@ static SQLITE_NOINLINE PgHdr1 *pcache1FetchStage2(
|
|||||||
assert( pCache->nHash>0 && pCache->apHash );
|
assert( pCache->nHash>0 && pCache->apHash );
|
||||||
|
|
||||||
/* Step 4. Try to recycle a page. */
|
/* Step 4. Try to recycle a page. */
|
||||||
if( pCache->bPurgeable && pGroup->pLruTail && (
|
if( pCache->bPurgeable
|
||||||
(pCache->nPage+1>=pCache->nMax)
|
&& pGroup->pLruTail
|
||||||
|| pGroup->nCurrentPage>=pGroup->nMaxPage
|
&& ((pCache->nPage+1>=pCache->nMax) || pcache1UnderMemoryPressure(pCache))
|
||||||
|| pcache1UnderMemoryPressure(pCache)
|
){
|
||||||
)){
|
|
||||||
PCache1 *pOther;
|
PCache1 *pOther;
|
||||||
pPage = pGroup->pLruTail;
|
pPage = pGroup->pLruTail;
|
||||||
assert( pPage->isPinned==0 );
|
assert( pPage->isPinned==0 );
|
||||||
|
@ -419,11 +419,10 @@ ifcapable autovacuum {
|
|||||||
INSERT INTO t1 VALUES(randstr(1000,1000));
|
INSERT INTO t1 VALUES(randstr(1000,1000));
|
||||||
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 before [db one {PRAGMA page_count}]
|
||||||
set pgovfl [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_OVERFLOW 0] 1]
|
|
||||||
execsql { DELETE FROM t1 }
|
execsql { DELETE FROM t1 }
|
||||||
set memused2 [lindex [sqlite3_status SQLITE_STATUS_MEMORY_USED 0] 1]
|
set after [db one {PRAGMA page_count}]
|
||||||
expr {($memused2 + 2048 < $memused) || $pgovfl==0}
|
expr {$before>$after}
|
||||||
} {1}
|
} {1}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,6 +75,7 @@ set xtra_size 290
|
|||||||
db close
|
db close
|
||||||
sqlite3_shutdown
|
sqlite3_shutdown
|
||||||
sqlite3_config_lookaside 0 0
|
sqlite3_config_lookaside 0 0
|
||||||
|
sqlite3_config_pagecache 0 0
|
||||||
sqlite3_initialize
|
sqlite3_initialize
|
||||||
reset_highwater_marks
|
reset_highwater_marks
|
||||||
build_test_db memsubsys1-1 {PRAGMA page_size=1024}
|
build_test_db memsubsys1-1 {PRAGMA page_size=1024}
|
||||||
@ -115,10 +116,10 @@ do_test memsubsys1-2.5 {
|
|||||||
db close
|
db close
|
||||||
sqlite3_shutdown
|
sqlite3_shutdown
|
||||||
sqlite3_config_pagecache [expr 512+$xtra_size] 20
|
sqlite3_config_pagecache [expr 512+$xtra_size] 20
|
||||||
|
sqlite3_config singlethread
|
||||||
sqlite3_initialize
|
sqlite3_initialize
|
||||||
reset_highwater_marks
|
reset_highwater_marks
|
||||||
build_test_db memsubsys1-3.1 {PRAGMA page_size=1024}
|
build_test_db memsubsys1-3.1 {PRAGMA page_size=1024}
|
||||||
#show_memstats
|
|
||||||
do_test memsubsys1-3.1.3 {
|
do_test memsubsys1-3.1.3 {
|
||||||
set pg_used [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 2]
|
set pg_used [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 2]
|
||||||
} 0
|
} 0
|
||||||
@ -312,6 +313,7 @@ sqlite3_config_memstatus 1
|
|||||||
sqlite3_config_pagecache 0 0
|
sqlite3_config_pagecache 0 0
|
||||||
sqlite3_config_scratch 0 0
|
sqlite3_config_scratch 0 0
|
||||||
sqlite3_config_lookaside 100 500
|
sqlite3_config_lookaside 100 500
|
||||||
|
sqlite3_config serialized
|
||||||
sqlite3_initialize
|
sqlite3_initialize
|
||||||
autoinstall_test_functions
|
autoinstall_test_functions
|
||||||
finish_test
|
finish_test
|
||||||
|
@ -24,6 +24,7 @@ do_test pcache2-1.1 {
|
|||||||
sqlite3_reset_auto_extension
|
sqlite3_reset_auto_extension
|
||||||
sqlite3_shutdown
|
sqlite3_shutdown
|
||||||
sqlite3_config_pagecache 6000 100
|
sqlite3_config_pagecache 6000 100
|
||||||
|
sqlite3_config singlethread
|
||||||
sqlite3_initialize
|
sqlite3_initialize
|
||||||
autoinstall_test_functions
|
autoinstall_test_functions
|
||||||
sqlite3_status SQLITE_STATUS_PAGECACHE_USED 1
|
sqlite3_status SQLITE_STATUS_PAGECACHE_USED 1
|
||||||
@ -73,6 +74,7 @@ catch {db2 close}
|
|||||||
sqlite3_reset_auto_extension
|
sqlite3_reset_auto_extension
|
||||||
sqlite3_shutdown
|
sqlite3_shutdown
|
||||||
sqlite3_config_pagecache 0 0
|
sqlite3_config_pagecache 0 0
|
||||||
|
sqlite3_config serialized
|
||||||
sqlite3_initialize
|
sqlite3_initialize
|
||||||
autoinstall_test_functions
|
autoinstall_test_functions
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user