Open sachinpkale opened 2 years ago
.si
).cfs
and .cfe
)Initial commit: https://github.com/sachinpkale/OpenSearch/commit/befeb345ea66485dc6cb7d8a577cc8796d1d93ee
This commit does the following:
flush
flow, after Lucene commit is called and Before delete on old translog is called, newly created segments are uploaded to S3.flush
method.What is missing:
Next steps:
@sachinpkale what happens during merges? (fe force merge) the segments should be replaced in the segment store, right?
what happens during merges? (fe force merge)
Yes, the new segment created by merge will be added and the original segments used in merge will be marked for deletion. We may not delete them immediately.
I have updated the What is missing
part in the initial commit with segment merges.
Current change uploads from primary as well as replica. The upload should happen only from the primary. Added in next steps.
@CEHENKLE Please create a feature branch feature/durability-enhancements
which will be used to run full test suite.
Pushed commit to upload segments only from primary: commit
Next Steps:
Pushed new commit:
segments_N
files. Thinking of using them to keep track of seq number of the uploaded commits.index_UUID/shard_id/primary_term/
Pushed new commit:
max_checkpoint
. Currently, it keeps track of max local processed checkpoint of index that is successfully uploaded to remote store.
Before finalizing design for the remote storage options , we want to perform some POCs. These POCs will help understand feasibility of some considerations that are mentioned in the feature proposal.
This is the first POC in the series and will focus on uploading segment files to the remote storage.
Goals
Identify code flow to upload the segments
flush
operation failure.Identify success criteria and failures that need to be handled
Sync vs Async pattern of segment upload and impact on performance