Documentation

Overview

    Package compactor implements automated policies for compacting etcd's mvcc storage.

    Index

    Constants

    View Source
    const (
    	ModePeriodic = "periodic"
    	ModeRevision = "revision"
    )

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type Compactable

    type Compactable interface {
    	Compact(ctx context.Context, r *pb.CompactionRequest) (*pb.CompactionResponse, error)
    }

    type Compactor

    type Compactor interface {
    	// Run starts the main loop of the compactor in background.
    	// Use Stop() to halt the loop and release the resource.
    	Run()
    	// Stop halts the main loop of the compactor.
    	Stop()
    	// Pause temporally suspend the compactor not to run compaction. Resume() to unpose.
    	Pause()
    	// Resume restarts the compactor suspended by Pause().
    	Resume()
    }

      Compactor purges old log from the storage periodically.

      func New

      func New(mode string, retention time.Duration, rg RevGetter, c Compactable) (Compactor, error)

      type Periodic

      type Periodic struct {
      	// contains filtered or unexported fields
      }

        Periodic compacts the log by purging revisions older than the configured retention time.

        func NewPeriodic

        func NewPeriodic(h time.Duration, rg RevGetter, c Compactable) *Periodic

          NewPeriodic creates a new instance of Periodic compactor that purges the log older than h Duration.

          func (*Periodic) Pause

          func (t *Periodic) Pause()

            Pause pauses periodic compactor.

            func (*Periodic) Resume

            func (t *Periodic) Resume()

              Resume resumes periodic compactor.

              func (*Periodic) Run

              func (t *Periodic) Run()

                Run runs periodic compactor.

                func (*Periodic) Stop

                func (t *Periodic) Stop()

                  Stop stops periodic compactor.

                  type RevGetter

                  type RevGetter interface {
                  	Rev() int64
                  }

                  type Revision

                  type Revision struct {
                  	// contains filtered or unexported fields
                  }

                    Revision compacts the log by purging revisions older than the configured reivison number. Compaction happens every 5 minutes.

                    func NewRevision

                    func NewRevision(retention int64, rg RevGetter, c Compactable) *Revision

                      NewRevision creates a new instance of Revisonal compactor that purges the log older than retention revisions from the current revision.

                      func (*Revision) Pause

                      func (t *Revision) Pause()

                        Pause pauses revision-based compactor.

                        func (*Revision) Resume

                        func (t *Revision) Resume()

                          Resume resumes revision-based compactor.

                          func (*Revision) Run

                          func (t *Revision) Run()

                            Run runs revision-based compactor.

                            func (*Revision) Stop

                            func (t *Revision) Stop()

                              Stop stops revision-based compactor.