1
0
Fork 0

313 Commits (d582da3c73626d92f3bf173302d59d6bc6ff70a4)

Author SHA1 Message Date
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
Philip O'Toole 9b0852e711 Implement policy over trailing logs
Don't allow control over trailing logs directly, just implement a policy
that scales the number by 1.25 relative to Snapshot threshold. Without
doing this it may be that setting the snapshot threshold lower doesn't
actually affect SQLite start up times, due to log application. Perhaps
this really needs exposure at the command line, but the command line is
starting to get complicated.
4 years ago
Philip O'Toole 8cb88d7744 Count number of legacy commands unmarshaled 4 years ago
Philip O'Toole 4f0c3092b3 Better command decoding panic message 4 years ago
Philip O'Toole 7780a0987b Simplify variable declaration 4 years ago
Philip O'Toole e52b4c58c3 Factor out binary value functions 4 years ago
Philip O'Toole 011bc00784
Add SQLite database page-centric size to status output 4 years ago
Philip O'Toole 6d77d904e7
Compress SQLite database in Raft snapshot
Before Raft truncates the log, it needs to retrieve a snapshot of the SQLite database to represent the log entries that are removed during that truncation. Raft then writes that snapshot to disk. To reduce both disk IO and disk space this change compresses that SQLite snapshot before it is written to disk, and decompresses it during a restore operation.

This change also deals with older SQLite snapshots, which were not compressed.
4 years ago
Philip O'Toole d5322a1909
Ignore join request if node already part of cluster (#711)
rqlite used to work like this, but suffered a regression due to a change in how Hashicorp Raft worked. The manner it changed in was not public, so relying on it was always fragile.
4 years ago
Philip O'Toole 6575de779d
Use Protobuf for encoding Raft Log commands
This PR changes Raft Log Entry encoding from JSON to Protobuf. Furthermore, larger Raft commands (which can result from batching SQL statements, or individually long SQL statements) are compressed before encoding.

This primary reason for this change is to reduce IO load since that is one of the largest performance bottlenecks. It will also reduce internode traffic.

Legacy JSON-encoded commands are still handled by this code, so this change is backwards-compatible with previous releases in the v5 series.
4 years ago
Philip O'Toole b4867713e4 Better variable name, Query -> SQL 4 years ago