1
0
Fork 0

182 Commits (231b99b1a0e47b2e3d8391fd5ce90a007183f71b)

Author SHA1 Message Date
Philip O'Toole f81ef9024e Add Raft log size on disk to status 4 years ago
Philip O'Toole e6e8ef36d2 Fix Snapshot test
If the snapshot count didn't change, the test didn't actually fail.
4 years ago
Philip O'Toole c4a89ede8d Add helper function for Raft log size 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 9c4758ade7 Add comment 5 years ago
Philip O'Toole a1d0607fcd Sleep 1s so freshness interval passes 5 years ago
wangfenjin 3de2e675ba add strong level test
Change-Id: Ib91ffb22807993ffb7743b7fe7d0b41a62d0e696
5 years ago
wangfenjin 9c4151c37b move comment down
Change-Id: I2f8c435adab5e1c46da2e6b91205ad4df850decc
5 years ago
wangfenjin 9c295ca704 check level before freshness
Change-Id: I6d736ad09eac9f003f087adaa9c1f51691fd5c69
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 abb7772105 Support leader freshness with None consistency
This change allows the read request to specify the maximum time the node
receiving the request may have last heard from the cluster leader. It
only applies to a read consistency selection of None.
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 9d595e2ead ABL 5 years ago
Philip O'Toole e0cf01cefc Protect against possible nil pointer 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 7352c376c7
Don't ignore Join error, actually return it
Clearly a typo.
5 years ago
Philip O'Toole 085d2d23d8 ABL 5 years ago
Philip O'Toole 0b8cd8536f Remove apparently duplicated code 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 ccca1ecfa9 Fix DSN key in Store status output 5 years ago
Philip O'Toole d47808a26b Add expvar stats to Store 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 efec4d4e42 Return redirect if remove on follower
Fixes issue #391.
7 years ago
Philip O'Toole b5b2cb21db Log Store directory path on startup 7 years ago
Philip O Toole 6bbdc88c1d ABL
Always be linting.
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 303be73dcb Add missing Store params to diagnostics 7 years ago
Philip O Toole a59e23cae0 Comment some unit tests 8 years ago
Philip O'Toole 8f2d8e8aa0 Copy JSON peers decode functionality from Raft
The main rqlite code needs this logic to check if the Discovery Service
should even be accessed. This code makes assumptions about how the Raft
module works, which is subject to change. The new unit tests should
capture that.
8 years ago
Philip O'Toole 2617962f5f Typo 8 years ago
WanliTian 4cb5035172 remove store.readPeersJSON 8 years ago
Philip O Toole aa5c946a40 Linting 8 years ago
Philip O'Toole 851f486ff8 Make waiting for logs optional 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 4b6c936d53 Fix comment typos 8 years ago
Philip O Toole ae0d119d83 Allow Raft Apply timeout to be configurable 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 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
Philip O Toole 098578bda8 Clarify guarantees of some functions 8 years ago
Philip O Toole c2ab24378c Lint fixes 8 years ago
Philip O Toole 2fb99e5b20 Use Store logger everywhere in Store 8 years ago
Tycho Andersen dc2128d02a add a raw snapshotting API
This allows us to grab a raw snapshot of the databse.

v2: s/RawDBSnapshot/Database, remove reference to raft from the comment.
v3: add a leader arg to Database to do a leader check
v4: fix doc string.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
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 7ac3450ab2 Suport observer deregistration 8 years ago
Tycho Andersen aa47089a32 expose raft's observer API via store
Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
8 years ago