1
0
Fork 0

168 Commits (16b63514f875cd8ff0523a4213dfa5b5b94358f6)

Author SHA1 Message Date
Philip O'Toole 796ef147f7 Hook in explicit Cluster Dialer 3 years ago
Philip O'Toole 606b45051b Fix help typo 3 years ago
Philip O'Toole 9ed32972b1 Start adding FK option support 3 years ago
Philip O'Toole b8d72f3fc4 New DB and FSM indexes to track state 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 f0f8bf0388 Change what-was too noisy logging 3 years ago
Philip O'Toole 4591e2df35 Don't ignore -join even if previous state exists 3 years ago
Philip O'Toole 232449b113 Correct help text for -node-id 3 years ago
Philip O'Toole 4c43049f9c Start cluster service as early as possible 3 years ago
Philip O'Toole 585a204f8b Add more startup logging 3 years ago
Philip O'Toole 088a06bfc9 Try simple way to share build information 3 years ago
Philip O'Toole 697132a6ee Remove metadata from Join operations
It's no longer needed.
3 years ago
Philip O'Toole 0d533dfa4c Some cleanup 3 years ago
Philip O'Toole f939d33fe5 Remove Metadata concept from system
System testing passes.
3 years ago
Philip O'Toole 2cef5679b7 rqlited starts and stops fine 3 years ago
Philip O'Toole 30d4d63ebb System tests pass 3 years ago
Philip O'Toole 38b2abca84 Remove older TCP transport code
Still unclear about whether tn.Open() is required with new mux.
3 years ago
Philip O'Toole d237a13a59 Use muxed connection for Raft internode comms 3 years ago
Philip O'Toole 98a7b3d30e Minor cleanup for mux code 3 years ago
Philip O'Toole 662daa74cb Add CA cert support which was erroneously removed
This was clearly a mistake due to a previous code change.
3 years ago
Philip O'Toole 2a55f98af7 Tweak help message for source IP
https://github.com/rqlite/rqlite/issues/774
4 years ago
osxlinux 03e616d1f7 fix: Optimize the Conversation from O\'Toole 4 years ago
osxlinux 3ba5e31fb2 feat: Support to specify the source IP when you are in a complex network environment 4 years ago
Philip O'Toole 2c52d9726c Log launch command 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 c4ee9cafd9 Disable TLS v1.0 and v1.1 by default 4 years ago
Philip O'Toole 5295a0e6b1 Trivial cleanups 4 years ago
Philip O'Toole b27cdfbf4d Better control over waiting for leader 4 years ago
Philip O'Toole 6670a22850 Actually check error codes during Store startup
This was a bug.
4 years ago
Philip O'Toole f07c3673c5 Log at start-up first and last Raft log indexes 4 years ago
Philip O'Toole 499df692be Exit if arguments are passed after data directory
Fixes issue #718.
4 years ago
Philip O'Toole a40338b113 Tweak log output 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 b6ebdf3ab1 Support setting Leader Lease timeout 4 years ago
Philip O'Toole fbdbee3e25 Include API proto in node meta 4 years ago
Philip O'Toole 3f0182c8e8 Make num join attempts and interval configurable 4 years ago
Philip O'Toole 487c0e3f8c Set Snapshot Interval to non-zero value
Snapshotting was *never* functional due to the zero interval value.
5 years ago
Philip O'Toole 536cac4fdf Allow log level control for Raft module
Default log level is INFO.
5 years ago
Philip O'Toole 668720cbb6
Remove obsolete SQLite const 5 years ago
Philip O'Toole ef44c199aa
Update main.go 5 years ago
Philip O'Toole cc65e36fcc
Remove obsolete const 5 years ago
Philip O'Toole 81f5f6faf1 Add support for non-voting nodes
A non-voting node doesn't participate in Raft consensus, but does
subscribe to the committed log entries originating with the leader.
This means a non-voting node keeps up-to-date with the state machine,
without impacting write-latency. These non-voting nodes can provide
read scalability for the cluster.
5 years ago
Philip O'Toole 3b9aca29c2 Add features list to status output
This will make it easier for client libraries to check for features in a given server, in a standard way.
5 years ago
Philip O'Toole f57ace7da2 Broadcast Store meta via standard consensus
With this change the cluster metadata (arbitrary key-value data associated with each node) is now broadcast across the cluster using the standard consensus mechanism. Specifically the use case for this metadata is to allow all nodes know the HTTP API address of all other nodes, for the purpose of redirecting requests to the leader.

This change removed the need for multiplexing two logical connections
over the single Raft TCP connection, which greatly simplifies the
networking code generally.

Original PR https://github.com/rqlite/rqlite/pull/434
5 years ago
Philip O'Toole 853133ecb2 By default use Raft network address as node ID 5 years ago
Philip O'Toole 8a0e1ce8f0 Move to Hashicorp Raft v1 5 years ago
Philip O'Toole 9499a7f92d Revert changes to Disco client 5 years ago
Philip O'Toole de379a883c When joining try HTTPS if HTTP fails 5 years ago
Zac Medico f01e6b1b0a
Server -http-ca-cert and -node-ca-cert options
The -http-ca-cert and -node-ca-cert options allow the user to specify
trusted X.509 root CA certificates as an alternative to the
-http-no-verify and -node-no-verify options. This behavior is analogous
to the rqlite client -ca-cert option.
5 years ago