fix: query optimisations (#1949)

* index on events for changes

* check for current sequence before filter events
This commit is contained in:
Silvan
2021-07-01 16:21:24 +02:00
committed by GitHub
parent 2037d7d41c
commit 15ae8be3c3
8 changed files with 91 additions and 15 deletions

View File

@@ -47,7 +47,13 @@ func (repo *ProjectRepo) ProjectByID(ctx context.Context, id string) (*proj_mode
project = new(model.ProjectView)
}
events, esErr := repo.getProjectEvents(ctx, id, project.Sequence)
sequence := project.Sequence
currentSequence, err := repo.View.GetLatestProjectSequence()
if err == nil {
sequence = currentSequence.CurrentSequence
}
events, esErr := repo.getProjectEvents(ctx, id, sequence)
if caos_errs.IsNotFound(viewErr) && len(events) == 0 {
return nil, caos_errs.ThrowNotFound(nil, "EVENT-8yfKu", "Errors.Project.NotFound")
}

View File

@@ -7,7 +7,7 @@ import (
"github.com/golang/protobuf/ptypes"
"github.com/caos/zitadel/internal/domain"
"github.com/caos/zitadel/internal/eventstore/v1"
v1 "github.com/caos/zitadel/internal/eventstore/v1"
"github.com/caos/zitadel/internal/eventstore/v1/models"
usr_view "github.com/caos/zitadel/internal/user/repository/view"
@@ -41,7 +41,14 @@ func (repo *UserRepo) UserByID(ctx context.Context, id string) (*usr_model.UserV
if caos_errs.IsNotFound(viewErr) {
user = new(model.UserView)
}
events, esErr := repo.getUserEvents(ctx, id, user.Sequence)
sequence := user.Sequence
currentSequence, err := repo.View.GetLatestUserSequence()
if err == nil {
sequence = currentSequence.CurrentSequence
}
events, esErr := repo.getUserEvents(ctx, id, sequence)
if caos_errs.IsNotFound(viewErr) && len(events) == 0 {
return nil, caos_errs.ThrowNotFound(nil, "EVENT-Lsoj7", "Errors.User.NotFound")
}