Skip to content

[Feature Request] Bufferpools and memory management #18838

@abiesps

Description

@abiesps

Is your feature request related to a problem? Please describe

In continuation to discussion here, (#18833). We have found that having mmap works well in case of SSDs based deployments, however for slower storage devices mmap really transfers the underlying storage device latencies to query latencies. We found that a) mmap does synchronous reads on page faults and mmap also captures the carrier thread while using the virtual thread. Having better control on IO and caching has proved to be helpful in hiding higher disk seek latencies of slower storage devices.
Image

There is another use-case of buffer pool for index level encryption, which is parallely being discussed here (opensearch-project/opensearch-storage-encryption#25 (comment))

Describe the solution you'd like

We are proposing to provide an alternative to mmap directory in opensearch. We are proposing to build a buffer pool that can be used for managing the pages of the file without going to page-cache. This buffer pool should go hand in hand with direct io like directories.
At a high level, we can either build our own buffer pool using MemorySegment apis of java, or we can also use netty based buffer pools. In my experiments, I used netty based buffer-pools but I can see for index-level-encryption there is a memory segment based buffer pool implementation is in progress.

Related component

No response

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

Labels

StorageIssues and PRs relating to data and metadata storageenhancementEnhancement or improvement to existing feature or request

Type

No type

Projects

Status

🆕 New

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions