Revisit roxie cache warming

Description

There are a few aspects of the cache warming that should be improved in the light of off-node storage:

  • The code to to ensure blocks are in the filecache does not explicitly control the size of data chunks being read. If the data is coming from a mounted blob storage that is likely to be inefficient. Better to explicitly read in 1/4MB chunks.

  • The code to prewarm indexes should read large chunks of memory and pass them to the prewarm function - which could directly use them. Likely to be much more efficient than lots of 8K reads.

  • Consider prewarming several files in parallel. May help if latency is a bigger issue than transfer speed.

Also, could the disk cache warming use splice(file, -> /dev/null) to avoid the data transfer into userspace? what do you think?

Update... I think I remember seeing this before that one of the arguments needs to be a pipe (hidden under the description of EINVAL). Not sure if we could still use it...

Conclusion

None

Activity

Show:
Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Components

Assignee

Reporter

Priority

Fix versions

Created August 1, 2022 at 9:39 AM
Updated April 19, 2023 at 12:57 PM
Resolved April 19, 2023 at 12:57 PM

Flag notifications