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.
9 years ago
mkideal
050a9bbe0b
fix bug for rqlite-cli query: results should be a slice instead of array
9 years ago
Philip O'Toole
a6c7f5dc15
Merge pull request #122 from rqlite/rqlite_cli_rqlite
...
Handle error correctly from 'execute'
9 years ago
Philip O Toole
867cff7ab4
Handle error correctly from 'execute'
9 years ago
Philip O'Toole
6ee83d2e2a
Update README.md
9 years ago
Philip O Toole
e7879143f1
Prettier output after 'execute'
9 years ago
Philip O Toole
b74ebaa555
No need for CLI to request pretty JSON
9 years ago
Philip O Toole
157b2926a8
Just call the rqlite CLI 'rqlite'
...
This follows the pattern of MySQL.
9 years ago
mkideal
898f7b815e
impl rqlite-cli
9 years ago
Philip O'Toole
1c6ef1d84f
Use Raft advertise address, if exists, during join
9 years ago
Philip O Toole
4a5402fc9a
Allow HTTP advertise address to be set
9 years ago
Philip O'Toole
f16b6ba55b
Allow Raft address advertise ( #115 )
...
* Use resolved Raft address as API peer key
* Allow Raft advertise address to be set
* Better log message for mux
* CHANGELOG updates
* Unit test mux layer address advertise
9 years ago
Philip O'Toole
c1e2ab90e4
Switch to in-mem database by default ( #113 )
...
With low-latency networks, this results in a noticeable performance
increase.
9 years ago
Philip O'Toole
f115f6fbef
Version is now 3
9 years ago
Philip O'Toole
a35b877ba6
Publish peer before starting http service
...
This ensures the node is not accessible until it's completed its housework.
9 years ago
Philip O'Toole
78f652fcc2
Enable leader redirection
...
Not quite complete.
9 years ago
Philip O'Toole
3c02cbdc53
Actually start mux
9 years ago
Philip O'Toole
fac48629bc
Start initial integration of mux ( #109 )
...
Integrate TCP mux with cluster and store
This change allows any node, including followers, to use the Raft log to make changes to a cluster-wide state.
9 years ago
Philip O Toole
5aefda9983
Move to new rqlite org
9 years ago
Philip O'Toole
e8c92e088c
Don't join unless actually necessary
9 years ago
Philip O'Toole
888e80294d
Actually close response body
9 years ago
Philip O'Toole
58ba3463b5
Always close response body during join
9 years ago
Philip O'Toole
fb5e3c99d3
Bring system-testing into line with new DB layer
9 years ago
Philip O Toole
75ee23bdd9
Move URL normalization to http package
...
This function may be useful for leader-redirection.
9 years ago
Philip O Toole
659be46190
Add build time to status output
9 years ago
Philip O Toole
59cddcc2f7
Correctly indicate no auth enabled
9 years ago
Philip O'Toole
7fd7a9a385
Finish multi-node cluster testing
9 years ago
Philip O'Toole
4c36f8345c
Create standalone auth module
9 years ago
Philip O Toole
dce5e33016
Display logo on startup
9 years ago
Philip O Toole
f94a10424c
Check for failing auth on join
9 years ago
Philip O'Toole
c1ad8c8ec1
Allow auth config to be set at command line
9 years ago
Philip O'Toole
3ccb97c98b
Merge pull request #84 from otoolep/https_support
...
Add HTTPS support to API
9 years ago
Philip O'Toole
5fb2b0a658
Less precise version
9 years ago
Philip O'Toole
43195b37cd
Allow node to accept insecure X.509 certs
9 years ago
Philip O'Toole
f23cd8ef9c
Support HTTPS API
...
API can now be secured with X.509 certficate and key.
9 years ago
Philip O'Toole
aee03269db
Tweak help output for -join
9 years ago
Philip O Toole
6cb929954b
Trivial cleanup of main code
9 years ago
Philip O Toole
7d8980878b
Allow join address with protocol
...
This is part of the work for issue #82 .
9 years ago
Philip O'Toole
b00084a771
Include commit information in version
9 years ago
Philip O'Toole
09eb50d2bb
Support dumping version via command-line option
9 years ago
Philip O'Toole
fa8c9b20c2
Add build information to status output
9 years ago
Philip O'Toole
eba25cfda4
Allow build version to be set
...
In addition, log it at startup.
9 years ago
Philip O Toole
076a996a8b
Support expvar data
9 years ago
Philip O'Toole
b705de5240
Faulty leader redirection still disabled
9 years ago
Philip O'Toole
4524d014eb
Leader redirection almost complete
9 years ago
Philip O'Toole
faaaacd2a6
Remove reporting
9 years ago
Philip O'Toole
59052ec0b4
More status output
9 years ago
Philip O Toole
ce0a2ce269
Usage and comment fixes
9 years ago
Philip O Toole
593719f86c
Remove obsolete comment
9 years ago
Philip O Toole
9c02e1edb6
Make it easier to understand DSN
9 years ago
Philip O Toole
4ff67c2c90
Support in-memory databases
9 years ago
Philip O Toole
17aea81d75
Add Raft statistics
9 years ago
Philip O'Toole
48b6a469e3
Update main.go
9 years ago
Philip O Toole
d0b4d6aa0a
RWADME cleanups
9 years ago
Philip O Toole
a583b70180
Enhance reporting so Hashicorp use is flagged
9 years ago
Philip O Toole
35803cdf75
Shutdown Store on exit
9 years ago
Philip O Toole
a6cb950ff4
Allow DSN config at command line
...
It might still need to be richer, so end-users could specify an
in-memory SQLite database. Specifying a DSN would require the user
to supply the full path to the SQLite database. This is OK. However,
the code then needs to be able to parse out the path to the database
so it can remove it before start up.
9 years ago
Philip O Toole
2ebec9b973
Start adding support for snapshots
...
This shows that passing the database into the Raft module is probably
not going to work, since the database could be opened in two ways -
directly at startup, and be completely restored from the log, or with
a combination of restoring from a snapshot, followed by the remaining
log entries. In both cases the database must be opened using the
requested DSN settings.
A detailed config object for controlling SQLite behaviour, is probably
best, and it should be passed to the Raft store on start up.
Finally, file-level copying of the SQLite file can only take place if
no transaction is in effect. This might be handled by the use of a
RWLock. The write-lock is taken during Execute() and Snapshot, but
the Read lock is taken during Query(). Unfortunately this may reduce
the concurrency of inserts and updates. Perhaps the Backup call on
the Go SQLite library might be better, but it might be slow.
9 years ago
Philip O Toole
ab71c3bdd2
Execute working now
9 years ago
Philip O Toole
d67957d16d
Tweak DSN help output
9 years ago
Philip O Toole
3d277dd8fb
Update help output for DSN override
9 years ago
Philip O Toole
d70a9cb0ed
Push database into Raft store
...
Allows the DSN to be fully set, if requested.
9 years ago
Philip O'Toole
73d880c93c
Start support for SQLite DSN
...
This isn't complete, since it prepends the Raft directory to the
filename, which would break a DSN.
9 years ago
Philip O'Toole
875bb6ebf6
Raft clustering functional
9 years ago
Philip O'Toole
82c85f2102
Rename CLI to more standard version
9 years ago
Philip O'Toole
12aef34625
Start integrating actual SQLite support
...
Builds without error.
9 years ago
Philip O'Toole
d7d46f79c0
Start refactor for Hashicorp
...
Heavily influenced by hraftd. rqlited builds without error.
9 years ago
Philip O'Toole
0b52865949
Add trivial rqlite-cli skeleton
10 years ago
Philip O'Toole
649cef2adb
Add future location for rqlite CLI
10 years ago