Skip to content

Commit

Permalink
Use search attribute type map in visibility archival
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelSnowden committed May 9, 2023
1 parent 89f707b commit 07bc8b2
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 177 deletions.
30 changes: 21 additions & 9 deletions service/history/archival/archiver.go
Expand Up @@ -36,6 +36,7 @@ import (
commonpb "go.temporal.io/api/common/v1"
enumspb "go.temporal.io/api/enums/v1"
"go.temporal.io/api/serviceerror"
"go.temporal.io/server/common/persistence/visibility/manager"
"go.uber.org/multierr"

archiverspb "go.temporal.io/server/api/archiver/v1"
Expand Down Expand Up @@ -92,10 +93,12 @@ type (
}

archiver struct {
archiverProvider provider.ArchiverProvider
metricsHandler metrics.Handler
logger log.Logger
rateLimiter quotas.RateLimiter
archiverProvider provider.ArchiverProvider
metricsHandler metrics.Handler
logger log.Logger
rateLimiter quotas.RateLimiter
searchAttributeProvider searchattribute.Provider
visibilityManager manager.VisibilityManager
}
)

Expand All @@ -110,12 +113,16 @@ func NewArchiver(
logger log.Logger,
metricsHandler metrics.Handler,
rateLimiter quotas.RateLimiter,
searchAttributeProvider searchattribute.Provider,
visibilityManger manager.VisibilityManager,
) Archiver {
return &archiver{
archiverProvider: archiverProvider,
metricsHandler: metricsHandler.WithTags(metrics.OperationTag(metrics.ArchiverClientScope)),
logger: logger,
rateLimiter: rateLimiter,
archiverProvider: archiverProvider,
metricsHandler: metricsHandler.WithTags(metrics.OperationTag(metrics.ArchiverClientScope)),
logger: logger,
rateLimiter: rateLimiter,
searchAttributeProvider: searchAttributeProvider,
visibilityManager: visibilityManger,
}
}

Expand Down Expand Up @@ -212,8 +219,13 @@ func (a *archiver) archiveVisibility(ctx context.Context, request *Request, logg
return err
}

saTypeMap, err := a.searchAttributeProvider.GetSearchAttributes(a.visibilityManager.GetIndexName(), false)
if err != nil {
return err
}

// It is safe to pass nil to typeMap here because search attributes type must be embedded by caller.
searchAttributes, err := searchattribute.Stringify(request.SearchAttributes, nil)
searchAttributes, err := searchattribute.Stringify(request.SearchAttributes, &saTypeMap)
if err != nil {
return err
}
Expand Down

0 comments on commit 07bc8b2

Please sign in to comment.