[performance] cached oauth database types (#2838)

* update token + client code to use struct caches

* add code comments

* slight tweak to default mem ratios

* fix envparsing

* add appropriate invalidate hooks

* update the tokenstore sweeping function to rely on caches

* update to use PutClient()

* add ClientID to list of token struct indices
This commit is contained in:
kim
2024-04-15 14:22:21 +01:00
committed by GitHub
parent 8b30709791
commit f79d50b9b2
18 changed files with 428 additions and 67 deletions

View File

@@ -35,4 +35,40 @@ type Application interface {
// DeleteApplicationByClientID deletes the application with corresponding client_id value from the database.
DeleteApplicationByClientID(ctx context.Context, clientID string) error
// GetClientByID ...
GetClientByID(ctx context.Context, id string) (*gtsmodel.Client, error)
// PutClient ...
PutClient(ctx context.Context, client *gtsmodel.Client) error
// DeleteClientByID ...
DeleteClientByID(ctx context.Context, id string) error
// GetAllTokens ...
GetAllTokens(ctx context.Context) ([]*gtsmodel.Token, error)
// GetTokenByCode ...
GetTokenByCode(ctx context.Context, code string) (*gtsmodel.Token, error)
// GetTokenByAccess ...
GetTokenByAccess(ctx context.Context, access string) (*gtsmodel.Token, error)
// GetTokenByRefresh ...
GetTokenByRefresh(ctx context.Context, refresh string) (*gtsmodel.Token, error)
// PutToken ...
PutToken(ctx context.Context, token *gtsmodel.Token) error
// DeleteTokenByID ...
DeleteTokenByID(ctx context.Context, id string) error
// DeleteTokenByCode ...
DeleteTokenByCode(ctx context.Context, code string) error
// DeleteTokenByAccess ...
DeleteTokenByAccess(ctx context.Context, access string) error
// DeleteTokenByRefresh ...
DeleteTokenByRefresh(ctx context.Context, refresh string) error
}