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

Enable Vinyl cache in read view #3197

Open
locker opened this issue Feb 27, 2018 · 0 comments
Open

Enable Vinyl cache in read view #3197

locker opened this issue Feb 27, 2018 · 0 comments
Labels
Milestone

Comments

@locker
Copy link
Member

locker commented Feb 27, 2018

If SELECT is called from read view, it doesn't populate the tuple cache, which may degrade performance of certain workloads. The issue was exacerbated by commit a31c2c1: now any SELECT called outside transaction is immediately forced into read view. We should store all newest tuples in cache, even if they are read from read view.

@kostja kostja added this to the 1.10.1 milestone Mar 1, 2018
@locker locker self-assigned this Mar 4, 2018
locker added a commit that referenced this issue Mar 7, 2018
When scanning a secondary index, we actually track each tuple in the
transaction manager twice - as a part of the interval read from the
secondary index and as a point in the primary index when retrieving
the full tuple. This bloats the read set - instead of storing just one
interval for a range request, we also store each tuple returned by it,
which may count to thousands. There's no point in this extra tracking,
because whenever we change a tuple in the primary index, we also update
it in all secondary indexes. So let's remove it to save us some memory
and cpu cycles.

This is an alternative fix for #2534
It should also mitigate #3197
locker added a commit that referenced this issue Mar 7, 2018
When scanning a secondary index, we actually track each tuple in the
transaction manager twice - as a part of the interval read from the
secondary index and as a point in the primary index when retrieving
the full tuple. This bloats the read set - instead of storing just one
interval for a range request, we also store each tuple returned by it,
which may count to thousands. There's no point in this extra tracking,
because whenever we change a tuple in the primary index, we also update
it in all secondary indexes. So let's remove it to save us some memory
and cpu cycles.

This is an alternative fix for #2534
It should also mitigate #3197
@kostja kostja modified the milestones: 1.10.2, 2.1.0 May 30, 2018
@kostja kostja modified the milestones: 2.1.0, 2.1.1 Oct 25, 2018
@kyukhin kyukhin added the bug Something isn't working label Dec 3, 2018
@kyukhin kyukhin modified the milestones: 2.1.2, 2.2.0 Mar 11, 2019
@kyukhin kyukhin modified the milestones: 2.2.0, 2.3.0 Apr 1, 2019
@kyukhin kyukhin modified the milestones: 2.3.0, 2.4.0 Jul 22, 2019
@kyukhin kyukhin modified the milestones: 2.4.1, 2.5.1 Jan 23, 2020
@kyukhin kyukhin modified the milestones: 2.5.1, 2.6.1 Apr 10, 2020
@kyukhin kyukhin modified the milestones: 2.6.1, wishlist Oct 23, 2020
@locker locker removed their assignment Nov 3, 2021
@locker locker added feature A new functionality and removed bug Something isn't working labels Jun 22, 2022
@locker locker changed the title Vinyl cache does not work in read view Enable Vinyl cache in read view Jun 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants