Philip O'Toole
0b5df4b81d
HTTP layer uses timeout for GetNodeAPIAddr calls
3 years ago
Philip O'Toole
9130ed8b1f
Fix HTTP unit tests
3 years ago
Philip O'Toole
eee3a2e785
Fix code path that could cause panic
3 years ago
Philip O'Toole
e6532bd11e
Add HTTP-level redirect and forward testing
3 years ago
Philip O'Toole
6e17295913
Group network-related params together
3 years ago
Philip O'Toole
4a28b311f1
Support cluster injection in HTTP unit tests
3 years ago
Philip O'Toole
0b8beb6a5d
Implmenet Request Forwarding timeout support
3 years ago
Philip O'Toole
7c4f42d032
Fix HTTP unit tests
3 years ago
Philip O'Toole
adc39168f2
Test for invalid Response
3 years ago
Philip O'Toole
b50b14bdd5
Unit test Reponse JSON marshal
3 years ago
Philip O'Toole
fd98114839
HTTP-level testing passes
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
b6e0f46f30
Support non-voting nodes optionally in nodes/
3 years ago
Philip O'Toole
7218a40ed1
Cluster system test for nodes/
...
It's failing however.
3 years ago
Philip O'Toole
805074f8f5
Start supporting /nodes endpoint
3 years ago
Philip O'Toole
f939d33fe5
Remove Metadata concept from system
...
System testing passes.
3 years ago
Philip O'Toole
78f39a082e
Fix HTTP unit tests
...
Add missing stub.
3 years ago
Philip O'Toole
6a48068d78
Integrate Cluster service with HTTP service
3 years ago
Philip O'Toole
f81d7e29d7
Enable http/2.0 support for TLS
...
As per https://blog.cloudflare.com/exposing-go-on-the-internet/
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
9e1cb231b5
Unit test /backup returns redirect
4 years ago
Philip O'Toole
d473e64246
Unit test backup/ endpoint
4 years ago
Philip O'Toole
b8ecc1b18e
go fmt
4 years ago
Philip O'Toole
0d85f00b63
Test LeaderAPIAddr and LeaderAPIProto
...
To do this these functions needed to be made public.
4 years ago
Philip O'Toole
fbdbee3e25
Include API proto in node meta
4 years ago
Philip O'Toole
c6419cc62e
Check local HTTPS cert to enable HTTPS redirect
...
This assumes that if this node is using HTTPS, then all other nodes are.
This is required as per the documentation.
4 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
1ffc3d566e
Add varadic functions to auth store
5 years ago
Philip O'Toole
a23af88235
Write backup and dump files to a writer
...
This avoids making an extra copy in RAM. Port of original PR at
https://github.com/rqlite/rqlite/pull/461/ .
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
e376812907
Add method to Store that returns leader ID
...
With the advent of Raft IDs, this distinction matters.
5 years ago
Philip O'Toole
8a0e1ce8f0
Move to Hashicorp Raft v1
5 years ago
Philip O'Toole
0e69be3949
Store layer supports generating SQL format backups
...
Port PR453.
5 years ago
Philip O'Toole
0471877f26
Abort transaction if load operation fails
5 years ago
Philip O'Toole
33f6f6bf8e
Move EnsureHTTPS into http module
5 years ago
Philip O'Toole
a0bf158111
Test 404 returned when Expvar and Pprof disabled
7 years ago
Philip O'Toole
272792fbef
"status" permission required for Go runtime info
7 years ago
Philip O'Toole
2a1b6c65c3
New QueryRequest and ExecuteRequest types
...
The Query() and Execute() functions on the Store now take a complex type
that encapsulates the statements, and associated parameters. This will
make it easier to add more control parameters when making requests.
7 years ago
Philip O Toole
0ae3347345
Unit test redirect
7 years ago
Philip O'Toole
5a6f344a7d
Don't always set Content-Type as JSON ( #334 )
...
Set Content-type for backup endpoint to "application/octet-stream".
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
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
Philip O Toole
2c8922b50b
Standardize load endpoint processing
8 years ago
Philip O Toole
5ed6ef0ae8
Covert dumps to queries in HTTP service
...
There is no need for special logic at the Store level.
8 years ago
Philip O'Toole
36368d6786
Start removing batch load
8 years ago
Philip O Toole
88eb56e431
Service now uses load batch of 100
8 years ago
Philip O Toole
31560160a1
Check FK state before load
8 years ago
Philip O'Toole
4d36690eea
Unit test "Content-type" HTTP header
8 years ago
Philip O Toole
4b36f313ec
Check unknown version support in HTTP
8 years ago
Philip O Toole
1b6bdffd33
Add rqlite version to each HTTP response
8 years ago
Philip O'Toole
918a3200dd
Correct method for removal of node
8 years ago
Philip O'Toole
45427e82ad
More Service route unit tests
8 years ago
Philip O'Toole
37195abcf4
Expose /remove endpoint on HTTPD service
8 years ago
Philip O'Toole
9a36f4867a
Check if queries start with SELECT
8 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
75ee23bdd9
Move URL normalization to http package
...
This function may be useful for leader-redirection.
9 years ago
Philip O'Toole
24b326685d
Unit test 401 logic
9 years ago
Philip O'Toole
4c36f8345c
Create standalone auth module
9 years ago
Philip O Toole
8433c2ef2f
Fix http unit tests
9 years ago
Philip O Toole
11c18cd769
Service and store support consistency levels
...
Fix issue #5 .
9 years ago
Philip O Toole
f28b315a8d
'go fmt' fixes
9 years ago
Philip O Toole
68719955e0
Prep for extensive service unit tests
9 years ago
Philip O Toole
6c12e39809
Require Store to expose Leader()
9 years ago
Philip O'Toole
e88f97ed06
Support cluster-level leader checks for queries
9 years ago
Philip O'Toole
d294012814
Fix HTTP unit tests after new status route
9 years ago
Philip O Toole
f1963221ca
Small fixes and formatting
9 years ago
Philip O Toole
81a3af3b7e
Allow leader check for queries
9 years ago
Philip O Toole
a7ade520e4
Clean up HTTP routing
...
Start adding unit tests for HTTP service.
9 years ago