lib/logstorage: consistently use nsecsPerDay constant and remove nsecPerDay constant

This commit is contained in:
Aliaksandr Valialkin 2024-09-06 16:17:04 +02:00
parent 258ccfb953
commit 0205170409
No known key found for this signature in database
GPG key ID: 52C003EE2BCDB9EB
4 changed files with 15 additions and 17 deletions

View file

@ -1644,8 +1644,8 @@ func getDayRangeArg(lex *lexer) (int64, string, error) {
if offset < 0 { if offset < 0 {
offset = 0 offset = 0
} }
if offset >= nsecPerDay { if offset >= nsecsPerDay {
offset = nsecPerDay - 1 offset = nsecsPerDay - 1
} }
return offset, argStr, nil return offset, argStr, nil
} }

View file

@ -200,8 +200,8 @@ func (ptw *partitionWrapper) decRef() {
} }
func (ptw *partitionWrapper) canAddAllRows(lr *LogRows) bool { func (ptw *partitionWrapper) canAddAllRows(lr *LogRows) bool {
minTimestamp := ptw.day * nsecPerDay minTimestamp := ptw.day * nsecsPerDay
maxTimestamp := minTimestamp + nsecPerDay - 1 maxTimestamp := minTimestamp + nsecsPerDay - 1
for _, ts := range lr.timestamps { for _, ts := range lr.timestamps {
if ts < minTimestamp || ts > maxTimestamp { if ts < minTimestamp || ts > maxTimestamp {
return false return false
@ -286,7 +286,7 @@ func MustOpenStorage(path string, cfg *StorageConfig) *Storage {
if err != nil { if err != nil {
logger.Panicf("FATAL: cannot parse partition filename %q at %q; it must be in the form YYYYMMDD: %s", fname, partitionsPath, err) logger.Panicf("FATAL: cannot parse partition filename %q at %q; it must be in the form YYYYMMDD: %s", fname, partitionsPath, err)
} }
day := t.UTC().UnixNano() / nsecPerDay day := t.UTC().UnixNano() / nsecsPerDay
partitionPath := filepath.Join(partitionsPath, fname) partitionPath := filepath.Join(partitionsPath, fname)
pt := mustOpenPartition(s, partitionPath) pt := mustOpenPartition(s, partitionPath)
@ -441,11 +441,11 @@ func (s *Storage) watchMaxDiskSpaceUsage() {
} }
func (s *Storage) getMinAllowedDay() int64 { func (s *Storage) getMinAllowedDay() int64 {
return time.Now().UTC().Add(-s.retention).UnixNano() / nsecPerDay return time.Now().UTC().Add(-s.retention).UnixNano() / nsecsPerDay
} }
func (s *Storage) getMaxAllowedDay() int64 { func (s *Storage) getMaxAllowedDay() int64 {
return time.Now().UTC().Add(s.futureRetention).UnixNano() / nsecPerDay return time.Now().UTC().Add(s.futureRetention).UnixNano() / nsecsPerDay
} }
// MustClose closes s. // MustClose closes s.
@ -514,11 +514,11 @@ func (s *Storage) MustAddRows(lr *LogRows) {
maxAllowedDay := s.getMaxAllowedDay() maxAllowedDay := s.getMaxAllowedDay()
m := make(map[int64]*LogRows) m := make(map[int64]*LogRows)
for i, ts := range lr.timestamps { for i, ts := range lr.timestamps {
day := ts / nsecPerDay day := ts / nsecsPerDay
if day < minAllowedDay { if day < minAllowedDay {
rf := RowFormatter(lr.rows[i]) rf := RowFormatter(lr.rows[i])
tsf := TimeFormatter(ts) tsf := TimeFormatter(ts)
minAllowedTsf := TimeFormatter(minAllowedDay * nsecPerDay) minAllowedTsf := TimeFormatter(minAllowedDay * nsecsPerDay)
tooSmallTimestampLogger.Warnf("skipping log entry with too small timestamp=%s; it must be bigger than %s according "+ tooSmallTimestampLogger.Warnf("skipping log entry with too small timestamp=%s; it must be bigger than %s according "+
"to the configured -retentionPeriod=%dd. See https://docs.victoriametrics.com/victorialogs/#retention ; "+ "to the configured -retentionPeriod=%dd. See https://docs.victoriametrics.com/victorialogs/#retention ; "+
"log entry: %s", &tsf, &minAllowedTsf, durationToDays(s.retention), &rf) "log entry: %s", &tsf, &minAllowedTsf, durationToDays(s.retention), &rf)
@ -528,7 +528,7 @@ func (s *Storage) MustAddRows(lr *LogRows) {
if day > maxAllowedDay { if day > maxAllowedDay {
rf := RowFormatter(lr.rows[i]) rf := RowFormatter(lr.rows[i])
tsf := TimeFormatter(ts) tsf := TimeFormatter(ts)
maxAllowedTsf := TimeFormatter(maxAllowedDay * nsecPerDay) maxAllowedTsf := TimeFormatter(maxAllowedDay * nsecsPerDay)
tooBigTimestampLogger.Warnf("skipping log entry with too big timestamp=%s; it must be smaller than %s according "+ tooBigTimestampLogger.Warnf("skipping log entry with too big timestamp=%s; it must be smaller than %s according "+
"to the configured -futureRetention=%dd; see https://docs.victoriametrics.com/victorialogs/#retention ; "+ "to the configured -futureRetention=%dd; see https://docs.victoriametrics.com/victorialogs/#retention ; "+
"log entry: %s", &tsf, &maxAllowedTsf, durationToDays(s.futureRetention), &rf) "log entry: %s", &tsf, &maxAllowedTsf, durationToDays(s.futureRetention), &rf)
@ -553,8 +553,6 @@ func (s *Storage) MustAddRows(lr *LogRows) {
var tooSmallTimestampLogger = logger.WithThrottler("too_small_timestamp", 5*time.Second) var tooSmallTimestampLogger = logger.WithThrottler("too_small_timestamp", 5*time.Second)
var tooBigTimestampLogger = logger.WithThrottler("too_big_timestamp", 5*time.Second) var tooBigTimestampLogger = logger.WithThrottler("too_big_timestamp", 5*time.Second)
const nsecPerDay = 24 * 3600 * 1e9
// TimeFormatter implements fmt.Stringer for timestamp in nanoseconds // TimeFormatter implements fmt.Stringer for timestamp in nanoseconds
type TimeFormatter int64 type TimeFormatter int64
@ -582,7 +580,7 @@ func (s *Storage) getPartitionForDay(day int64) *partitionWrapper {
} }
if ptw == nil { if ptw == nil {
// Missing partition for the given day. Create it. // Missing partition for the given day. Create it.
fname := time.Unix(0, day*nsecPerDay).UTC().Format(partitionNameFormat) fname := time.Unix(0, day*nsecsPerDay).UTC().Format(partitionNameFormat)
partitionPath := filepath.Join(s.path, partitionsDirname, fname) partitionPath := filepath.Join(s.path, partitionsDirname, fname)
mustCreatePartition(partitionPath) mustCreatePartition(partitionPath)

View file

@ -673,12 +673,12 @@ func (s *Storage) search(workersCount int, so *genericSearchOptions, stopCh <-ch
// Select partitions according to the selected time range // Select partitions according to the selected time range
s.partitionsLock.Lock() s.partitionsLock.Lock()
ptws := s.partitions ptws := s.partitions
minDay := so.minTimestamp / nsecPerDay minDay := so.minTimestamp / nsecsPerDay
n := sort.Search(len(ptws), func(i int) bool { n := sort.Search(len(ptws), func(i int) bool {
return ptws[i].day >= minDay return ptws[i].day >= minDay
}) })
ptws = ptws[n:] ptws = ptws[n:]
maxDay := so.maxTimestamp / nsecPerDay maxDay := so.maxTimestamp / nsecsPerDay
n = sort.Search(len(ptws), func(i int) bool { n = sort.Search(len(ptws), func(i int) bool {
return ptws[i].day > maxDay return ptws[i].day > maxDay
}) })

View file

@ -78,10 +78,10 @@ func TestStorageMustAddRows(t *testing.T) {
s = MustOpenStorage(path, cfg) s = MustOpenStorage(path, cfg)
lr = newTestLogRows(3, 10, 0) lr = newTestLogRows(3, 10, 0)
now := time.Now().UTC().UnixNano() - int64(len(lr.timestamps)/2)*nsecPerDay now := time.Now().UTC().UnixNano() - int64(len(lr.timestamps)/2)*nsecsPerDay
for i := range lr.timestamps { for i := range lr.timestamps {
lr.timestamps[i] = now lr.timestamps[i] = now
now += nsecPerDay now += nsecsPerDay
} }
totalRowsCount += uint64(len(lr.timestamps)) totalRowsCount += uint64(len(lr.timestamps))
s.MustAddRows(lr) s.MustAddRows(lr)