コード例 #1
0
ファイル: compress_command.go プロジェクト: jmptrader/esdb
func (c *CompressCommand) Apply(context raft.Context) (interface{}, error) {
	server := context.Server()
	db := server.Context().(*DB)

	db.Compress(c.Start, c.Stop)

	return new(interface{}), nil
}
コード例 #2
0
ファイル: events_command.go プロジェクト: jmptrader/esdb
func (c *EventsCommand) Apply(context raft.Context) (interface{}, error) {
	server := context.Server()
	db := server.Context().(*DB)

	index := context.CurrentIndex()

	err := db.WriteAll(index, c.Bodies, c.Indexes, c.Timestamp)

	if err == nil && db.Offset() > db.RotateThreshold {
		err = db.Rotate(index, context.CurrentTerm())
		if err != nil {
			log.Fatal(err)
		}
	}

	return new(interface{}), err
}