Skip to content

[NBS] Introduce blocks filter for mixed index #6390

Description

@vladstepanyuk

Read blocks transaction takes a lot of cpu time

Image

And if we look at flame graphs, we will see that mixed index reading takes a lot of CPU, but, on the other hand, mixed index is very sparse. We have approximately only 6% blocks in the mixed index, so most reads don't read any useful information.

Image

We can add bloom or compressed bit mask filter for mixed index.

I wrote prototype of this optimization and with randrw 4k load it shows such results:

partition tablet consumes less CPU time by 28%

Image

ReadBlocks Transaction ExecuteCPUTime and ReadBytes metrics

Image

and compressed bitmap version consumes only ~10mb of RAM for 512 GB disk. So it is very cheap.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions