1
0
Fork 0

423 Commits (0a85cf03056e3f54abb3518b7514a43e961cc5ea)

Author SHA1 Message Date
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 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 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 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 07620cab41
Reap nodes (#1114)
Support automatic reaping of nodes
2 years ago
Philip O'Toole e158ae8a72 Start HTTP server ASAP 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 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 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 ca556044e3 Merge branch 'master' of github.com:rqlite/rqlite into refactor-main-bootstrap 3 years ago
Philip O'Toole 2ffb29394f Fix typo 3 years ago
Philip O'Toole f5c03d4b60 Try simple refactor of bootstrap 3 years ago
Philip O'Toole 769557db7e Better variable name 3 years ago
chermehdi 3bfcbffc37 Fix typos and Grammar issues 3 years ago
Philip O'Toole 33bee34f89 More Store restart testing 3 years ago
Philip O'Toole d74c05c2db Support disabling in-memory init of on-disk 3 years ago
Philip O'Toole 003301aee6
Minor fixes to log messages (#920)
Minor fixes to log messages
3 years ago
Philip O'Toole 0b621cbec8 More logging tweaks 3 years ago
Philip O'Toole 5ce51bc2ba Better comments 3 years ago
Philip O'Toole 05534cc94c Don't use Windows file paths as IDs 3 years ago
Philip O'Toole f9f35bf95c Dump file 3 years ago
Philip O'Toole 7093cb25d3 Fix race in test 3 years ago
Philip O'Toole 9fb114c07f Recover test after snapshot 3 years ago
Philip O'Toole 519a91e635 Actual recovery node test passes on Linux 3 years ago
Philip O'Toole 1b158d09fb Simple unit test of node-recovery 3 years ago
Philip O'Toole 1abd3007ca Rename peers.json after successful recovery 3 years ago
Philip O'Toole cc1de72796 Ensure raft/ exists inside data directory 3 years ago
Philip O'Toole abccc6ced3 Better function name 3 years ago
Philip O'Toole d9ad3c080a Add untested recover-node functionality 3 years ago
Philip O'Toole 32239b5053 Move new function to earlier per convention 3 years ago
Philip O'Toole 4ab72a8194 Refactor to make recover-cluster code easier 3 years ago
Philip O'Toole 5dd4aeed1e More Snapshot metrics 3 years ago
Philip O'Toole 38eef8ee82
Merge pull request #890 from rqlite/more-abl
ABL
3 years ago
Philip O'Toole dd71c07c73 ABL 3 years ago
Philip O'Toole 0e34dc49ca Add BoltDB stats 3 years ago
Philip O'Toole d6be09ba65
Update Snapshot comment 3 years ago
Philip O'Toole 5d48a18950 Check if slice is empty in addition to being nil 3 years ago
Philip O'Toole bb002bb81b Block query transactions during serialize 3 years ago
Philip O'Toole a6da8d474f Ensure (any) directory for on-disk-path exists 3 years ago
Philip O'Toole 1f33dbb2cb Fix up Store-open logging 3 years ago
Philip O'Toole 105a894fe5 Support explicit SQLite path at Store level 3 years ago
Philip O'Toole a6346ba9d4 Fix unit test -- start muxes 3 years ago
Philip O'Toole dd692ecf4f Add gauge-like metric for Snapshot times 3 years ago
Philip O'Toole 9d87a15194 Small simplication 3 years ago
Philip O'Toole 43e60a0469 Perform leader check first for STRONG query
Don't wait until Raft layer returns it. There is a small chance of a
false leadership detection, but the cluster would have to be in flux
anyway for that to be the case. Execute does this already.
3 years ago
Philip O'Toole fd98114839 HTTP-level testing passes 3 years ago
Philip O'Toole 3580e341a8 Store-level testing passes 3 years ago
Philip O'Toole deb4dabf2e Thread through foreign key constraint controls 3 years ago
Philip O'Toole 0536bc3c1c ABL 3 years ago
Philip O'Toole 74d0780a5f
Merge pull request #845 from rqlite/sqlite-options
Add SQLite compile-time options to status output
3 years ago
Philip O'Toole 39d0f2ad4a Merge branch 'master' of github.com:rqlite/rqlite into sqlite-options 3 years ago
Philip O'Toole fc76327b46 Use FSM index in tests 3 years ago
Philip O'Toole b8d72f3fc4 New DB and FSM indexes to track state 3 years ago
Philip O'Toole ea723ee830 Ping databases on open to ensure full availability 3 years ago
Philip O'Toole 696bac655f Merge branch 'master' of github.com:rqlite/rqlite 3 years ago
Philip O'Toole f03900b282 Log type of database on start-up 3 years ago
Philip O'Toole b83424484d Enhance SQLite database status 3 years ago
Philip O'Toole 6edff5ba24 Deal with SQLite connection "caching"?
https://github.com/mattn/go-sqlite3/issues/966
3 years ago
Philip O'Toole 6dc9583dab Implement concurrent reads and writes
Disk doesn't support it yet, as it has not moved to WAL mode. Perhaps
wait for next release to do that.
3 years ago
Philip O'Toole e0da96dd55 Remove support for specifying SQLite DSN
This is a breaking change. However this feature hasn't been tested and
allows end-users to break the system too easily. Low-level control over
the SQLite database is better done with PRAGMA commands where possible.
3 years ago
Philip O'Toole 8693694d14 Add current SQLite journal mode to status output 3 years ago
Philip O'Toole 503825dbaf Remove Abort functionality
No longer relevant since each Exec and Query gets its own connection.
3 years ago
Philip O'Toole 561bb47a14 Port DB layer to sql/database
Empty statements now cause panic.
3 years ago
Philip O'Toole 5f5f7dbbea Sync use of DB connection
Possible, albeit simple, fix for https://github.com/rqlite/rqlite/issues/830
3 years ago
Philip O'Toole 67b0368288 It's create in memory, not open 3 years ago
Philip O'Toole 0a55f0bed1 It's create, not open 3 years ago
Philip O'Toole 01e2403015 Count various Join scenarios 3 years ago
Philip O'Toole 4591e2df35 Don't ignore -join even if previous state exists 3 years ago
Philip O'Toole f0417f2241 Correct typo in comment 3 years ago
Philip O'Toole 58b567c27a Only check non-voting nodes by default 3 years ago
Philip O'Toole 4fd5555c41 ABL 3 years ago
Philip O'Toole f939d33fe5 Remove Metadata concept from system
System testing passes.
3 years ago
Philip O'Toole b2bcdb584d Tweak Store API 3 years ago
Philip O'Toole b579e5c59f Shut down Raft first 4 years ago
Philip O'Toole 1dc156b965 Add total Raft directory size to Store stats 4 years ago
Philip O'Toole fd4b76a419 Convert Raft stats to numbers where possible 4 years ago
Philip O'Toole 125074ab6e Only shutdown BoltDB when Raft is done with it 4 years ago
Philip O'Toole 3ff13cda74 More system testing 4 years ago
Philip O'Toole 51c745ea23 More in-mem and on-disk system test 4 years ago
Philip O'Toole ae16a65d8d Handle snapshots with database data
This shouldn't happen normally, but technically could.
4 years ago
Philip O'Toole f8e4795d44 Merge branch 'master' into test-snap-restore-more 4 years ago
Philip O'Toole c2f40500a2 Close Bolt on Store close 4 years ago
Philip O'Toole e4c60bed7a Merge branch 'master' into test-snap-restore-more 4 years ago
Philip O'Toole ca1f8e1752 Whitebox testing of Noops on Store 4 years ago
Philip O'Toole 0b84667b45 Fix on-disk create in Apply 4 years ago
Philip O'Toole a8559b49e8
Merge pull request #754 from rqlite/noop-store-test
Support Noop commands in Raft Log
4 years ago
Philip O'Toole 824dab5536 Doesn't work because Store can't be re-opened
Due to network issues.
4 years ago
Philip O'Toole d31105e0f0
Add missing return 4 years ago
Philip O'Toole ed080fe9d0 Close database before Restore 4 years ago
Philip O'Toole 9c53b0f8b7 Consolidate database creation functions 4 years ago
Philip O'Toole c782b43f2d
Build on-disk databases in-memory first
With this change, rqlite nodes running in "on-disk" mode build the database in memory first, and move it to the disk just before the Raft system starts. This means that on-disk nodes now initialize almost as quickly as in-memory nodes.
4 years ago
Philip O'Toole 33aa4522cf Better timing from first to last log 4 years ago
Philip O'Toole a4185172da Time snapshot, restore, and startup times 4 years ago
Philip O'Toole 80e0db9f52 Make logic easier to read 4 years ago
Philip O'Toole 9ea54b608f Use DeserializeInMemoryWithDSN for in-mem restore 4 years ago
Philip O'Toole ef1f0f1d57 Sync queries and restores 4 years ago
Philip O'Toole 0f1352fb01 Remove duplicate pre-restoration Close() 4 years ago
Philip O'Toole ce7a3a6912 Merge branch 'master' into no-disk-during-restore 4 years ago
Philip O'Toole 0b3a41bd3f
Clearer comment 4 years ago
Philip O'Toole 535d690d7c Tigthen up Store-level locking
Previous locking didn't look quite correct, and with the advent of the
Serialize functionality, it needs to be more precise.
4 years ago
Philip O'Toole 0d0bb3f44a Close database before restoration
This change also adds better logging, so the restoration process can be
better observed.
4 years ago
Philip O'Toole eb01e8dc9d Skip temp file when restoring in-memory database
This saves a read and write to disk, the size of the SQLite database.
4 years ago
Philip O'Toole db64f4c923 Don't use temp file during database snapshot
Snapshotting the database does not now need to write to disk, and copy
the SQLite database straight to RAM, for handoff to the Raft subsystem.
4 years ago
Philip O'Toole 93a78f09a0 Add call to Serialize function 4 years ago
Philip O'Toole d560356d8d Fix spelling mistakes 4 years ago
Philip O'Toole 8576ed3cfd Remove unused byte slice address 4 years ago
Philip O'Toole bb31aef20a ABL 4 years ago