Skip to content

Commit 26e6c8a

Browse files
Revert "GODRIVER-2626 further optimize selectByKind for special case of all fitting servers (#1107)"
This reverts commit dd15cfb.
1 parent 1c35f30 commit 26e6c8a

File tree

2 files changed

+24
-64
lines changed

2 files changed

+24
-64
lines changed

mongo/description/selector_test.go

+24-61
Original file line numberDiff line numberDiff line change
@@ -300,69 +300,32 @@ func BenchmarkLatencySelector(b *testing.B) {
300300
}
301301

302302
func BenchmarkSelector_Sharded(b *testing.B) {
303-
for _, bcase := range []struct {
304-
name string
305-
serversHook func(servers []Server)
306-
}{
307-
{
308-
name: "AllFit",
309-
serversHook: func(servers []Server) {},
310-
},
311-
{
312-
name: "AllButOneFit",
313-
serversHook: func(servers []Server) {
314-
servers[0].Kind = LoadBalancer
315-
},
316-
},
317-
{
318-
name: "HalfFit",
319-
serversHook: func(servers []Server) {
320-
for i := 0; i < len(servers); i += 2 {
321-
servers[i].Kind = LoadBalancer
322-
}
323-
},
324-
},
325-
{
326-
name: "OneFit",
327-
serversHook: func(servers []Server) {
328-
for i := 1; i < len(servers); i++ {
329-
servers[i].Kind = LoadBalancer
330-
}
331-
},
332-
},
333-
} {
334-
bcase := bcase
335-
336-
b.Run(bcase.name, func(b *testing.B) {
337-
subject := readpref.Primary()
338-
339-
s := Server{
340-
Addr: address.Address("localhost:27017"),
341-
HeartbeatInterval: time.Duration(10) * time.Second,
342-
LastWriteTime: time.Date(2017, 2, 11, 14, 0, 0, 0, time.UTC),
343-
LastUpdateTime: time.Date(2017, 2, 11, 14, 0, 2, 0, time.UTC),
344-
Kind: Mongos,
345-
WireVersion: &VersionRange{Min: 0, Max: 5},
346-
}
347-
servers := make([]Server, 100)
348-
for i := 0; i < len(servers); i++ {
349-
servers[i] = s
350-
}
351-
bcase.serversHook(servers)
352-
c := Topology{
353-
Kind: Sharded,
354-
Servers: servers,
355-
}
303+
subject := readpref.Primary()
356304

357-
b.ResetTimer()
358-
b.RunParallel(func(p *testing.PB) {
359-
b.ReportAllocs()
360-
for p.Next() {
361-
_, _ = ReadPrefSelector(subject).SelectServer(c, c.Servers)
362-
}
363-
})
364-
})
305+
s := Server{
306+
Addr: address.Address("localhost:27017"),
307+
HeartbeatInterval: time.Duration(10) * time.Second,
308+
LastWriteTime: time.Date(2017, 2, 11, 14, 0, 0, 0, time.UTC),
309+
LastUpdateTime: time.Date(2017, 2, 11, 14, 0, 2, 0, time.UTC),
310+
Kind: Mongos,
311+
WireVersion: &VersionRange{Min: 0, Max: 5},
312+
}
313+
servers := make([]Server, 100)
314+
for i := 0; i < len(servers); i++ {
315+
servers[i] = s
316+
}
317+
servers[0].Kind = LoadBalancer
318+
c := Topology{
319+
Kind: Sharded,
320+
Servers: servers,
365321
}
322+
323+
b.ResetTimer()
324+
b.RunParallel(func(p *testing.PB) {
325+
for p.Next() {
326+
_, _ = ReadPrefSelector(subject).SelectServer(c, c.Servers)
327+
}
328+
})
366329
}
367330

368331
func TestSelector_Single(t *testing.T) {

mongo/description/server_selector.go

-3
Original file line numberDiff line numberDiff line change
@@ -310,9 +310,6 @@ func selectByKind(candidates []Server, kind ServerKind) []Server {
310310
viableIndexes = append(viableIndexes, i)
311311
}
312312
}
313-
if len(viableIndexes) == len(candidates) {
314-
return candidates
315-
}
316313
result := make([]Server, len(viableIndexes))
317314
for i, idx := range viableIndexes {
318315
result[i] = candidates[idx]

0 commit comments

Comments
 (0)