Fsync after writing global seq number in ExternalSstFileIngestionJob
Summary: Fsync after writing global sequence number to the ingestion file in ExternalSstFileIngestionJob. Otherwise the file metadata could be incorrect. Closes https://github.com/facebook/rocksdb/pull/3644 Differential Revision: D7373813 Pulled By: sagar0 fbshipit-source-id: 4da2c9e71a8beb5c08b4ac955f288ee1576358b8
This commit is contained in:
parent
4d51feab0b
commit
2e3d407778
@ -5,7 +5,7 @@
|
|||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
* Fsync after writing global seq number to the ingestion file in ExternalSstFileIngestionJob.
|
||||||
|
|
||||||
## 5.13.0 (3/20/2018)
|
## 5.13.0 (3/20/2018)
|
||||||
### Public API Change
|
### Public API Change
|
||||||
|
@ -510,6 +510,9 @@ Status ExternalSstFileIngestionJob::AssignGlobalSeqnoForIngestedFile(
|
|||||||
std::string seqno_val;
|
std::string seqno_val;
|
||||||
PutFixed64(&seqno_val, seqno);
|
PutFixed64(&seqno_val, seqno);
|
||||||
status = rwfile->Write(file_to_ingest->global_seqno_offset, seqno_val);
|
status = rwfile->Write(file_to_ingest->global_seqno_offset, seqno_val);
|
||||||
|
if (status.ok()) {
|
||||||
|
status = rwfile->Fsync();
|
||||||
|
}
|
||||||
if (status.ok()) {
|
if (status.ok()) {
|
||||||
file_to_ingest->assigned_seqno = seqno;
|
file_to_ingest->assigned_seqno = seqno;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user