Skip to content

Commit 6c4744b

Browse files
authored
dont grow events unbounded when persisting (#2560)
1 parent 7437199 commit 6c4744b

1 file changed

Lines changed: 4 additions & 9 deletions

File tree

pkg/wps/wps.go

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import (
1616
// strong typing and event types can be defined elsewhere
1717

1818
const MaxPersist = 4096
19-
const ReMakeArrThreshold = 10 * 1024
2019

2120
type Client interface {
2221
SendEvent(routeId string, event WaveEvent)
@@ -34,8 +33,7 @@ type persistKey struct {
3433
}
3534

3635
type persistEventWrap struct {
37-
ArrTotalAdds int
38-
Events []*WaveEvent
36+
Events []*WaveEvent
3937
}
4038

4139
type BrokerType struct {
@@ -214,16 +212,13 @@ func (b *BrokerType) persistEvent(event WaveEvent) {
214212
pe := b.PersistMap[key]
215213
if pe == nil {
216214
pe = &persistEventWrap{
217-
ArrTotalAdds: 0,
218-
Events: make([]*WaveEvent, 0, event.Persist),
215+
Events: make([]*WaveEvent, 0, numPersist),
219216
}
220217
b.PersistMap[key] = pe
221218
}
222219
pe.Events = append(pe.Events, &event)
223-
pe.ArrTotalAdds++
224-
if pe.ArrTotalAdds > ReMakeArrThreshold {
225-
pe.Events = append([]*WaveEvent{}, pe.Events...)
226-
pe.ArrTotalAdds = len(pe.Events)
220+
if len(pe.Events) > numPersist {
221+
pe.Events = pe.Events[len(pe.Events)-numPersist:]
227222
}
228223
}
229224
}

0 commit comments

Comments
 (0)