dan
0f297b6e50
Improve testing of the wal.c changes on this branch.
...
FossilOrigin-Name: 63483e22c775183e01924b5cb3d0f3655b63c3cdd06faf26cacd4d0913c0055c
2018-12-26 20:42:32 +00:00
dan
2d111c8bbb
Merge latest trunk changes with this branch.
...
FossilOrigin-Name: 404f9d99d325ddf82fde6d957860d30b2fb67f232c0878a3cf6df9596541f16e
2018-12-26 19:10:59 +00:00
dan
665f3d209b
Enhance the wal2 header comment in wal.c to explain how the wal-hook is
...
invoked in wal2 mode.
FossilOrigin-Name: 118aa7e32a94ad971a955ab60db5bfc5b6241f93734a41ba83ab72ea71bc9aaa
2018-12-22 15:50:00 +00:00
dan
25117ddbfc
Add the "mutexfree-shmlock" patch to this branch.
...
FossilOrigin-Name: c3191fc8fcb0775f87f55cb8124e0c36caa54993c2a5fe770d437e4f6ee72d77
2018-12-18 19:46:50 +00:00
dan
0ba73a6e4d
Merge the wal2 feature into this branch.
...
FossilOrigin-Name: a2c618c0a45e1b1d271a4a981ee1e3b368dfcce94eda5c2d7d08f794784046d9
2018-12-18 18:01:17 +00:00
dan
8348abc3a2
Add wal2 related tests to this branch.
...
FossilOrigin-Name: 5645822039b9f36aeb986645106cac2d95b09964689deb767cadaa6ea1d1867f
2018-12-17 18:26:48 +00:00
dan
6d537ca2d8
Merge latest wal2 changes into this branch.
...
FossilOrigin-Name: 06bb80eeb84f57b1e8109a35f5b14992a2e23f2bf5a8921fa29087f96cb44d10
2018-12-15 20:59:14 +00:00
dan
93543215e0
Further test cases for wal2 mode.
...
FossilOrigin-Name: 9cb5f8dab685f5ea36ad142cfa588dee82e87f3a89e8dcf84e0ee124bb29bc7f
2018-12-15 20:20:13 +00:00
dan
e698c1f79e
Add further tests for wal2 mode.
...
FossilOrigin-Name: 54e628f902a5508badc8941ceda1bec12fe8f58969c91c670a37888ef2681880
2018-12-14 19:53:39 +00:00
dan
597bf19266
Add tests cases for recovery in wal2 mode.
...
FossilOrigin-Name: 34f56f8a4239781071edf6317723d0a7333249551c2c1ce7ed39fc116d53d780
2018-12-13 16:26:43 +00:00
dan
eeb778d506
Add new test file wal2big.test.
...
FossilOrigin-Name: e3e50bcdab8c91e003942d84430b3e580e034141236d19dda0e8af4ecf0e085b
2018-12-12 20:39:38 +00:00
dan
f17e510ee5
Change the way wal2 locks work to ensure a reader only ever has to lock a
...
single slot.
FossilOrigin-Name: 18b2c23ac53d985ccc5798ea2d92fb75644b857c373fb490e0d04d5d0194a3d5
2018-12-11 17:56:23 +00:00
dan
c967a11569
Rework the SQLITE_MUTEXFREE_SHMLOCK code to reduce contention.
...
FossilOrigin-Name: d9157dd176a2d18c6e02a2a0c7e16cef2da43bf44be9765e0363f34aebad23e9
2018-12-10 15:24:29 +00:00
dan
b0b27ab5c6
Add multi-threaded performance test program "tserver" to this branch. Fix bugs
...
in the begin-concurrent/wal2 integration revealed by the same.
FossilOrigin-Name: 7bd3b35661d7d0e51113b9e4b15a0ab7f8e26edeafb43941ef5b44bb94df5109
2018-12-07 20:25:14 +00:00
dan
079ae546fe
Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode
...
(wal instead of wal2) under some circumstances.
FossilOrigin-Name: bf309107dfc4d2abd68b9339c68aeaaffd278096bb2a5912e4a0b0c124fd6345
2018-12-05 17:20:47 +00:00
dan
e05f922583
Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode
...
(wal instead of wal2) under some circumstances.
FossilOrigin-Name: 1d8d4f689653ce80157740e339f7f1b42479bf90d82b176d8202d0a49f428398
2018-12-05 17:14:03 +00:00
dan
5330a3c6c9
Fixes for snapshots API on this branch. Also ensure that the snapshots API
...
cannot be used with wal2 mode databases (for now anyhow).
FossilOrigin-Name: d8c2d55fa4ec95c6506201edcd1cb2ef108a233bd87a6154f3593909977f7d3f
2018-12-05 16:45:38 +00:00
dan
6456b3929c
Fixes for snapshots API on this branch. Also ensure that the snapshots API
...
cannot be used with wal2 mode databases (for now anyhow).
FossilOrigin-Name: 19c61ab79458936ff4dfca46cf4d1fb1ab16d7bdb5024f502eb4339ec4eef32c
2018-12-05 16:31:02 +00:00
drh
a693b000df
Merge enhancements from trunk, especially the sqlite3_normalized_sql()
...
enhancement.
FossilOrigin-Name: 342c9538d9c6a993ac0acaa6f74ad58886bcef7bb53783d053f9b24c131aec5d
2018-12-05 13:49:23 +00:00
dan
7a13e692be
First attempt at making features work together. Only the most minimal testing
...
so far.
FossilOrigin-Name: fd707001f0afb1cf32cfeeda3ec7b5622eb49ddedf8fec1a7aa4c8841c77c37a
2018-12-04 19:41:07 +00:00
dan
50232dd821
Fix a problem with SQLITE_ENABLE_EXPENSIVE_ASSERT builds on this branch.
...
FossilOrigin-Name: ddb4a6fbf8619db058b5eb8fcd687084ed4b65a6f69810357e324158257a911f
2018-12-04 13:51:43 +00:00
dan
4d8517e500
Merge the wal2 and begin-concurrent code. Both features work, but not at the
...
same time.
FossilOrigin-Name: b7281a1caa574870a071bea3e96b1d8210c28c17f9094449b3ce1a42b311e6a1
2018-12-03 20:49:34 +00:00
dan
834c48c279
Minor change to wal.c on this branch to make it more similar to trunk.
...
FossilOrigin-Name: 6a7af3ead5949c461430c1fa92798dc2bbbc58c8cd504005c5afa38993f0be82
2018-12-03 20:38:15 +00:00
dan
8eed108df1
Sync this branch with the latest trunk.
...
FossilOrigin-Name: 7a44fa5a350a3f19b8e9f5196d22535788885f8c0e849572202bf64a055ddc2d
2018-12-01 20:14:06 +00:00
dan
9b5c67f784
Merge the mutex-free PRNG change into this branch.
...
FossilOrigin-Name: 81e626f4a44be75425cf916ec61b6b36df0907ebac4adbf6786f87ad4f3a0674
2018-11-30 16:26:39 +00:00
dan
2dd93c8838
Merge latest trunk into this branch.
...
FossilOrigin-Name: 86750c927cb5ba36acad33d5279629699c42b598e70fdc4887b40a1a16771ff6
2018-09-28 20:58:10 +00:00
drh
8741d0ddb0
Fix a harmless compiler warning that arose from the ENABLE_CURSOR_HINTS
...
fix of check-in [0af18674ca5b34e67e]
FossilOrigin-Name: f578e62ae6f6cc78d8281adab9fa93f3f58711879c2860bbe19f291d257dc0af
2018-09-12 00:21:11 +00:00
dan
8d4b7a3fa8
If a call to sqlite3_snapshot_open() fails because the requested snapshot no
...
longer exists, return SQLITE_ERROR_SNAPSHOT instead of SQLITE_BUSY_SNAPSHOT.
FossilOrigin-Name: e07923128bb164efbafde29d49175b61f2ef44b2dfac5ae4ed61937945dfcf4c
2018-08-31 19:00:16 +00:00
drh
876c7ea3fa
Try to identify the places in WAL code where thread-safety depends on the
...
underlying architecture supporting atomic load and store of aligned 32-bit
values.
FossilOrigin-Name: 47d44be4a68d377d0049a12b2587dbbcc0870b469473e1098f7c0358fe8c7532
2018-08-30 20:28:18 +00:00
dan
f5778751f7
Fix a problem causing spurious SQLITE_CORRUPT errors when using the snapshot
...
API to read from old database snapshots.
FossilOrigin-Name: 535155be584ad8c1836e6b1c62de836d9872056d39608c995221c928cb5b365d
2018-08-28 11:23:52 +00:00
dan
588032fe33
Allow sqlite3_snapshot_open() to be called to change the snapshot after a read
...
transaction is already open on database.
FossilOrigin-Name: 41399169954f9bef53c3fa89879f39823b80bd127f76cf60abbe24217878a571
2018-08-15 14:03:26 +00:00
mistachkin
6389a7b0ac
Minor style improvements.
...
FossilOrigin-Name: 60bbca2b9a591800cd8e7b374e62d75b1df0e8fd2d2f71f9b4d5fd044da78be0
2018-08-08 20:46:35 +00:00
dan
fa3d4c19a9
Allow sqlite3_snapshot_open() to be called to change the snapshot after a
...
read transaction is already open on database.
FossilOrigin-Name: 051ac0152048ef52723196c26ca5f2629dafb782aec1c66fc30531bf54335043
2018-08-06 17:12:36 +00:00
dan
eb30704cc9
Merge latest trunk changes into this branch.
...
FossilOrigin-Name: e9a3e8642e7acc8e63b35662ffae3a5a0da8d4f1ecefcb1db3110be19cbdab2b
2018-07-10 15:45:54 +00:00
drh
4ece2f2657
Slightly smaller and faster code by encapsulating wal-index hash table
...
location information in a separate WalHashLoc object rather than passing
around the various elements as separate variables.
FossilOrigin-Name: 538a365b7a32ab7fa84f59d7556242cfb59b76d287b6417eb3a823197a354e8e
2018-06-09 16:49:00 +00:00
drh
3a5fc00808
Merge all recent enhancements from trunk.
...
FossilOrigin-Name: b0c2f760a637ee973f4dcc27308eec44950e6d0a9c5ab5c828c1210c1f868efa
2018-03-20 13:52:42 +00:00
drh
49cc2f3b9c
Fix walIteratorInit() so that it always leaves the iterator as a NULL pointer
...
if an OOM occurs. This fixes an assertion fault introduced by
check-in [044b0b65e716bff].
FossilOrigin-Name: e5ce256aa1f7a8ae995b79c9da895827bee5d8d0724fc15413ff203dc9e2602d
2018-03-05 23:23:28 +00:00
dan
908803f5e0
Update this branch with recent checkpoint related changes from trunk.
...
FossilOrigin-Name: fb6b7938601505186c0b1f0df6c45630039027f85ff394d290bc2c86b16a3a07
2018-03-02 17:59:37 +00:00
dan
699bd8121e
Merge latest trunk changes into this branch.
...
FossilOrigin-Name: 36801effa9ec67b551f58972e21794466420f10cd0420701fcd87695e6cd11ee
2018-03-02 17:40:23 +00:00
dan
f0cb61d6c2
In a checkpoint, figure out if it is possible to checkpoint any frames at all
...
before creating the wal-iterator.
FossilOrigin-Name: 044b0b65e716bffeddedbd1b0360c4c332f6d2359167c1d327a5ff96539474cb
2018-03-02 16:52:47 +00:00
dan
302ce47519
Optimize the obscure case of running a checkpoint against a very large wal
...
file for which a large percentage of the frames have already been checkpointed.
FossilOrigin-Name: 0f5057dffa9be1bccab04894709d25bf1f066c4b1aef50d67ee635d46d300a4d
2018-03-02 15:42:20 +00:00
drh
c0ec2f7762
Remove an unreachable branch in the walIndexPage() logic.
...
FossilOrigin-Name: 4e61a9731f5949dcf05c541106b56be16add04a7730613481fc8519d3e4f493b
2018-02-21 01:48:22 +00:00
drh
8d3e15eec4
Small performance improvement in sqltie3WalFindFrame().
...
FossilOrigin-Name: 52013cad0e6ce2d694f25e2984a76d438cef724f0e07c8bb9d3dce8a3caf4350
2018-02-21 01:05:37 +00:00
drh
2e178d7321
Make the walIndexPage() routine about 3x faster by factoring out the seldom
...
used reallocation logic into a separate subroutine.
FossilOrigin-Name: e2b107141cd97bd4ab240748a9ce43fc2ec950ea74610697a4a7a3d7a6441e6b
2018-02-20 22:20:57 +00:00
dan
05573e41a8
Lock the wal file for all snapshot transactions, even if they would not
...
otherwise require this, preventing checkpointers and writers from wrapping the
wal file. This means that if one connection has an open snapshot transaction
it is guaranteed that a second connection can open a transaction on the same
snapshot.
FossilOrigin-Name: b81a31495bd27c1d96f7df653da3502054240cb5acf66b860da7f0f9b422a524
2017-11-28 13:39:41 +00:00
drh
8b17ac1919
Improvement to a comment. No changes to code.
...
FossilOrigin-Name: 486949fc03706e0056439b52ce60931ea4ce0a65e391da7f6287fe13862de251
2017-11-14 03:42:52 +00:00
drh
2e9b0923ac
Remove some branches in walTryBeginRead() that were
...
added by check-in [ce5d13c2de] but became unreachable with the addition
of logic in check-in [18b26843] that enabled read-only clients to parse
the WAL file into a heap-memory WAL-index, thus guaranteeing that the
WAL-index header is always available.
FossilOrigin-Name: 9c6b38b9a96c11bdf9db4ea025720a4f49dcb723fa2e2776edc8453bce85c7e3
2017-11-13 05:51:37 +00:00
drh
c05a063c68
In wal.c: improved comments, new assert() and testcase() macros, and
...
replace some magic numbers with appropriate symbolic constants.
FossilOrigin-Name: 13ec8a77a47aa471af587459f4094da0d06674c5960f0d34777bcb3d38bc413b
2017-11-11 20:11:01 +00:00
drh
870655bb9e
Further comment improvements in wal.c. No code changes.
...
FossilOrigin-Name: 346388007de585083dc67ad865b91db7c7d7b78c10a06f8bb7c48767c326c47e
2017-11-11 13:30:44 +00:00
drh
85bc6df2f1
Improved comments and variable names in the read-only WAL logic.
...
FossilOrigin-Name: d3c25740eec9a2a41c29e6e488fcf6587c1fb821147a442c29439b25a92154a5
2017-11-10 20:00:50 +00:00