Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate throughput for multiple tables in state store committer lambda #3117

Open
patchwork01 opened this issue Aug 22, 2024 · 0 comments
Labels
parent-issue An issue that is or should be split into multiple sub-issues

Comments

@patchwork01
Copy link
Collaborator

patchwork01 commented Aug 22, 2024

Background

Related to:

When we added system tests for throughput of the state store committer in StateStoreCommitterThroughputST, we found that it's considerably reduced when we have 10 Sleeper tables.

Description

We'd like to find out why throughput is reduced so much for multiple tables, and see how we can minimise this.

Analysis

We can find more details of the behaviour of throughput on the lambda, since right now we only get the raw throughput per table. We can also look at possible causes.

There are a number of possible causes for this:

  • Throughput is limited for the FIFO queue
  • Throughput is limited for the Lambda event source
  • Multiple tables are processed by a single lambda invocation too often
  • Lambda instances spend time coming up to date as tables are swapped between them
  • Lambda instances spend time waiting for a retry adding a transaction as tables are swapped between them

Throughput limited

We could enable high throughput for SQS FIFO:

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html

We've split out this issue:

Multiple tables processed by a single lambda invocation

We could log out statistics for how many tables were processed by a lambda invocation, since we can already get that information from QueryStateStoreCommitterLogs and StateStoreCommitterRuns. We could also assert on that in StateStoreCommitterThroughputST.

We've split out this issue:

Spending extra time when tables are swapped

We already log out how much time is spent coming up to date in TransactionLogHead. We could add processing of that in QueryStateStoreCommitterLogs and ReadStateStoreCommitterLogs. We could also log more information about the time spent waiting.

We've split out this issue:

This is also related:

@patchwork01 patchwork01 added this to the 0.25.0 milestone Aug 22, 2024
@patchwork01 patchwork01 added parent-issue An issue that is or should be split into multiple sub-issues and removed statestore-module labels Aug 27, 2024
@patchwork01 patchwork01 removed this from the 0.25.0 milestone Aug 27, 2024
@patchwork01 patchwork01 changed the title Throughput for multiple tables in state store committer Investigate throughput for multiple tables in state store committer Nov 12, 2024
@patchwork01 patchwork01 changed the title Investigate throughput for multiple tables in state store committer Investigate throughput for multiple tables in state store committer lambda Nov 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
parent-issue An issue that is or should be split into multiple sub-issues
Projects
None yet
Development

No branches or pull requests

1 participant