fix: improve performance (#4300)

## Note

This release requires a setup step to fully improve performance.
Be sure to start ZITADEL with an appropriate command (zitadel start-from-init / start-from-setup)

## Changes

- fix: only run projection scheduler on active instances
- fix: set default for concurrent instances of projections to 1 (for scheduling)
- fix: create more indexes on eventstore.events table
- fix: get current sequence for token check (improve reread performance)
This commit is contained in:
Livio Spring
2022-09-02 16:05:13 +02:00
committed by GitHub
parent f0250a3fdb
commit 5aa91ad105
12 changed files with 136 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ import (
"math"
"reflect"
"testing"
"time"
"github.com/zitadel/zitadel/internal/database"
"github.com/zitadel/zitadel/internal/errors"
@@ -86,6 +87,13 @@ func testSetResourceOwner(resourceOwner string) func(*SearchQueryBuilder) *Searc
}
}
func testSetCreationDateAfter(date time.Time) func(*SearchQuery) *SearchQuery {
return func(query *SearchQuery) *SearchQuery {
query = query.CreationDateAfter(date)
return query
}
}
func testSetSortOrder(asc bool) func(*SearchQueryBuilder) *SearchQueryBuilder {
return func(query *SearchQueryBuilder) *SearchQueryBuilder {
if asc {
@@ -224,6 +232,7 @@ func TestSearchQuerybuilderSetters(t *testing.T) {
}
func TestSearchQuerybuilderBuild(t *testing.T) {
testNow := time.Now()
type args struct {
columns Columns
setters []func(*SearchQueryBuilder) *SearchQueryBuilder
@@ -648,6 +657,34 @@ func TestSearchQuerybuilderBuild(t *testing.T) {
},
},
},
{
name: "filter aggregate type, instanceID and creation date after",
args: args{
columns: ColumnsEvent,
setters: []func(*SearchQueryBuilder) *SearchQueryBuilder{
testAddQuery(
testSetAggregateTypes("user"),
testSetCreationDateAfter(testNow),
),
},
instanceID: "instanceID",
},
res: res{
isErr: nil,
query: &repository.SearchQuery{
Columns: repository.ColumnsEvent,
Desc: false,
Limit: 0,
Filters: [][]*repository.Filter{
{
repository.NewFilter(repository.FieldAggregateType, repository.AggregateType("user"), repository.OperationEquals),
repository.NewFilter(repository.FieldCreationDate, testNow, repository.OperationGreater),
repository.NewFilter(repository.FieldInstanceID, "instanceID", repository.OperationEquals),
},
},
},
},
},
{
name: "column invalid",
args: args{