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

Random Read Perf Tuning - Token Cache #6884

Open
yaol7 opened this issue Sep 26, 2022 · 0 comments · May be fixed by #6885
Open

Random Read Perf Tuning - Token Cache #6884

yaol7 opened this issue Sep 26, 2022 · 0 comments · May be fixed by #6885

Comments

@yaol7
Copy link

yaol7 commented Sep 26, 2022

Is your feature request related to a problem? Please describe.
In the perf tuning of the query path in Psearch, it will read data from the Pravega stream with the specific EventPointer, namely random read. It's found that the random read is the bottleneck of the whole query path in Psearch. So, it's necessary to tune the perf of the random read.
The flame graph is collected in Psearch side (Pravega client side), it's found that there are some implementations can be further optimized.

  1. When the EventSegmentReader is initialized, it will init the DelegationTokenProvider and then fetch the latest token. This operation is time cost. Here is the flame graph snapshot.
    image

  2. other perf tuning will be created in another JIRA.

Describe the solution you'd like
For the time cost operation of EventSegmentReader, the solution is that the one SimpleCache<String, DelegationTokenProvider> is provided for every segment. When the client gets access to the same segment, it will use the DelegationTokenProvider from the cache to avoid the initialization.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant