mirror of
https://github.com/cubefs/cubefs.git
synced 2026-08-02 02:00:56 +00:00
feat(datanode): rotate all data partition raft log.#1000005968
Signed-off-by: Wu Huocheng <wuhuocheng@oppo.com>
This commit is contained in:
parent
22ca01df2f
commit
57d0b95284
@ -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)
|
||||
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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))
|
||||
}
|
||||
|
||||
@ -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
|
||||
)
|
||||
|
||||
|
||||
@ -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,
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user