Skip to content

Commit

Permalink
feat: use Ristretto to manage the topic selector cache
Browse files Browse the repository at this point in the history
  • Loading branch information
dunglas committed Dec 21, 2020
1 parent 8d97cc6 commit b5251fd
Show file tree
Hide file tree
Showing 13 changed files with 148 additions and 117 deletions.
4 changes: 2 additions & 2 deletions authorization_test.go
Expand Up @@ -394,7 +394,7 @@ func TestAuthorizeAllOriginsAllowed(t *testing.T) {
}

func TestCanReceive(t *testing.T) {
s := NewTopicSelectorStore()
s, _ := NewTopicSelectorStore()
assert.True(t, canReceive(s, []string{"foo", "bar"}, []string{"foo", "bar"}, true))
assert.True(t, canReceive(s, []string{"foo", "bar"}, []string{"bar"}, true))
assert.True(t, canReceive(s, []string{"foo", "bar"}, []string{"*"}, true))
Expand All @@ -404,7 +404,7 @@ func TestCanReceive(t *testing.T) {
}

func TestCanDispatch(t *testing.T) {
s := NewTopicSelectorStore()
s, _ := NewTopicSelectorStore()
assert.True(t, canDispatch(s, []string{"foo", "bar"}, []string{"foo", "bar"}))
assert.True(t, canDispatch(s, []string{"foo", "bar"}, []string{"*"}))
assert.False(t, canDispatch(s, []string{"foo", "bar"}, []string{}))
Expand Down
24 changes: 14 additions & 10 deletions bolt_transport_test.go
Expand Up @@ -35,7 +35,8 @@ func TestBoltTransportHistory(t *testing.T) {
})
}

s := NewSubscriber("8", transport.logger, NewTopicSelectorStore())
tss, _ := NewTopicSelectorStore()
s := NewSubscriber("8", transport.logger, tss)
s.Topics = topics
go s.start()

Expand Down Expand Up @@ -66,7 +67,8 @@ func TestBoltTransportRetrieveAllHistory(t *testing.T) {
})
}

s := NewSubscriber(EarliestLastEventID, transport.logger, NewTopicSelectorStore())
tss, _ := NewTopicSelectorStore()
s := NewSubscriber(EarliestLastEventID, transport.logger, tss)
s.Topics = topics
go s.start()
require.Nil(t, transport.AddSubscriber(s))
Expand Down Expand Up @@ -96,7 +98,8 @@ func TestBoltTransportHistoryAndLive(t *testing.T) {
})
}

s := NewSubscriber("8", transport.logger, NewTopicSelectorStore())
tss, _ := NewTopicSelectorStore()
s := NewSubscriber("8", transport.logger, tss)
s.Topics = topics
go s.start()
require.Nil(t, transport.AddSubscriber(s))
Expand Down Expand Up @@ -179,7 +182,8 @@ func TestBoltTransportDoNotDispatchedUntilListen(t *testing.T) {
defer os.Remove("test.db")
assert.Implements(t, (*Transport)(nil), transport)

s := NewSubscriber("", transport.logger, NewTopicSelectorStore())
tss, _ := NewTopicSelectorStore()
s := NewSubscriber("", transport.logger, tss)
go s.start()
require.Nil(t, transport.AddSubscriber(s))

Expand Down Expand Up @@ -212,7 +216,8 @@ func TestBoltTransportDispatch(t *testing.T) {
defer os.Remove("test.db")
assert.Implements(t, (*Transport)(nil), transport)

s := NewSubscriber("", transport.logger, NewTopicSelectorStore())
tss, _ := NewTopicSelectorStore()
s := NewSubscriber("", transport.logger, tss)
s.Topics = []string{"https://example.com/foo"}
go s.start()

Expand All @@ -230,7 +235,8 @@ func TestBoltTransportClosed(t *testing.T) {
defer os.Remove("test.db")
assert.Implements(t, (*Transport)(nil), transport)

s := NewSubscriber("", transport.logger, NewTopicSelectorStore())
tss, _ := NewTopicSelectorStore()
s := NewSubscriber("", transport.logger, tss)
s.Topics = []string{"https://example.com/foo"}
go s.start()
require.Nil(t, transport.AddSubscriber(s))
Expand All @@ -250,8 +256,7 @@ func TestBoltCleanDisconnectedSubscribers(t *testing.T) {
defer transport.Close()
defer os.Remove("test.db")

tss := NewTopicSelectorStore()

tss, _ := NewTopicSelectorStore()
s1 := NewSubscriber("", transport.logger, tss)
go s1.start()
require.Nil(t, transport.AddSubscriber(s1))
Expand Down Expand Up @@ -281,8 +286,7 @@ func TestBoltGetSubscribers(t *testing.T) {
defer transport.Close()
defer os.Remove("test.db")

tss := NewTopicSelectorStore()

tss, _ := NewTopicSelectorStore()
s1 := NewSubscriber("", transport.logger, tss)
go s1.start()
require.Nil(t, transport.AddSubscriber(s1))
Expand Down
10 changes: 7 additions & 3 deletions caddy/go.mod
Expand Up @@ -14,21 +14,25 @@ require (
github.com/dunglas/mercure v0.11.0-beta.1
github.com/golang/snappy v0.0.2 // indirect
github.com/huandu/xstrings v1.3.2 // indirect
github.com/klauspost/compress v1.11.4 // indirect
github.com/klauspost/cpuid v1.3.1 // indirect
github.com/klauspost/cpuid/v2 v2.0.2 // indirect
github.com/klauspost/cpuid/v2 v2.0.3 // indirect
github.com/manifoldco/promptui v0.8.0 // indirect
github.com/mattn/go-colorable v0.1.8 // indirect
github.com/miekg/dns v1.1.35 // indirect
github.com/mitchellh/reflectwalk v1.0.1 // indirect
github.com/prometheus/client_golang v1.9.0
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sirupsen/logrus v1.7.0 // indirect
github.com/smallstep/certificates v0.15.5 // indirect
github.com/smallstep/certificates v0.15.6 // indirect
github.com/smallstep/cli v0.15.3 // indirect
github.com/smallstep/nosql v0.3.2 // indirect
github.com/stretchr/testify v1.6.1
github.com/urfave/cli v1.22.5 // indirect
go.step.sm/crypto v0.7.1 // indirect
github.com/yosida95/uritemplate/v3 v3.0.1 // indirect
github.com/yuin/goldmark v1.3.0 // indirect
go.uber.org/zap v1.16.0
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad // indirect
golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf // indirect
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d // indirect
google.golang.org/grpc v1.33.2 // indirect
Expand Down

0 comments on commit b5251fd

Please sign in to comment.