Commit Graph

61 Commits

Author SHA1 Message Date
dan 5bd8af7c6b Fix a failing test case in index5.test. Also tweak the way cache memory is divided between read-only and dirty pages when using SQLITE_CONFIG_PAGECACHE to reduce IO in some cases.
FossilOrigin-Name: 8541dfb3bbdf63dc9ab304d8a0ab8b290cdc9d96
2014-10-10 19:10:59 +00:00
peter.d.reid 60ec914c74 Fix typos in comments. No code changes.
FossilOrigin-Name: e62aab5e9290503869e1f4d5e0fefd2b4dee0a69
2014-09-06 16:39:46 +00:00
drh efbf044583 Faster implementation of pcache1Fetch()
FossilOrigin-Name: 0371cc3bb07448bcd64fd671f3e71bb7f30deb4d
2014-08-23 23:15:31 +00:00
drh 693e671936 Fixes for various clang warnings.
FossilOrigin-Name: 87bf60637e5863c54c5e2d05aaaca0835b7aace8
2014-01-24 22:58:00 +00:00
drh 5d56dd2867 Enhance the pcache1PinPage() routine so that it called much less often and
runs much faster in the cases when it is actually called.

FossilOrigin-Name: a845779cd31aec3204a6a9c776bd9c9f7d47dd24
2013-12-13 18:50:40 +00:00
dan 290703091e Add some extra assert() statements to silence a few clang warnings.
FossilOrigin-Name: 1c63e9515b5f5cb9169928b108d002dcd18ad4fd
2013-08-19 18:17:03 +00:00
drh f7b5496e8e Many small harmless comment changes. Removal of obsolete comments and
fixing misspelled words.  No changes to code.

FossilOrigin-Name: a0d5cc9315dc6e9ef7dee4c3dfabf4e562d64376
2013-05-28 12:11:54 +00:00
dan 6809c96df3 Replace a few sqlite3_malloc()+memset() sequences with calls to sqlite3MallocZero().
FossilOrigin-Name: 305b6667265353b858b79bfea1745e64ff3bb7d3
2012-07-30 14:53:54 +00:00
drh 4bd6952a77 Provide an (undocumented) compile-time option to disable the page cache
overflow counter, in order to avoid a mutex.

FossilOrigin-Name: 208825cd830748a2ca456affc57be75bbe618e47
2012-06-07 02:35:29 +00:00
drh 2cbd78b70e Reduce the size of the MemPage object by about 32 bytes. Other structure
size optimizations.

FossilOrigin-Name: 21695c3476804477cb378b5a643196380e7e2281
2012-02-02 19:37:18 +00:00
drh 45d29309a7 Fix typos in commands. Combine the ExpandBlob and expandBlob macros into one.
FossilOrigin-Name: fc9179e154751b51ddef429600d30a89d4a098bd
2012-01-08 22:18:33 +00:00
drh a69085cf5f Change page quantities in pcache1.c to unsigned.
FossilOrigin-Name: da52e6e8b490508bc1ee4700aa45a79f398363da
2012-01-02 18:00:55 +00:00
drh 09419b4bae Add the sqlite3_db_release_memory() interface and the shrink_memory pragma.
FossilOrigin-Name: 3f58e7c8895d1252eff56282c08b1a6f1194452c
2011-11-16 19:29:17 +00:00
drh 81ef0f97ef Add a version number to the sqlite3_pcache_methods2 object. Other PCACHE2
documentation improvements.

FossilOrigin-Name: 9f839ac05a9f3cfe587d2ccdccd50dac41baedbe
2011-11-13 21:44:03 +00:00
drh e73c91496f Minor changes needed to restore full branch test coverage.
FossilOrigin-Name: bc10a753579b65ba4604867204b7b3d8383f3ac7
2011-11-09 16:12:24 +00:00
drh e5c40b18e3 Update the API documentation for the new pcache2 interface. Change the
order of parameters on the xCreate method of pcache2.

FossilOrigin-Name: 4da7095683ec821414e255419d63a24dbd9d726d
2011-11-09 00:06:05 +00:00
dan 22e21ff4fc Experimental change to the pcache interface to allow page buffers to be allocated separately from their associated container structures.
FossilOrigin-Name: c275c9d323cb1dccb031b199d413ac3a0b244fea
2011-11-08 20:08:44 +00:00
dan b5126dde0d Remove the SQLITE_PAGECACHE_BLOCKALLOC compilation option.
FossilOrigin-Name: 4eb4689834b538b9eeec5a5803528260e1aff78d
2011-09-22 14:56:31 +00:00
drh 8115d5feaa Simplifications to the SQLITE_PAGECACHE_BLOCKALLOC logic. Reduce the number
of difficult-to-reach branches.

