1
0
Fork 0

574 Commits (dcc23a79689ab1094a1a270af4c605e7630582d1)

Author SHA1 Message Date
Philip O'Toole e497ee75f9
Fix typo 1 year ago
Philip O'Toole f06e547ab5 Less disk IO during load 1 year ago
Philip O'Toole f5517c0f66 Correct comment 1 year ago
Philip O'Toole 9bdf048975 Better naming of temp backup file 1 year ago
Philip O'Toole b5cb889e1e Auto-restore doesn't require ready() check 1 year ago
Philip O'Toole b7633143cc Restore from file uses chunking 1 year ago
Philip O'Toole 5ca5ce342e Support internode LoadChunk() 1 year ago
Philip O'Toole 1c8e52c5f7 Test_SingleNodeLoadBinaryFromReader passes
That's good, but much more extensive testing needed, and this needs to
replace the existing load path -- and then we move to 8.0.
1 year ago
Philip O'Toole 93a752ae0e Better variable names 1 year ago
Philip O'Toole 1c6f691ff8 Integrate chunking - WIP
I need more sophisticated dechunker management.
1 year ago
Philip O'Toole 13d47b24d8 Store can load from an io.Reader
This may be helpful for chunked-loads.
1 year ago
Philip O'Toole a40c43725f More logic reversal 1 year ago
Philip O'Toole f81aad8fd3 Revert logic for clarity 1 year ago
Philip O'Toole 21dff4a68c Remove on-disk-startup control
With the move to WAL and "synchronous mode" to OFF, on-disk startup
times are very close to in-memory. There is no need for this control
anymore and it complicates the start-up code.
1 year ago
Philip O'Toole e845e0c243 Fix remaining expression test cases 1 year ago
Philip O'Toole f7ced46377 Count number of DB stats errors 1 year ago
Philip O'Toole 36fa7f2afd Detect DB stats error and log 1 year ago
Philip O'Toole 7ce2c6b99a Fix comment 1 year ago
Philip O'Toole 7432bceca3 Since we're passed a ReadCloser, close it 1 year ago
Philip O'Toole 4342650c33 Fix RecoverNode 1 year ago
Philip O'Toole ad73779285 Periodically record actually applied index
This ensures the system doesn't apply uncommitted log entries to the
FSM, if it runs the in-memory startup. There have been no reports of
this in the field -- it is an edge case -- but this removes any chance
of it.
1 year ago
Philip O'Toole abfe056b4c Remove any -wal and -shm files on shutdown
If in WAL mode, open-and-close again to remove the -wal file. This is not strictly necessary, since any on-disk database files will be removed when rqlite next starts, but it leaves the directory containing the database file in a cleaner state.
1 year ago
Philip O'Toole 6cd8d30749 Fix Store-level database-backup test 1 year ago
Philip O'Toole a6925414ef Better comments 1 year ago
Philip O'Toole b2f28d1181 Better WAL control 1 year ago
Philip O'Toole 2f7672d897 Enable WAL mode 1 year ago
Philip O'Toole 585f9c9c05 Use Snapshot decoder in Store 1 year ago
Philip O'Toole 58534d4815 Better name for V1 Snapshotter 1 year ago
Philip O'Toole c87931c45c Factor Snapshot creation into own module 1 year ago
Philip O'Toole 3f462eecfa Remove all on-disk SQLite files on startup 1 year ago
Philip O'Toole 7e1b8d12d7 Add full WAL support to DB layer 1 year ago
Philip O'Toole eed215c664
Only 1 Snapshot needs to be retained 1 year ago
Philip O'Toole b9253e6b41 Improve logging in Store 1 year ago
Philip O'Toole 4a7ac2850f rqlite doesn't (yet) support WAL mode SQLite data 1 year ago
Philip O'Toole 92bc513242 Move FSMSnapshot to own source file 1 year ago
Philip O'Toole e4a0d96f23 Further refactoring 1 year ago
Philip O'Toole 3dd37f8771 Move on-disk Store testing to distinct file 1 year ago
Philip O'Toole 6c7c32ab4e Remove racy test code 1 year ago
Philip O'Toole aed541b98e Poll nodes 1 year ago
Philip O'Toole 8a8e126061 Use some loops 1 year ago
Philip O'Toole ef42d28e36 Refactor and log more during test
https://ci.appveyor.com/project/otoolep/rqlite/builds/47107026 - this
looks racy, as the Leader had been detected, but the config not yet
applied. Leave for now and see if more info can be gathered. This may be
happening because WaitForLeader() has a fast path now.
1 year ago
Philip O'Toole 1b299b7e9b Tigher logic 1 year ago
Philip O'Toole 9faea33da7 Give time for new leader to be elected 1 year ago
Philip O'Toole 7badba4a7a Try fast paths 1 year ago
Philip O'Toole 76ba50ca86 Log last (if any) WaitForLeader error 1 year ago
Philip O'Toole 498cc39925 Fix Store unit tests 1 year ago
Philip O'Toole ef403cdcc6 Fix up WaitForLeader
Add dedicated error codes too.
1 year ago
Philip O'Toole 562b1de03b Multi-node testing of WaitForRemoval() 1 year ago
Philip O'Toole 94dbff6851 Unit test WaitForRemoval() on Store 1 year ago
Philip O'Toole c05e091cd1 Add WaitForRemoval 1 year ago
Philip O'Toole fb73b8e313 Add Contains() to Servers 1 year ago
Philip O'Toole c23d3e60b1 Reuse existing consistency level 1 year ago
Philip O'Toole ee01569f53 Request Freshness testing 1 year ago
Philip O'Toole 2186fa0c66 Merge branch 'master' of github.com:rqlite/rqlite 1 year ago
Philip O'Toole c40303b6ae Fix test error message 1 year ago
Philip O'Toole ddea64ebe0 Fix Store tests 1 year ago
Philip O'Toole 18b76ebd4f
go fmt 1 year ago
Philip O'Toole 2f8d4e95e0
Update store.go 1 year ago
Philip O'Toole 3058d3e9fc Fix transaction handling in db.Request() 1 year ago
Philip O'Toole eea101a1d5 Fix duplicate import 1 year ago
Philip O'Toole c995986630 Add parameter tests 1 year ago
Philip O'Toole 061ba8eed5 Add Request Tx unit test 1 year ago
Philip O'Toole 2261cb30c9 First unit test of Store.Request() 1 year ago
Philip O'Toole f7cdbdea68 Handle Command_COMMAND_TYPE_EXECUTE_QUERY in Store
Works! Store.Request() needs unit testing however.
1 year ago
Philip O'Toole b2b0b188e9 Factor out functions 1 year ago
Philip O'Toole e171b2e725 Unit test RequiresLeader 1 year ago
Philip O'Toole 89f472743b Start adding Store.Request() 1 year ago
Philip O'Toole 7680483793
Tighten up remove 1 year ago
Philip O'Toole e64d78b809 Support removing self from cluster on shutdown 1 year ago
Philip O'Toole 02b6f7df61 selfLeaderChange is not just about restores 1 year ago
Philip O'Toole 159b127101 Clean up comments 1 year ago
Philip O'Toole 0c6be22478 Close auto-restore file 1 year ago
Philip O'Toole 1fa7cf73a7 Log any failure to delete auto-restore file 1 year ago
Philip O'Toole 1941c947c7 Fix comment 1 year ago
Philip O'Toole 466c757dcf Add long-missing init call to Store stats 1 year ago
Philip O'Toole 42fd612cf3 Better auto-restore counts compare 1 year ago
Philip O'Toole ee55a35c03 SetRestorePath unit testing 1 year ago
Philip O'Toole 88fe7e6847 ResetStats for this test 1 year ago
Philip O'Toole e7919a906f Avoid the race during testing 1 year ago
Philip O'Toole 7c88b93979 Fix race during testing 1 year ago
Philip O'Toole 31467482a3 Store-level multi-node auto-restore testing
This test ensures that auto-restoring works as expected when
Bootstrapping is enabled.
1 year ago
Philip O'Toole bf1e1cb1cd Add first tested version of Store auto-restore 1 year ago
Philip O'Toole 5c2e8e7ad6 Add channel which gets signal on becoming Leader 1 year ago
Philip O'Toole 833d9d3a6f Perform older checks first 1 year ago
Philip O'Toole 5e3f294dfa Only check for a ready store if making changes 1 year ago
Philip O'Toole 2ce3c5f34c Check Store is ready in more places 1 year ago
Philip O'Toole 57ca03014b More integration and testing of Store readiness 1 year ago
Philip O'Toole 716f84ff28 Store supports registering "ready" channels 1 year ago
Philip O'Toole 372e4dd4a9 Store implements simpler Provide() interface 1 year ago
Philip O'Toole 5fcc222f73 Better Store comment 1 year ago
Philip O'Toole 102869eb6d Unit test Provide() on the Store 1 year ago
Philip O'Toole ae97060f2c Implement the DataProvider interface on the Store 1 year ago
Philip O'Toole 519df067cc Check for more possible errors with peers
https://github.com/rqlite/rqlite/issues/1217
1 year ago
Philip O'Toole 45b246aa0a
Test IsReadOnly using table tests 1 year ago
Philip O'Toole 35df643a0b Remove unneeded type assertions 1 year ago
Philip O'Toole 1794724ef0 Remove unused code and fix error handling 1 year ago
Philip O'Toole 93b3308502 Skip any files that disappear during walking 1 year ago
Philip O'Toole ff001bc5a8 Migrate to a Protos data model for Notify Requests 2 years ago
Philip O'Toole a782513a11 Migrate to a join-request proto 2 years ago
Philip O'Toole fdf5fce053
Update store.go 2 years ago
Philip O'Toole 2730fa06e5 Empty config means not a voter 2 years ago
Philip O'Toole 5636febf9a Add IsVoter() and add to status/ output 2 years ago
Philip O'Toole defde21281 Merge remote-tracking branch 'origin' into ignore-join-explicit-if-state 2 years ago
Philip O'Toole 90b4dc0745 Silently ignore unchanged node self-joins 2 years ago
Philip O'Toole 54d61c7866
Update store.go 2 years ago
Philip O'Toole 4131cdb743 Unit test stepdown on shutdown 2 years ago
Philip O'Toole a2899a1cdd Support stepping down before shutting down 2 years ago
Philip O'Toole 0702e39ace Add ResetStats 2 years ago
Philip O'Toole 4da5b6322f Log message could be confusing with remote remove 2 years ago
Philip O'Toole 98575d727b Start adding remote remove node
More testing, including unit testing, required.
2 years ago
Philip O'Toole bfc35eaf7c
Simplify reap command line flags (#1118)
Simplify reap command line flags
2 years ago
Philip O'Toole 220424c7d1 Simple refactor, better Go style 2 years ago
Philip O'Toole e74bfc182a Use new Encoder everywhere 2 years ago
Philip O'Toole 07620cab41
Reap nodes (#1114)
Support automatic reaping of nodes
2 years ago
Philip O'Toole edec152ec9 Fix Store unit test 2 years ago
Philip O'Toole e158ae8a72 Start HTTP server ASAP 2 years ago
Eng Zer Jun 93eebc6e77
test: fix failing store_restart.test.go on Windows
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2 years ago
Eng Zer Jun da103c9b3e
test: fix failing Test_OpenStoreSingleNode on Windows
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2 years ago
Eng Zer Jun 6444926be7
test: fix failing Test_SingleNodeSnapshotInMem on Windows
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2 years ago
Eng Zer Jun 6969165330
test: fix failing Test_SingleNodeSnapshotOnDisk on Windows
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2 years ago
Eng Zer Jun 5141eff5fc
test: use `T.TempDir` to create temporary test directory
This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2 years ago
Philip O'Toole 0e8e266f96
Merge pull request #1090 from rqlite/fix-remote-load-errors
Fix remote-load error handling
2 years ago
Philip O'Toole 893fbb0249 More store-level load operation logging 2 years ago
Philip O'Toole 65cd556549 Fix remote-load error handling
Error from remote node was being dropped.
2 years ago
Philip O'Toole 5f33bffa0f More logging and resolution checks 2 years ago
Philip O'Toole b0f17b86c7 Notified node checks address resolution
If a non-resolvable address is passed to the Store, and then Store then
adds that to the config, it can result in a cluster that seems to have
insufficient members (since the remote node can't be contacted). This
may trigger a new leader election.
2 years ago
Philip O'Toole 47d79c859a Log database backup time 2 years ago
Philip O'Toole 9fc6ea16e9 Even better defer sequence 2 years ago
Philip O'Toole 555883d1a2 Correct order of deferred calls 2 years ago
Philip O'Toole 54aec1ca33 Tighten up backup code 2 years ago
Philip O'Toole 31bba4c577 Move to Backup proto model 2 years ago
Philip O'Toole 67a6042afb More style changes 2 years ago
Philip O'Toole 7bfc7afef0 Minor style changes to test logic 2 years ago
Abirdcfly 1b033f3b58 fix minor unreachable code caused by t.Fatal
Signed-off-by: Abirdcfly <fp544037857@gmail.com>
2 years ago
Philip O'Toole 9dbf590634 Better unit test 2 years ago
Philip O'Toole dc2b9f5b6f Ignore freshness when serving queries on Leader
It doesn't make sense to check the last leader-contact time when the
node itself is the leader. Any read, when served by the leader, is going
to be within the freshness bound.

Fixes https://github.com/rqlite/rqlite/issues/1048
2 years ago
Philip O'Toole da8d4fcbe9 Unit test that pre-existing data is gone 2 years ago
Philip O'Toole 89b132ac26 Fix Store-level unit tests 2 years ago
Philip O'Toole b03ed99eda Update comment 2 years ago
Philip O'Toole 304124952c Add Store level changes
Needs unit testing, and HTTP testing won't compile.
2 years ago
Philip O'Toole 2729a17279 Move some functions to standalone form 2 years ago
Philip O'Toole 9783ef24b1 Switch to error on self-join attempt 3 years ago
Philip O'Toole a524ed4979 Ignore join request if node ID is same 3 years ago
Philip O'Toole e4fed0cee3
Add bootstrap-expect (#974)
Add cluster-boostrap
3 years ago
Philip O'Toole ad7986630d Better command-line flags 3 years ago
Philip O'Toole ce099087ee Control whether bbolt sync freelist to disk
When true, skips syncing freelist to disk. This improves the database write performance under normal operation, but requires a full database re-sync during recovery.# Please enter the commit message for your changes.
3 years ago
Philip O'Toole 490f654f36 Move to etcd's fork of BoltDB
bboltdb is the version the Consul now runs.
3 years ago
Philip O'Toole 4aea326959
Consul and etcd autoclustering (#957)
This PR introduces new node-discovery integration with Consul and etcd. By using one of those systems with rqlite, automatic clustering of rqlite is much easier.
3 years ago
Philip O'Toole 63b7d24814 Init rand seed once at Store level 3 years ago
Philip O'Toole 24a5dc8c4b Much better random file names 3 years ago