feat(datanode): rotate all data partition raft log.#1000005968

Signed-off-by: Wu Huocheng <wuhuocheng@oppo.com>
This commit is contained in:
Wu Huocheng 2025-04-14 16:08:55 +08:00 committed by zhumingze1108
parent 22ca01df2f
commit 57d0b95284
5 changed files with 32 additions and 3 deletions

View File

@ -256,6 +256,9 @@ func (dp *DataPartition) ApplyRandomWrite(command []byte, raftApplyID uint64) (r
log.LogErrorf("[ApplyRandomWrite] ApplyID(%v) Partition(%v) unmarshal failed(%v)", raftApplyID, dp.partitionID, err)
return
}
if opItem.size == 0 || opItem.data == nil {
return
}
log.LogDebugf("[ApplyRandomWrite] ApplyID(%v) Partition(%v)_Extent(%v)_ExtentOffset(%v)_Size(%v)",
raftApplyID, dp.partitionID, opItem.extentID, opItem.offset, opItem.size)

View File

@ -926,6 +926,7 @@ func (s *DataNode) registerHandler() {
http.HandleFunc("/getRaftPeers", s.getRaftPeers)
http.HandleFunc("/setGOGC", s.setGOGC)
http.HandleFunc("/getGOGC", s.getGOGC)
http.HandleFunc("/triggerRaftLogRotate", s.triggerRaftLogRotate)
}
func (s *DataNode) startTCPService() (err error) {

View File

@ -868,3 +868,28 @@ func (s *DataNode) getGOGC(w http.ResponseWriter, r *http.Request) {
data := fmt.Sprintf("gogc value is %v", s.gogcValue)
s.buildSuccessResp(w, data)
}
func (s *DataNode) triggerRaftLogRotate(w http.ResponseWriter, r *http.Request) {
val, err := MarshalRandWriteRaftLog(proto.OpRandomWrite, 0, 0, 0, nil, 0)
if err != nil {
log.LogErrorf("action[triggerRaftLogRotate] marshal error %v", err)
s.buildFailureResp(w, http.StatusBadRequest, err.Error())
return
}
dataPartitions := s.space.getPartitions()
trigger := 0
for _, dp := range dataPartitions {
if !dp.raftPartition.IsRaftLeader() {
continue
}
_, err = dp.Submit(val)
if err != nil {
log.LogErrorf("action[triggerRaftLogRotate] submit error %v", err)
s.buildFailureResp(w, http.StatusBadRequest, err.Error())
return
}
trigger += 1
}
s.buildSuccessResp(w, fmt.Sprintf("trigger dp(%d) raft log rotate successfully.", trigger))
}

View File

@ -19,8 +19,8 @@ import "github.com/cubefs/cubefs/depends/tiglabs/raft/util"
const (
DefaultFileCacheCapacity = 2
DefaultFileSize = 32 * util.MB
MinFileSize = 1 * util.MB
MaxRotateInterval = 86400
MinFileSize = 128 * util.KB
MaxRotateInterval = 3600
DefaultSync = false
)

View File

@ -44,7 +44,7 @@ func openLogStorage(dir string, s *Storage) (*logEntryStorage, error) {
s: s,
dir: dir,
filesize: s.c.GetFileSize(),
rotateTime: timeutil.GetCurrentTimeUnix(),
rotateTime: timeutil.GetCurrentTimeUnix() - MaxRotateInterval,
nextFileSeq: 1,
}