FossilOrigin-Name: d5d835fe8352cb2009133246d4ed1cd310803f75
2011-08-23 23:41:40 +00:00
drh 1b53d7d75a Ifdef out routines in pcache1.c that are used only
when SQLITE_PAGECACHE_BLOCKALLOC is defined.

FossilOrigin-Name: 0da292da3bc867a5c6e29384f325581ea06bbd20
2011-08-23 13:27:48 +00:00
dan d2925706a2 Experimental change: If SQLITE_PAGECACHE_BLOCKALLOC is defined, instead of allocating pages one at a time, allocate blocks of between 15 and 63 pages in a single allocation.
FossilOrigin-Name: 63597097eedf80080fab0c1978cfd66ecaaa79fa
2011-08-19 18:15:00 +00:00
dan 9dde7cbbad Fix a line in pcache1.c where a global data structure is accessed without using the GLOBAL() macro. This causes a subtle malfunction on test systems that use SQLITE_OMIT_WSD.
FossilOrigin-Name: b11b2e1f8ccadf78bebe2278f05a8e3d3e543328
2011-06-09 17:53:43 +00:00
drh 15ad92f2ae More mutexes around another sqlite3StatusAdd() call.
FossilOrigin-Name: e3b500fb5d93d98e6e1ddf6d494a841274d1b68d
2011-01-26 13:28:06 +00:00
drh 9bf3da8eab Add a mutex around an sqlite3StatusAdd() call to prevent the pagecount
overflow measurements from getting off in multithreaded applications.

FossilOrigin-Name: 3d8b298dc24fe13a3f390da41f79b8613a6f25a7
2011-01-26 13:24:40 +00:00
drh 25ca568251 Rename the PCache1.mxPinned field to n90pct (since it is 90% of nMax) in order
to distinguish it from PGroup.mxPinned.  Fix the computation of n90pct so that
it does not overflow adversely on excessively large cache sizes.

FossilOrigin-Name: c85202baac49b22a4be36b9733d44f01d83edb28
2011-01-26 00:07:03 +00:00
drh 1e4040a4b4 Fix new compiler warnings in pcache1.c that were introduced by the recent
performance enhancement patches of [e14649301138b684].

FossilOrigin-Name: c17703ec1e604934f8bd5b1f66f34b19d17a6d1f
2011-01-25 18:30:51 +00:00
drh 41692e9d7c Shave a few cycles so that performance is better than 3.7.4 in speed tests.
FossilOrigin-Name: e14649301138b6840e24a4bbd2cf5205c0f72409
2011-01-25 04:34:51 +00:00
drh 3a5676ce26 Comment improvements in pcache1.c. No changes to code.
FossilOrigin-Name: 9660a0a22547656cc3765b673d0cee9e1dd829ef
2011-01-19 21:58:56 +00:00
drh 40f9837ff6 Do not use SQLITE_MUTEX_STATIC_MEM2 since it has been reused as STATIC_OPEN.
Instead, create a new static mutex STATIC_PMEM which is an alias for the
unused STATIC_LRU2.

FossilOrigin-Name: f1cf02efcb3a871fef49f8b5f41bcf07622a6d29
2011-01-18 15:17:57 +00:00
drh 9f8cf9da27 Here is a completely new implementation of the mutex-free-pcache. This
one uses a common code base and automatically selects whether or not to 
use mutexes depending on compile-time and start-time options.

FossilOrigin-Name: d094a1bfb7569a52b637fe9ba5d3fa6ce5ea6d94
2011-01-17 21:32:24 +00:00
drh 94e7bd55bd Fix comments, including some documentation comments, in the page cache
logic.  No code changes.

FossilOrigin-Name: c80e9c1a0dc0e501b209874e147e1cb1348cb4a4
2011-01-14 15:17:55 +00:00
dan b51d2fa88d Further tests and changes to make the r-tree module more robust.
FossilOrigin-Name: 7ff3574b9c581b5e1f2b6f98028106c638e59bb7
2010-09-22 19:06:02 +00:00
shaneh bd2aaf9ab1 Fix some compiler warnings under MSVC.
FossilOrigin-Name: afdc82a99eba260aed8ae2cca4bcec629f384098
2010-09-01 02:38:21 +00:00
drh 50d1b5f363 Remove unnecessary code from malloc.c. Enhance pcache1.c so that is tries
to reuse existing pages, rather than create new pages, when SQLite is under
memory pressure.  "Memory pressure" means that SQLITE_CONFIG_PAGECACHE memory
is nearly exhausted or sqlite3_soft_heap_limit() has been reached.

FossilOrigin-Name: 51049479a8577e03cc353f71f6e13a10c8323d91
2010-08-27 12:21:06 +00:00
drh 9d13f116af Comment enhancements and typo fixes in pcache1.c.
FossilOrigin-Name: c2dc39c0c4673a39f5fe6e643acb3bcf4ca22265
2010-08-24 18:06:35 +00:00
drh c8f503a8d3 Fix the sqlite3_release_memory() interface so that it does not attempt
to free SQLITE_CONFIG_PAGECACHE memory.

FossilOrigin-Name: 0426cd62d5ef2bd09570835c78f8fc3bcb7cdd49
2010-08-20 09:14:13 +00:00
drh 29dfbe3b70 Record the pcache allocation size statistics even for pcache overflow
allocations.  Adjust the wording on one of the stat output lines in
the shell.

FossilOrigin-Name: f9adf66ad575abbb63736caef27bd3c619e516a6
2010-07-28 17:01:24 +00:00
dan 558814f8c6 Add some 'const' markers to static data that is really constant.
FossilOrigin-Name: e7073e23b80e7cae0c76d42f014ee9b2d40a8f2f
2010-06-02 05:53:53 +00:00
drh 107b56e86d Add assert()s to mem2.c (activated by SQLITE_MEMDEBUG) which verify that
memory alloctions that might have come from lookaside are always freed
using a lookaside-aware free routine.

FossilOrigin-Name: c2af2164cf7b279ebb3e08201561348be6e765df
2010-03-12 16:32:53 +00:00
drh 98829a65cd Avoid unnecessary page cache allocations when move a page while autovacuuming
an in-memory database, since the allocation might fail making it impossible to
rollback the transaction.

FossilOrigin-Name: 9a429349ccc2fa9acd28365a86578f602e87dafb
2009-11-20 13:18:14 +00:00
drh c81c11f62c Remove the obsolete "$Id:$" RCS identifier strings from the source code.
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
shane 7c7c311da5 More documentation and comment updates for sqlite3_initialize/shutdown interface changes to handle failures.
FossilOrigin-Name: 32509bc7339cd6a46cea4c243e3418546860cb2d
2009-08-17 15:31:23 +00:00
drh f18a61dd59 Code simplifications in support of structural testing. (CVS 6900)
FossilOrigin-Name: fb1b955dda5105025ef199880afa871e44331d65
2009-07-17 11:44:07 +00:00
drh e64ca7ba11 Code simplifications and comment improvements in support of structural
coverage testing. (CVS 6899)

FossilOrigin-Name: 945251798144110787b197f9eb552a2dd4a25cb4
2009-07-16 18:21:17 +00:00
shane 75ac1de0ad Fix compiler warnings with MSVC build. (CVS 6741)
FossilOrigin-Name: 0bd84e7387802c58c820369ff27ef54adbdf2e96
2009-06-09 18:58:52 +00:00
drh 69e931e7bb Change the pcache1.c implementation so that the "header" occurs at the end
of page buffer, not at the beginning.  This insures that the 20 bytes
immediately following the page buffer are mapped if a read of the page
buffer overruns due to a malformed cell. (CVS 6711)

FossilOrigin-Name: c54de1f54080de7e134d7b562498abb5337a0a46
2009-06-03 21:04:35 +00:00
drh dd1f4321ab Add an assert() to pcache1.c to double-check that page cache buffer memory
is never allocated if pcache1 is not enabled.  Ticket #3872 (CVS 6670)

FossilOrigin-Name: 93369d91abe10975507ea9302c145e3ddd0c2c76
2009-05-22 11:12:23 +00:00
drh f4622dc176 Additional changes to pcache1 to prevent the page buffer memory from being
configured if pcache1 is not enabled.  Ticket #3872. (CVS 6669)

FossilOrigin-Name: 5153ad19daf0f3b0334b2a06655142899203abbf
2009-05-22 11:10:24 +00:00
drh b093719a17 Make sure sqlite3_shutdown() completely disables the default pager cache
mechanism in pcache1.c.  Ticket #3872.  Also fix some comments associated
with configuring the page cache. (CVS 6668)

FossilOrigin-Name: 6240992cef5cb867d7a638f1906d05aa8efd0652
2009-05-22 10:53:29 +00:00
danielk1977 ea24ac4b23 Correctly update the cache page-count when discarding pages in the xTruncate() method of the default pcache implementation. Otherwise the effective configured size of the cache shrinks each time xTruncate() is called. Fix for #3844. (CVS 6619)
FossilOrigin-Name: 88211ceeec01ee0d3e55231512be26dd672db099
2009-05-08 06:52:47 +00:00