Skip to content

Move key's headers check outside of eblob_fill_write_control_from_ram #165

@shaitan

Description

@shaitan

This check was added in 9685074 and it is intended to determine broken records and incongruity between index and blob.

This check should be moved outside of eblob_fill_write_control_from_ram because eblob_fill_write_control_from_ram is always called under global lock on b->lock and additional seek under this lock leads to degradation of response time.

Our load tests showed follow degradation:

quantile original v0.23.10 v0.23.10 with reverted 9685074
99% 82.0 ms 26.0 ms (-56.0)
98% 27.0 ms 16.0 ms (-11.0)
95% 26.0 ms 10.0 ms (-16.0)
90% 26.0 ms 7.0 ms (-19.0)
85% 21.0 ms 5.0 ms (-16.0)
80% 18.0 ms 3.0 ms (-15.0)
75% 15.0 ms 3.0 ms (-12.0)
50% 6.0 ms 2.0 ms (-4.0)

In both tests timeout on the client was set to 25 ms.

I will deal with this issue in the near future (1-2 weeks), but until then I'm ready to discuss the proposals where this check can be moved or how it can be transformed.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions