Browse Source

ensure monotonic n.AppendAtNs

fix https://github.com/seaweedfs/seaweedfs/issues/3852
pull/3856/head
chrislu 2 years ago
parent
commit
9c8678ded9
  1. 9
      weed/storage/volume_write.go

9
weed/storage/volume_write.go

@ -157,7 +157,7 @@ func (v *Volume) doWriteRequest(n *needle.Needle, checkCookie bool) (offset uint
}
// append to dat file
n.AppendAtNs = uint64(time.Now().UnixNano())
n.AppendAtNs = max(uint64(time.Now().UnixNano()), v.lastAppendAtNs+1)
offset, size, _, err = n.Append(v.DataBackend, v.Version())
v.checkReadWriteError(err)
if err != nil {
@ -330,3 +330,10 @@ func (v *Volume) WriteNeedleBlob(needleId NeedleId, needleBlob []byte, size Size
return err
}
func max(x, y uint64) uint64 {
if x <= y {
return y
}
return x
}
Loading…
Cancel
Save