ruojieranyishen opened a new issue, #1560:
URL: https://github.com/apache/incubator-pegasus/issues/1560

   **Is your feature request related to a problem? Please describe:**
   
   In the production environment, Pegasus performs bulkload involving rocksdb 
ingestion. Since write_global_seqno is true, rocksdb will modify the 
`rocksdb.external_sst_file.global_seqno` field in the external sstable file 
during ingestion. The modified is sometimes inaccurate, which will cause 
rocksdb fail to read the external sstable file. This will cause rocksdb 
coredump.
   
   **Describe the feature you'd like:**
   <!-- A clear and concise description of what you want to happen. -->
   After research, I verified that write_global_seqno can be set to false.
   
   The following are conclusions:
   - `write_global_seqno=false` will give up modify the external sst file. 
`rocksdb.external_sst_file.global_seqno` will always be zero. The global seqno 
information is retained by **MANIFEST** (smallest_seqno and largest_seqno 
field), and no additional performance overhead will be generated. In rocksdb, 
the order of external files and internal files is still identified through 
global seqno.
   - `write_global_seqno=false` does not conflict with the ingest_behind 
function of bulkload. Read, write, and delete operations are performed 
normally. The sst file is no longer modified during the ingest process. Speed 
up the ingest speed and check the sst file through checksum.
   - **Disadvantages**: Not compatible with versions prior to rocksdb 5.16.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to