1
0
Fork 0

101 Commits (b64efc9290987433e9f7357602b8d6ee37616d50)

Author SHA1 Message Date
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 0b8cd8536f Remove apparently duplicated code 5 years ago
Philip O'Toole 0471877f26 Abort transaction if load operation fails 5 years ago
Philip O'Toole d47808a26b Add expvar stats to Store 5 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 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 e6586f41f2 Use single load for dump processing
Writing a sufficiently sophisicated parser is too much work, and unlikely to be successful soon. Instead this change simply loads the entire dump as one command, and allows the underlying SQLite support to parse it correctly. This will definitely work, but since the load goes over Raft, it may hit limits with regards to network transfer sizes. Right now any limitations in that area are unknown.

Therefore this functionality remains somewhat experimental.
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 da21606644 Move chinook package to idiomatic testdata dir
https://github.com/golang/go/issues/14715
8 years ago
Philip O'Toole 634f55211c Unit test with Chinook database
https://chinookdatabase.codeplex.com/
8 years ago
Philip O'Toole eda120ffaa Correct unit tests 8 years ago
Philip O'Toole f87ee412e2 Correct unit tests
'PRAGMA foreign_keys=OFF' is no longer filtered.
8 years ago
Philip O'Toole 36368d6786 Start removing batch load 8 years ago
Philip O Toole b95af88367 Test SQL loading with blank lines 8 years ago
Philip O Toole 6ee9cdbbdf Start integration of SQL line parser 8 years ago
Philip O Toole 2daac8704b Support batching during load 8 years ago
Philip O Toole 38f9b6ff20 Test loading no commands 8 years ago
Philip O Toole ab743b1ead Test loading an empty file 8 years ago
Philip O Toole ccd48161f3 Unit test Store Load() 8 years ago
Philip O'Toole 7dd164915b Check database errors at store level 8 years ago
Benjamen Keroack b67e56196e add cluster state and leader functions to store 8 years ago
Philip O'Toole 47539cf8e1 Add RemoveNode() to Store 8 years ago
Philip O'Toole ef18cd5b17 Expose Raft Peers() on Store 8 years ago
Philip O Toole bf2047b45b 'go lint' fixes 8 years ago
Philip O'Toole c04ff92d7a Fill our API peers lookups (#110) 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 a02f44f089 Remove cluster-like code from Store 9 years ago
Philip O'Toole bdeda47774 Initial implementation of Meta server
This should really be a distinct cluster package.
9 years ago
Philip O'Toole 0a3454a675 Methods on store to set and get API peers 9 years ago
Philip O'Toole a11b5fe2fe Unit test restoring in-memory databases 9 years ago
Philip O'Toole 1ea4edd515 Store layer adapted to new DB layer 9 years ago
Philip O Toole cafbc0722b 'go fmt' fixes 9 years ago
Philip O Toole 940c872dfd Explicitly test file and in-mem 9 years ago
Philip O'Toole b26bc3444c Unit test snapshot and restore 9 years ago
Philip O'Toole 7fd7a9a385 Finish multi-node cluster testing 9 years ago
Philip O'Toole 5e688bab93 Clarify it's localhost 9 years ago
Philip O'Toole cc3c75d9bf Re-enable multi-node testing on CirceCI 9 years ago
Philip O Toole 5f5a666a06 Move to "weak" and "strong" for consistency levels 9 years ago
Philip O Toole db1fb33fd3 Allow timing control
Fixes issue #75.
9 years ago
Philip O Toole 1649b83d14 Fix unexpected command 'typ' 9 years ago
Philip O Toole 11c18cd769 Service and store support consistency levels
Fix issue #5.
9 years ago
Philip O'Toole f28c0b650e Precise checking of CircleCI
Issue #64.
9 years ago
Philip O'Toole 534a1bd59b Unit test transactions at the store level 9 years ago
Philip O'Toole e88f97ed06 Support cluster-level leader checks for queries 9 years ago
Philip O Toole b282aede1b 'go fmt' fixes 9 years ago
Philip O Toole a653a5feb5 Skip multi-node test on CircleCI
Seems like there might be something special about their networking.
9 years ago
Philip O Toole 2e7ae59245 Complete multi-node replication test 9 years ago
Philip O Toole 347109e4bb More unit tests of store 9 years ago
Philip O Toole d0f689c07c Start adding store-level unit tests 9 years ago