-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Implement prototype remote store directory/index input for search #7431
Comments
Issue description: The remote-backed storage feature has implemented classes like RemoteSegmentStoreDirectory and RemoteIndexInput. There is some overlap as these classes must also understand the remote segment structure and metadata. Part of this prototype is to figure out how the pieces fit together, but particularly at the IndexInput level there will be distinct implementations as the remote search piece is built around on-demand partial file fetching, whereas the pieces used in the write path are designed to copy entire files to/and from the remote object store. |
High-level Design In the case of Searchable Snapshots, FileInfo class (part of BlobStoreIndexShardSnapshot class) contains the metadata for each segment/data file like file name, part size etc. The FileInfo object is used to make an object of BlobFetchRequest that is helpful in fetching/downloading the blocks of data from the remote store during the read path. In current flow of remote store upload, there is a listener registered for each refresh, that takes care of uploading/updating the metadata of each shard to the remote store. Current metadata is stored under a RemoteDirectory:
Create a new Directory - RemoteSearchDirectory and new IndexInput inheritor of OnDemandBlockIndexInput - OnDemandBlockSearchIndexInput Initialization of the directory Upload/Update/Delete of metadata to the directory Content of metadata file Read/Loading the metadata file in the directory End to end flow for testing |
Draft PR: #7417 |
No description provided.
The text was updated successfully, but these errors were encountered: