Documentation ¶
Index ¶
- Constants
- Variables
- func DefaultDialFunc(ctx context.Context, address string) (net.Conn, error)
- func DefaultLogFunc(l LogLevel, format string, a ...interface{})
- type Client
- func (c *Client) Add(ctx context.Context, node NodeInfo) error
- func (c *Client) Assign(ctx context.Context, id uint64, role NodeRole) error
- func (c *Client) Close() error
- func (c *Client) Cluster(ctx context.Context) ([]NodeInfo, error)
- func (c *Client) Dump(ctx context.Context, dbname string) ([]File, error)
- func (c *Client) Leader(ctx context.Context) (*NodeInfo, error)
- func (c *Client) Remove(ctx context.Context, id uint64) error
- func (c *Client) Transfer(ctx context.Context, id uint64) error
- type DatabaseNodeStore
- type DialFunc
- type File
- type InmemNodeStore
- type LogFunc
- type LogLevel
- type NodeInfo
- type NodeRole
- type NodeStore
- type NodeStoreOption
- type Option
Constants ¶
Node roles
const ( LogDebug = logging.Debug LogInfo = logging.Info LogWarn = logging.Warn LogError = logging.Error )
Available logging levels.
Variables ¶
var NewInmemNodeStore = protocol.NewInmemNodeStore
NewInmemNodeStore creates NodeStore which stores its data in-memory.
Functions ¶
func DefaultLogFunc ¶
DefaultLogFunc emits messages using the stdlib's logger.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client speaks the dqlite wire protocol.
func FindLeader ¶
FindLeader returns a Client connected to the current cluster leader, if any.
func (*Client) Add ¶
Add a node to a cluster.
The new node will have the role specified in node.Role. Note that if the desired role is Voter, the node being added must be online, since it will be granted voting rights only once it catches up with the leader's log.
func (*Client) Assign ¶ added in v1.3.0
Assign a role to a node.
Possible roles are:
- Voter: the node will replicate data and participate in quorum. - StandBy: the node will replicate data but won't participate in quorum. - Spare: the node won't replicate data and won't participate in quorum.
If the target node does not exist or has already the desired role, an error is returned.
func (*Client) Dump ¶
Dump the content of the database with the given name. Two files will be returned, the first is the main database file (which has the same name as the database), the second is the WAL file (which has the same name as the database plus the suffix "-wal").
type DatabaseNodeStore ¶
type DatabaseNodeStore struct {
// contains filtered or unexported fields
}
DatabaseNodeStore persists a list addresses of dqlite nodes in a SQL table.
func DefaultNodeStore ¶
func DefaultNodeStore(filename string) (*DatabaseNodeStore, error)
DefaultNodeStore creates a new NodeStore using the given filename to open a SQLite database, with default names for the schema, table and column parameters.
It also creates the table if it doesn't exist yet.
func NewNodeStore ¶
func NewNodeStore(db *sql.DB, schema, table, column string, options ...NodeStoreOption) *DatabaseNodeStore
NewNodeStore creates a new NodeStore.
type InmemNodeStore ¶
type InmemNodeStore = protocol.InmemNodeStore
InmemNodeStore keeps the list of target dqlite nodes in memory.
type NodeStore ¶
NodeStore is used by a dqlite client to get an initial list of candidate dqlite nodes that it can dial in order to find a leader dqlite node to use.
type NodeStoreOption ¶ added in v1.3.0
type NodeStoreOption func(*nodeStoreOptions)
Option that can be used to tweak node store parameters.
func WithNodeStoreWhereClause ¶ added in v1.3.0
func WithNodeStoreWhereClause(where string) NodeStoreOption
WithNodeStoreWhereClause configures the node store to append the given hard-coded where clause to the SELECT query used to fetch nodes. Only the clause itself must be given, without the "WHERE" prefix.
type Option ¶
type Option func(*options)
Option that can be used to tweak client parameters.
func WithDialFunc ¶
WithDialFunc sets a custom dial function for creating the client network connection.
func WithLogFunc ¶
WithLogFunc sets a custom log function. connection.