1
0
Fork 0

Support transactions from write queue

master
Philip O'Toole 2 years ago
parent a50a7be129
commit 64f7e05b0e

@ -173,6 +173,9 @@ type Config struct {
// Execute queues, if a batch size has not been reached.
WriteQueueTimeout time.Duration
// WriteQueueTx controls whether writes from the queue are done within a transaction.
WriteQueueTx bool
// CompressionSize sets request query size for compression attempt
CompressionSize int
@ -364,6 +367,7 @@ func ParseFlags(name, desc string, build *BuildInfo) (*Config, error) {
flag.StringVar(&config.RaftLogLevel, "raft-log-level", "INFO", "Minimum log level for Raft module")
flag.IntVar(&config.WriteQueueCap, "write-queue-capacity", 1024, "Write queue capacity")
flag.IntVar(&config.WriteQueueBatchSz, "write-queue-batch-size", 64, "Write queue batch size")
flag.BoolVar(&config.WriteQueueTx, "write-queue-tx", false, "Use a transaction when writing from queue")
flag.DurationVar(&config.WriteQueueTimeout, "write-queue-timeout", 100*time.Millisecond, "Write queue timeout")
flag.IntVar(&config.CompressionSize, "compression-size", 150, "Request query size for compression attempt")
flag.IntVar(&config.CompressionBatch, "compression-batch", 5, "Request batch threshold for compression attempt")

@ -258,6 +258,7 @@ func startHTTPService(cfg *Config, str *store.Store, cltr *cluster.Client, credS
s.DefaultQueueCap = cfg.WriteQueueCap
s.DefaultQueueBatchSz = cfg.WriteQueueBatchSz
s.DefaultQueueTimeout = cfg.WriteQueueTimeout
s.DefaultQueueTx = cfg.WriteQueueTx
s.BuildInfo = map[string]interface{}{
"commit": cmd.Commit,
"branch": cmd.Branch,

@ -253,6 +253,7 @@ type Service struct {
DefaultQueueCap int
DefaultQueueBatchSz int
DefaultQueueTimeout time.Duration
DefaultQueueTx bool
credentialStore CredentialStore
@ -1282,7 +1283,8 @@ func (s *Service) runQueue() {
case stmts := <-s.stmtQueue.C:
er := &command.ExecuteRequest{
Request: &command.Request{
Statements: stmts,
Statements: stmts,
Transaction: s.DefaultQueueTx,
},
}
for {

Loading…
Cancel
Save