1
0
Fork 0

317 Commits (4378eb5474250689e9c20895e28e033e2dc45614)

Author SHA1 Message Date
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 3ff1c35998 Add oneshot option to rqbench 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 09931f8338 rqlite dumps rqlite node version at startup 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 29b73cdf63 Add rqbench README 4 years ago
Philip O'Toole 5f4ec0c607 Support both execute and query benchmarking 4 years ago
Philip O'Toole c48c3cbe9b Pass path to HTTP tester 4 years ago
Philip O'Toole 73ea4b9424 Remove unneeded : 4 years ago
Philip O'Toole ac5fb55301 Display HTTP response body on 503 4 years ago
Philip O'Toole b6ebdf3ab1 Support setting Leader Lease timeout 4 years ago
Philip O'Toole d47c290cda Restore request should re-read file every attempt
It can now handle HTTP 301 redirects properly.
4 years ago
Philip O'Toole 9482741afa Set BasicAuth when needed during restore 4 years ago
Philip O'Toole 0f3010f15c Add missing calls to set BasicAuth 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 aa2467b29d Print help in alpha order 5 years ago
Philip O'Toole ad1557664a Add support to CLI for node removal 5 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 5bf8fc2d43 Fix formatting 5 years ago
Philip O'Toole 887530db26 Correct package godoc for rqbench 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 8ecf84a42b Reset strings reader every execute loop 5 years ago
Philip O'Toole 99ac2353b3 Simplify rqlite implementation
This results in significant duplicated code, but is easier to follow.
The previous code was buggy when it came to redirection handling.
Longer term tool needs to be rebuilt to use a proper Go SQL-compliant
package (yet to be written).
5 years ago
Philip O'Toole 68271534ed
Merge pull request #608 from rqlite/features_status
Add features list to status output
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 9ab39b7b29 Read, and close, response body ASAP 5 years ago
Philip O'Toole 959d280c49 rqlite CLI explicitly checks for HTTP 200 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 6213f5d604
Print Welcome message in CLI 5 years ago
Philip O'Toole 70fec8fb1f Add HTTP proxy (from environment) support
Port PR573.
5 years ago
Philip O'Toole 76975f96fe Add .dump to CLI 5 years ago
Philip O'Toole ff0d5d1d39 Add restore command to CLI
Port of PR450.
5 years ago
Philip O'Toole 7ac47a1571 CLI now supports history
Port of PR527.
5 years ago
Philip O'Toole ea8d568406 Commit new file 5 years ago
Philip O'Toole 7a81104082 Support backups from CLI
Port PR436.
5 years ago
Philip O'Toole ec593fe8d5 Support showing timings in the CLI
Port of https://github.com/rqlite/rqlite/pull/414
5 years ago
Philip O'Toole 1d8417de74 Add support for BasicAuth to CLI
Port PR406 to v4.
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
Philip O'Toole 8336150318
Merge pull request #551 from zmedico/client-ca-cert-option-4.3.0
Add rqlite -ca-cert option to specify trusted root CA certificate
5 years ago
Zac Medico 936ab69ba9
Add rqlite -ca-cert option to specify trusted root CA certificate
The -ca-cert option allows the user to specify a trusted X.509 root CA
certificate as an alternative to the --insecure option.
5 years ago
Philip O'Toole 2e91858e1e Allow Raft election timeout to be set 6 years ago
Philip O'Toole 6937a377ae Allow control of shutdown-on-remove
Defaults to leaving Raft run if the node is removed.
6 years ago
Philip O Toole c1e1509b93 Correct rqlite GoDoc 7 years ago
Philip O Toole fb3cc19680 More GoDoc 7 years ago
Philip O Toole 6bbdc88c1d ABL
Always be linting.
7 years ago
Philip O Toole 9f32f026e2 More informative output during load testing 7 years ago
Philip O'Toole 6e4082ad45 Simple INSERT-only benchmarking tool 7 years ago
Philip O'Toole 4dbe5c1fae CLI doesn't need to send indented JSON 7 years ago
Philip O Toole 0fe34905ff CLI checks for HTTP 401
The CLI doesn't yet support passing authentication credentials, but this change means the user will know what is happening.
7 years ago
Philip O Toole 0ab2922ffd CLI package seems to be adding extra space now 7 years ago
Philip O Toole 3fcc5d36f6 Refactor credential store instantiation
This will make it easier for other services to use the credential store.
7 years ago
Philip O'Toole 0b08aa52c7 Update main.go 7 years ago
Philip O'Toole d4e0764315 Add .expvar to CLI help output 7 years ago
Philip O'Toole defbdc78d6 Support fetching expvar info via CLI 7 years ago
Philip O'Toole aa998db89e More GoDoc 7 years ago
Philip O'Toole d1fb732e6e CLI doesn't need pretty responses nor timings 7 years ago
Philip O'Toole 6f019e549a Add in-CLI help 7 years ago
Philip O'Toole 7c1d23fae3 STATUS command shouldn't redirect
Return status of "connected" node.
7 years ago
Philip O'Toole d5e810f319 Correct CLI README 7 years ago
Philip O'Toole f9a40c22e3 Add .STATUS command to CLI 7 years ago
Philip O'Toole 1a11536495 Include Go runtime version when issued -version 7 years ago
Philip O'Toole c8fb4dc9cf Fix HTTP x509 key help 7 years ago
Philip O'Toole d753a8f7be HTTP service now supports registered statuses
Mux is first service to register status for serving.
7 years ago
Philip O'Toole 75cec9a9c1 Tweak start-up logo
Strictly speaking the system is rqlite, not rqlited. The latter is just
the daemon.
7 years ago
Philip O'Toole ebfa38d726 Move to clearer command-line options 7 years ago
Philip O'Toole 5e2718d7f7 Better TLS-related logging 7 years ago
Philip O'Toole a0753d9968 Unit test TLS mux 7 years ago
Philip O'Toole 8f8894bd0e Complete node-to-node encryption 7 years ago
Philip O'Toole b96220f1eb Better commenting 7 years ago
Philip O'Toole ba53bde877 Add creation TLS-enabled listener 7 years ago
Philip O'Toole ece0994057 Command-line options for secure internode comms 7 years ago
Philip O Toole 28269944af CLI should handle HTTP redirect explicitly
HTTP client behavior changed with Go 1.8. This change makes behavior that was implicit in Go 1.7 and earlier, explicit now.
8 years ago
Philip O Toole 6e664b9797 Log Go version at startup 8 years ago
Philip O Toole 57495a8457 Support multiple join addresses 8 years ago
Philip O Toole 299f5dee7e Tweak rqlite description 8 years ago
Philip O Toole fb92953a88 const out the name 'rqlited' 8 years ago
Philip O'Toole 4fad2d22df Tweak join-related logging 8 years ago
Philip O'Toole 159da1b5e5 Check if join allowed before determining addresses 8 years ago
Philip O'Toole b1ddec679d Don't name variable after package 8 years ago
Philip O'Toole 0ae7425678 Disco service is capitalized in logs 8 years ago
Philip O'Toole acaa014b49 Merge pull request #286 from rqlite/fix_http_help
Tweak help output
8 years ago
Philip O'Toole 4b9220c107 More join logging 8 years ago
Philip O Toole abd24c75ec Tweak help output 8 years ago
Philip O Toole 144514f370 Tweak main log message 8 years ago
Philip O'Toole 218610822c Merge pull request #283 from rqlite/fix_main_log
main code should also log to stderr
8 years ago
Philip O Toole 4d145f8ac5 main code should also log to stderr 8 years ago
Philip O Toole 9d39d59a6c Fix join failure log message 8 years ago
Philip O Toole cf39350d62 Start fixing Discovery Redirects
The Go HTTP client does some automatic redirect handling, and the code needs to deal with this.
8 years ago
Philip O'Toole 7810c3470a Complete integration with Discovery Service 8 years ago
Philip O'Toole a61f05985b Supply HTTP advertised address to disco service 8 years ago
Philip O'Toole 35528928e2 Integrate cluster.Join with main 8 years ago
Philip O'Toole 8f9a26ed7b Add initial, more complex, join functions
Also, remove questionable check of join and disco.
8 years ago
Philip O'Toole b0abb64d62 Sart integration of disco service 8 years ago
Philip O'Toole e0721274f5 Update README.md 8 years ago
Philip O'Toole e410a2641b Support .tables and .schema in rqlite CLI 8 years ago
Philip O'Toole caf1562a77 Add GOOS and GOARCH to --version output 8 years ago
Philip O'Toole e6d9a9dda8 Add build branch to -version output 8 years ago
Philip O'Toole 851f486ff8 Make waiting for logs optional 8 years ago
Philip O'Toole 03899af510 Set params on store before opening 8 years ago
Philip O'Toole 059ab0757b Allow Store to wait for initial logs to be applied
Better fix for issue #260.
8 years ago
Philip O Toole 5b0cc7bb98 Log GOOS and GOARCH at startup 8 years ago
Philip O Toole ae0d119d83 Allow Raft Apply timeout to be configurable 8 years ago
Philip O Toole 982fa54030 Not all queries begin with SELECT so pull check
Common Table Expressions can begin with WITH. This check was always dubious.
8 years ago
Tycho Andersen 326ca757d7 add an API for using custom raft.PeerStore/log.Logger
This is useful in case the server needs to store other metadata (e.g. auth
data) along side the peer list.

The logging bit is handy in case something has its own logging framework
that it wants to use.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
8 years ago
Philip O'Toole 1491f17eda Update README.md 8 years ago
Philip O'Toole a122b26050 Update README.md 8 years ago
Philip O'Toole b9112d60b4 Update README.md 8 years ago
Philip O'Toole 334e67cd99 Tweak help output for latest rqlite commands 8 years ago
Philip O'Toole 080a8e2a3d Merge pull request #232 from tych0/add-rqlite-flexibility
Add rqlite flexibility
8 years ago
Tycho Andersen a73b597d4f cmd: add an --insecure flag to rqlite
This can be used to test against servers which don't have verifiable https
certs.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
8 years ago
Tycho Andersen 86bb3c46e5 cmd: add --prefix option to rqlite
If e.g. rqlite is embedded in some other HTTP engine via forwarding or
something, it might not be at /; let's allow the client to talk to rqlite
in this case.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
8 years ago
Philip O'Toole 39ebf50cb7 Remove explicit control of FK constraints
It's not clear whether it's the right thing to do, and FK constraints
can still be controlled via PRAGMA commands.
8 years ago
Philip O Toole c691b04dca Tweak usage output 8 years ago
Philip O'Toole 4cf39b626e Tweak logo 8 years ago
Philip O'Toole d7833c66c4 Set build variables default at declaration time 8 years ago
Philip O'Toole 9ad9c593fb Remove unreachable code 8 years ago
Philip O'Toole aa599a34e3 Use HTTP status codes, not magic numbers 8 years ago
Philip O'Toole 4a74e439e5 Join redirects now fully functional 8 years ago
Philip O Toole e11aa14b6e Support memory profiling 8 years ago
Philip O'Toole c40fff4d46 Support controlling FK constraints at startup
This was possible previously, but would need to be set everytime on
startup via the API. This change allows it to set at startup AND enables
foreign constraint checking by default.
8 years ago
Philip O Toole bbad422f37 Tweak CLI help usage 8 years ago
Philip O'Toole b77130aa2c CLI now handles no rows correctly 8 years ago
Philip O'Toole 5ff3a885e7 CLI follows 301 redirect 8 years ago
Philip O'Toole 2982058a81 Support setting Raft heartbeat timeout 8 years ago
Philip O'Toole 8a05236768 Support configurable snapshot thresholds 8 years ago
Philip O'Toole 6f4814a4c3 Support pprof information over HTTP 8 years ago
Philip O'Toole 786a8b0464 Used resolved address when joining
It seems Hashicorp Raft only works in IP addresses, and joining with a
hostname caused the remove logic to cause all nodes to leave when one
node was instructed to leave.
8 years ago
Philip O'Toole 8975a4744d Dump full body on join error 8 years ago
Philip O'Toole 2c334d4f93 Allow SELECT-verification to be disabled
This is not recommended as it leaves the system vulnerable to changes
via the "query" endpoint.
8 years ago
mkideal 050a9bbe0b fix bug for rqlite-cli query: results should be a slice instead of array 9 years ago