Small optimizations

Signed-off-by: Derek Collison <derek@nats.io>
This commit is contained in:
Derek Collison
2023-01-28 11:45:47 -08:00
parent bf49f23bb1
commit e1a2da8d85
2 changed files with 20 additions and 18 deletions

View File

@@ -4288,26 +4288,29 @@ func (fs *fileStore) State() StreamState {
state.NumSubjects = fs.numSubjects()
state.Deleted = nil // make sure.
cur := fs.state.FirstSeq
if numDeleted := int((state.LastSeq - state.FirstSeq + 1) - state.Msgs); numDeleted > 0 {
state.Deleted = make([]uint64, 0, numDeleted)
cur := fs.state.FirstSeq
for _, mb := range fs.blks {
mb.mu.Lock()
fseq := mb.first.seq
// Account for messages missing from the head.
if fseq > cur {
for seq := cur; seq < fseq; seq++ {
state.Deleted = append(state.Deleted, seq)
for _, mb := range fs.blks {
mb.mu.Lock()
fseq := mb.first.seq
// Account for messages missing from the head.
if fseq > cur {
for seq := cur; seq < fseq; seq++ {
state.Deleted = append(state.Deleted, seq)
}
}
}
cur = mb.last.seq + 1 // Expected next first.
for seq := range mb.dmap {
if seq < fseq {
delete(mb.dmap, seq)
} else {
state.Deleted = append(state.Deleted, seq)
cur = mb.last.seq + 1 // Expected next first.
for seq := range mb.dmap {
if seq < fseq {
delete(mb.dmap, seq)
} else {
state.Deleted = append(state.Deleted, seq)
}
}
mb.mu.Unlock()
}
mb.mu.Unlock()
}
fs.mu.RUnlock()

View File

@@ -873,8 +873,7 @@ func (ms *memStore) State() StreamState {
// Calculate interior delete details.
if state.LastSeq > state.FirstSeq {
state.NumDeleted = int((state.LastSeq - state.FirstSeq) - state.Msgs + 1)
if state.NumDeleted > 0 {
if state.NumDeleted = int((state.LastSeq - state.FirstSeq) - state.Msgs + 1); state.NumDeleted > 0 {
state.Deleted = make([]uint64, 0, state.NumDeleted)
// TODO(dlc) - Too Simplistic, once state is updated to allow runs etc redo.
for seq := state.FirstSeq + 1; seq < ms.state.LastSeq; seq++ {