Merge pull request #4964 from aduffeck/rescan-less-aggressively

Reindex less aggressively
This commit is contained in:
Michael Barz
2022-11-03 14:11:53 +01:00
committed by GitHub
6 changed files with 13 additions and 10 deletions

View File

@@ -18,7 +18,9 @@ type Config struct {
GRPC GRPCConfig `yaml:"grpc"`
Datapath string `yaml:"data_path" env:"SEARCH_DATA_PATH" desc:"The directory where the filesystem storage will store search data. If not definied, the root directory derives from $OCIS_BASE_DATA_PATH:/search."`
Datapath string `yaml:"data_path" env:"SEARCH_DATA_PATH" desc:"The directory where the filesystem storage will store search data. If not definied, the root directory derives from $OCIS_BASE_DATA_PATH:/search."`
DebounceDuration int `yaml:"debounce_duration" env:"SEARCH_REINDEX_DEBOUNCE_DURATION" desc:"The duration in milliseconds the reindex debouncer waits before triggering a reindex of a space that was modified."`
Reva *shared.Reva `yaml:"reva"`
GRPCClientTLS *shared.GRPCClientTLS `yaml:"grpc_client_tls"`
Events Events `yaml:"events"`

View File

@@ -29,8 +29,9 @@ func DefaultConfig() *config.Config {
Service: config.Service{
Name: "search",
},
Datapath: path.Join(defaults.BaseDataPath(), "search"),
Reva: shared.DefaultRevaConfig(),
Datapath: path.Join(defaults.BaseDataPath(), "search"),
DebounceDuration: 1000,
Reva: shared.DefaultRevaConfig(),
Events: config.Events{
Endpoint: "127.0.0.1:9233",
Cluster: "ocis-cluster",

View File

@@ -84,7 +84,7 @@ var _ = Describe("Searchprovider", func() {
Describe("New", func() {
It("returns a new instance", func() {
p = provider.New(gwClient, indexClient, "", eventsChan, logger)
p = provider.New(gwClient, indexClient, "", eventsChan, 1000, logger)
Expect(p).ToNot(BeNil())
})
})

View File

@@ -79,7 +79,7 @@ func (s MatchArray) Less(i, j int) bool {
return s[i].Score > s[j].Score
}
func New(gwClient gateway.GatewayAPIClient, indexClient search.IndexClient, machineAuthAPIKey string, eventsChan <-chan interface{}, logger log.Logger) *Provider {
func New(gwClient gateway.GatewayAPIClient, indexClient search.IndexClient, machineAuthAPIKey string, eventsChan <-chan interface{}, debounceDuration int, logger log.Logger) *Provider {
p := &Provider{
gwClient: gwClient,
indexClient: indexClient,
@@ -87,7 +87,7 @@ func New(gwClient gateway.GatewayAPIClient, indexClient search.IndexClient, mach
logger: logger,
}
p.indexSpaceDebouncer = NewSpaceDebouncer(50*time.Millisecond, func(id *provider.StorageSpaceId, userID *user.UserId) {
p.indexSpaceDebouncer = NewSpaceDebouncer(time.Duration(debounceDuration)*time.Millisecond, func(id *provider.StorageSpaceId, userID *user.UserId) {
err := p.doIndexSpace(context.Background(), id, userID)
if err != nil {
p.logger.Error().Err(err).Interface("spaceID", id).Interface("userID", userID).Msg("error while indexing a space")
@@ -109,7 +109,7 @@ func New(gwClient gateway.GatewayAPIClient, indexClient search.IndexClient, mach
// NewWithDebouncer returns a new provider with a customer index space debouncer
func NewWithDebouncer(gwClient gateway.GatewayAPIClient, indexClient search.IndexClient, machineAuthAPIKey string, eventsChan <-chan interface{}, logger log.Logger, debouncer *SpaceDebouncer) *Provider {
p := New(gwClient, indexClient, machineAuthAPIKey, eventsChan, logger)
p := New(gwClient, indexClient, machineAuthAPIKey, eventsChan, 0, logger)
p.indexSpaceDebouncer = debouncer
return p
}

View File

@@ -73,7 +73,7 @@ var _ = Describe("Searchprovider", func() {
gwClient = &cs3mocks.GatewayAPIClient{}
indexClient = &mocks.IndexClient{}
p = provider.New(gwClient, indexClient, "", eventsChan, logger)
p = provider.New(gwClient, indexClient, "", eventsChan, 1000, logger)
gwClient.On("Authenticate", mock.Anything, mock.Anything).Return(&gateway.AuthenticateResponse{
Status: status.NewOK(ctx),
@@ -94,7 +94,7 @@ var _ = Describe("Searchprovider", func() {
Describe("New", func() {
It("returns a new instance", func() {
p := provider.New(gwClient, indexClient, "", eventsChan, logger)
p := provider.New(gwClient, indexClient, "", eventsChan, 1000, logger)
Expect(p).ToNot(BeNil())
})
})

View File

@@ -93,7 +93,7 @@ func NewHandler(opts ...Option) (searchsvc.SearchProviderHandler, error) {
logger.Fatal().Err(err).Str("addr", cfg.Reva.Address).Msg("could not get reva client")
}
provider := searchprovider.New(gwclient, index, cfg.MachineAuthAPIKey, evts, logger)
provider := searchprovider.New(gwclient, index, cfg.MachineAuthAPIKey, evts, cfg.DebounceDuration, logger)
return &Service{
id: cfg.GRPC.Namespace + "." + cfg.Service.Name,