drh
c74c333408
Add WALTRACE() macros to help with debugging and analysis.
...
FossilOrigin-Name: 765c33181a7b9d99b452ce750d69f217b3c81a5d
2010-05-31 12:15:19 +00:00
dan
1beb939db1
Another minor fix to checkpoint on the WAL branch.
...
FossilOrigin-Name: 853f1e3f7720af2723b552bdf086bb106e6e93fe
2010-05-31 12:02:30 +00:00
dan
0cc5b2b6c6
Fix a bug in checkpoint introduced by [181ceb32ea].
...
FossilOrigin-Name: b499dbc88a67b4200b5f527be88be4ac90f7043f
2010-05-31 11:39:53 +00:00
dan
d54ff60bf4
Fix some asserts and other things in the new WAL branch.
...
FossilOrigin-Name: 181ceb32ead7f540a7c6437f53a5b0f3e78162db
2010-05-31 11:16:30 +00:00
drh
c99597ca10
WAL runs but quickly deadlocks.
...
FossilOrigin-Name: ace58acbf1fad13d2be96cafebc3a22875098d03
2010-05-31 01:41:15 +00:00
drh
73b64e4d2e
Initial code for incremental checkpoint in WAL mode. This check-in compiles
...
on unix and runs as long as you do not engage WAL mode. WAL mode crashes and
burns. Consider this check-in a baseline implementation for getting the new
capability up and running.
FossilOrigin-Name: ef3ba7a17ff90674d702e5694b9e792851ab6998
2010-05-30 19:55:15 +00:00
drh
bab7b91e99
Make sure the wal-index mapping is always large enough to cover the entire
...
active area of the wal-index.
FossilOrigin-Name: 42705babba0e9d2ef078845854bebbd168f23366
2010-05-26 17:31:58 +00:00
drh
026ac28b28
Change the semantics of xShmGet() such that it will never increase the size
...
of shared memory. xShmSize() must be used to grow the size of shared memory.
A shared memory segment size cannot be shrunk (except by dropping it).
FossilOrigin-Name: 72de00731245277b2209103ec0a76e3d4f56530e
2010-05-26 15:06:38 +00:00
drh
51b21b169a
Updated header comments in wal.c. No functional code changes.
...
FossilOrigin-Name: 687632a6b3a0aeb006c1eda5c27d5489f08c230e
2010-05-25 15:53:31 +00:00
drh
1b78eaf0ba
Update header comments in wal.c to correctly describe the WAL file format.
...
Update the locking region offsets in os_unix.c and os_win.c and add assert()
statement to verify that the locking region offsets are correct.
FossilOrigin-Name: 40030c0739f821ea8ee188c28c579507f10448bc
2010-05-25 13:40:03 +00:00
dan
ca6b5baba4
If a writer exits unexpectedly in the middle of a transaction, have the following writer remove any wal-index hash-table entries left by the interrupted transaction.
...
FossilOrigin-Name: ed77556adcdf7011b95b9969b360269fb2ebe4e5
2010-05-25 10:50:56 +00:00
dan
71d8991932
Change the checksum used in WAL files so that each frames checksum depends on the content of the WAL header and all frame headers and content up to and including the frame to which the checksum is attached.
...
FossilOrigin-Name: 8a53f12c83a107684b99f4a9de371b5ea3ca810a
2010-05-24 13:57:42 +00:00
drh
c81791573a
Make sure a WAL frame of all zeros is detected as an invalid frame.
...
FossilOrigin-Name: 02d99ad4b51065c67cc7689916130774be1c4c87
2010-05-24 13:28:36 +00:00
dan
b8fd6c2fe6
Change the WAL file format to support two kinds of checksums - one that is fast to calculate on little-endian architectures and another that is fast on big-endian architectures. A flag in the wal-header indicates which the file uses.
...
FossilOrigin-Name: 65ba804dd1d31d1eef6ae3f40a3ade344a410b84
2010-05-24 10:39:36 +00:00
drh
4fa95bfc39
Add several EXPENSIVE_ASSERT code blocks to validate the wal-index hash table.
...
Fix the bugs that these code blocks fine. Rename walClearHash() to
walCleanupHash() and simplify its interface.
FossilOrigin-Name: 7aade899e55f4565f02d301e1e83fb0bac2ea500
2010-05-22 00:55:39 +00:00
dan
3b1eca0ade
Fix another bug in walClearHash().
...
FossilOrigin-Name: 40f80ffe70ca691dfa146f6d84956ed0784fc63d
2010-05-21 19:15:04 +00:00
dan
8067adbc3f
Correct an off-by-one bug in the previous commit.
...
FossilOrigin-Name: 75a1130d86faf18e73cb46cda5d029f1e913e4e6
2010-05-21 16:23:43 +00:00
dan
6f1501481f
Remove entries from wal-index hash tables when a rollback or savepoint rollback occurs.
...
FossilOrigin-Name: 36795c2b23a78978528cace193e386138adacd41
2010-05-21 15:31:56 +00:00
drh
f0b20f8801
Fix the wal-index header read routine so that it correctly detects a zero
...
header as being malformed and in need of a wal-index rebuild.
FossilOrigin-Name: 1a4eb3a3efe86c7caff4d9a5894953bce378f841
2010-05-21 13:16:18 +00:00
drh
286a288493
Add a new xShmBarrier method to the VFS - a shared-memory fence operation.
...
Implement the same in both unix and win32. Use it to make the WAL subsystem
more robust.
FossilOrigin-Name: 1bd011c9fed5ef29fb616b4d0a52df3b82221b1f
2010-05-20 23:51:06 +00:00
drh
7e263728f2
Make use of the extra information in the WAL header and frame header to
...
enhance robustness.
FossilOrigin-Name: 9580ecb7e3beb1949a71784a3dcd1823a88e4a9d
2010-05-20 21:21:09 +00:00
drh
23ea97b641
Convert the wal-header and frame-header to 24 bytes. Extra information in
...
both headers is designed to enhance robustness after crashes, though the
extra information is currently unused. This is a snapshot of a work in
progress.
FossilOrigin-Name: 669706431f186f92fdc0856a6206419a1e843f46
2010-05-20 16:45:58 +00:00
drh
4c1cb6ab05
Fix a bug in the new checkpoint computation. Also update the checkpoint
...
algorithm in the test scripts to align with the new implementation.
FossilOrigin-Name: 8b6056f2ee596f31b157a792fac05d11f7cb63bb
2010-05-19 19:09:37 +00:00
drh
584c754d65
Revise the checksumming algorithm in wal.c. More variable refactoring.
...
FossilOrigin-Name: 542b90eba6440a0bccef329788fd17a2d3fbeee6
2010-05-19 18:08:10 +00:00
drh
6e81096fa2
Refactoring some variable names in wal.c.
...
FossilOrigin-Name: 1d201ff51f7c5ecdf71a91ed25204b7130894282
2010-05-19 17:49:50 +00:00
drh
027a128a78
Add a large comment to wal.c describing the WAL and wal-index file formats.
...
FossilOrigin-Name: a71a22b52f4570e934063553a81b39268127dc44
2010-05-19 01:53:53 +00:00
drh
29d4dbefaf
Update the wal-index hash format so that hash-table space is reused following
...
a rollback, thus preventing hash table overflows. Add assert()s to verify
that hash tables do not overfill. Further refactoring of the wal-index code.
FossilOrigin-Name: ada9a8c7b69c5dd2d66bbf62b61181651e6d2142
2010-05-18 23:29:52 +00:00
drh
a2a42013d2
Refactoring of the WalIterator implementation.
...
FossilOrigin-Name: b5b60fdcc5dcf41f2c79912075ac241f7ce220d6
2010-05-18 18:01:08 +00:00
drh
5939f44375
Mark the shared-memory in the WAL implementation as volatile.
...
FossilOrigin-Name: 0a6787908e989bd5e6af25acbdc59ebc8fa61d6d
2010-05-18 13:27:12 +00:00
drh
e730fec883
Comment clarifications in wal.c.
...
FossilOrigin-Name: a029be10172e2e6a2ef4e3eb2ea1bd0ca85b16ed
2010-05-18 12:56:50 +00:00
drh
69c4696784
Remove an unreachable test from wal.c.
...
FossilOrigin-Name: 7162c45673d1068d1fda55a70207a3cd77575502
2010-05-17 20:16:50 +00:00
drh
5cccc940cc
Allow sqlite3WalCheckpoint() to be called even if the WAL is in the
...
SQLITE_SHM_READ state, as sometimes happens after an error.
FossilOrigin-Name: 175b296f9b9680f605537f52a8a53944deaa5391
2010-05-13 15:44:00 +00:00
drh
5500a1f1e6
Make sure xShmGet is never called while already holding the shared-memory
...
segment.
FossilOrigin-Name: 92ebdbc5f64ac63796ff56c1e1aec3b95c6bdd20
2010-05-13 09:11:31 +00:00
dan
bd50ddeb42
Fix for a segfault that can follow a malloc failure.
...
FossilOrigin-Name: 3cab9022457ce50f82c5822d8ba6c04a3a85cb6a
2010-05-13 07:08:53 +00:00
drh
686138fe88
A couple simple fixes to get wal.test mostly working.
...
FossilOrigin-Name: c74458127468f30b16715594c8d68e9d3c05d292
2010-05-12 18:10:52 +00:00
drh
d9e5c4f6ed
Refactoring the VFS-SHM methods used by WAL. This version compiles and
...
runs non-WAL test cases but crashes and burns on wal.test.
FossilOrigin-Name: 2b00152c1ac0b3735aa6cfab61259ff04d81c701
2010-05-12 18:01:39 +00:00
dan
ed36020daf
Remove a branch made redundant by the earlier exclusive-mode changes.
...
FossilOrigin-Name: c501b2ede6aad123bef0aa7ce8b356a134eb6d26
2010-05-12 06:54:31 +00:00
dan
5543759b1b
Changes so that WAL and exclusive-locking mode work together.
...
FossilOrigin-Name: 71e7b1cf9f4cd02a2a9bc8a3e58acd7a7e3c7e60
2010-05-11 12:19:26 +00:00
dan
bb23aff3df
Modify the format of the wal-index to use a hash table to index log file segments.
...
FossilOrigin-Name: 40b0a6357b160e04326ab176955a68a1cf3f8b7c
2010-05-10 14:46:09 +00:00
drh
2905f053ef
When running a checkpoint while in locking_mode=EXCLUSIVE, be sure to move
...
the wal-index lock to UNLOCK from READ prior to promoting to CHECKPOINT.
FossilOrigin-Name: be114bdf9bb98c7287f8cb54340c630b0c412e9d
2010-05-07 20:34:17 +00:00
drh
e874d9ed79
Change the xShmOpen() method of the VFS to take the database file name as
...
its argument, not the WAL file name. Also fix some unrelated compiler
warnings.
FossilOrigin-Name: a65c2939267ef6acec4e355a207f98f217e263d6
2010-05-07 20:02:23 +00:00
dan
65f2ac58b6
Test another IO error case in wal.c.
...
FossilOrigin-Name: 8b3b5ab8fa61ca4ef22c98abaab397707ee74ea3
2010-05-07 09:43:50 +00:00
dan
998ad21271
Fix a problem with checkpointing large log files created by an external process.
...
FossilOrigin-Name: 8f94bde568be52ecc5a976b7a09776ea7b4bb511
2010-05-07 06:59:08 +00:00
dan
846705021d
Since walIndexTryHdr() can no longer encounter any error conditions, change tehe function signature so that it does not return an error code. This removes unreachable branches from other code.
...
FossilOrigin-Name: 061a282cc0bf76541ab1f99b351a49d489ff93ec
2010-05-07 05:46:23 +00:00
dan
65be0d8cce
Instead of transitioning to RECOVER state from CHECKPOINT when a recovery is required, perform the recovery while holding the CHECKPOINT lock.
...
FossilOrigin-Name: bb0b6021e721c2e4f1533ab18381604c6b7b31d5
2010-05-06 18:48:27 +00:00
dan
5273f58f37
If recovery is run before a checkpoint, change back to a CHECKPOINT lock before performing the actual checkpoint.
...
FossilOrigin-Name: dc98ee169cfa43c89f1b36fb1150d4788710fda3
2010-05-06 18:27:19 +00:00
dan
576bc3294d
Only pass -1 as the size parameter to xShmGet when the caller does not care what size mapping is returned. Only call xShmSize when the underlying allocation (not the mapping) should be resized.
...
FossilOrigin-Name: 637f51ddf9e4a57e1f171b6d2c6c93152074267e
2010-05-06 18:04:50 +00:00
dan
b7d53f54ae
Fix a bug whereby an old snapshot could be checkpointed (and subsequent transactions discarded) if the last connection to disconnect from a WAL database happended to be holding an out-of-date wal-index header.
...
FossilOrigin-Name: d0c0034b0baa83046c1d6b94c886f7039e4e06f5
2010-05-06 17:28:08 +00:00
dan
d41a29a653
Further coverage tests.
...
FossilOrigin-Name: 98a9713e0030a36ea99a18a12a2e7685c6db72b3
2010-05-06 15:56:28 +00:00
dan
a861469a07
Add tests to cover a couple of branches in wal.c.
...
FossilOrigin-Name: 429f437fb776fc974a6adf791b729e25bea82fef
2010-05-06 14:42:34 +00:00