etcdserver/api/v3compactor/compactor.go
func New(
	lg *zap.Logger,
	mode string,
	retention time.Duration,
	rg RevGetter,
	c Compactable,
) (Compactor, error) {
	switch mode {
	case ModePeriodic:
		return newPeriodic(lg, clockwork.NewRealClock(), retention, rg, c), nil
	case ModeRevision:
		return newRevision(lg, clockwork.NewRealClock(), int64(retention), rg, c), nil
	default:
		return nil, fmt.Errorf("unsupported compaction mode %s", mode)
	}
}
func New(
	lg *zap.Logger,
	mode string,
	retention time.Duration,
	rg RevGetter,
	c Compactable,
) (Compactor, error) {
	switch mode {
	case ModePeriodic:
		return newPeriodic(lg, clockwork.NewRealClock(), retention, rg, c), nil
	case ModeRevision:
		return newRevision(lg, clockwork.NewRealClock(), int64(retention), rg, c), nil
	default:
		return nil, fmt.Errorf("unsupported compaction mode %s", mode)
	}
}
func New ( lg * zap . Logger , mode string , retention time . Duration , rg RevGetter , c Compactable , ) ( Compactor , error ) { switch mode { case ModePeriodic : return newPeriodic ( lg , clockwork . NewRealClock ( ) , retention , rg , c ) , nil case ModeRevision : return newRevision ( lg , clockwork . NewRealClock ( ) , int64 ( retention ) , rg , c ) , nil default : return nil , fmt . Errorf ( " " , mode ) } }
// New returns a new Compactor based on given "mode".
New returns a new Compactor based on given mode .