1
0
Fork 0

70 Commits (38f52694a09be8444283b14725c6d8f9bf80fc70)

Author SHA1 Message Date
Philip O'Toole 38f52694a0 nodes/ endpoint supports timeout 3 years ago
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