MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / BenchmarkReadOps_Get

Function BenchmarkReadOps_Get

rest/api_benchmark_test.go:68–117  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

66 }`
67
68func BenchmarkReadOps_Get(b *testing.B) {
69
70 base.DisableTestLogging(b)
71
72 rt := NewRestTesterDefaultCollection(b, nil) // use non default in CBG-2618
73 defer rt.Close()
74 defer PurgeDoc(rt, "doc1k")
75
76 doc1k_putDoc := fmt.Sprintf(doc_1k_format, "")
77 response := rt.SendAdminRequest("PUT", "/{{.keyspace}}/doc1k", doc1k_putDoc)
78 var body db.Body
79 require.NoError(b, base.JSONUnmarshal(response.Body.Bytes(), &body))
80 revid := body["rev"].(string)
81
82 // Create user
83 username := "user1"
84 rt.SendAdminRequest("PUT", "/{{.db}}/_user/"+username, fmt.Sprintf(`{"name":"%s", "password":"letmein", "admin_channels":["channel_1"]}`, username))
85
86 getBenchmarks := []struct {
87 name string
88 URI string
89 asUser string
90 }{
91 {"Admin_Simple", "/{{.keyspace}}/doc1k", ""},
92 {"Admin_WithRev", "/{{.keyspace}}/doc1k?rev=" + revid, ""},
93 {"Admin_OpenRevsAll", "/{{.keyspace}}/doc1k?open_revs=all&rev=" + revid, ""},
94 {"User_Simple", "/{{.keyspace}}/doc1k", username},
95 {"User_WithRev", "/{{.keyspace}}/doc1k?rev=" + revid, username},
96 {"User_OpenRevsAll", "/{{.keyspace}}/doc1k?open_revs=all&rev=" + revid, username},
97 }
98
99 for _, bm := range getBenchmarks {
100 b.Run(bm.name, func(b *testing.B) {
101 var getResponse *TestResponse
102 for i := 0; i < b.N; i++ {
103 if bm.asUser == "" {
104 getResponse = rt.SendAdminRequest("GET", bm.URI, "")
105 } else {
106 getResponse = rt.SendUserRequest("GET", bm.URI, "", bm.asUser)
107 }
108 b.StopTimer()
109 if getResponse.Code != 200 {
110 log.Printf("Unexpected response status code: %d", getResponse.Code)
111 panic("here")
112 }
113 b.StartTimer()
114 }
115 })
116 }
117}
118
119// Benchmark 100% rev cache miss scenario
120func BenchmarkReadOps_GetRevCacheMisses(b *testing.B) {

Callers

nothing calls this directly

Calls 8

DisableTestLoggingFunction · 0.92
JSONUnmarshalFunction · 0.92
PurgeDocFunction · 0.85
SendAdminRequestMethod · 0.80
SendUserRequestMethod · 0.80
CloseMethod · 0.65
RunMethod · 0.65

Tested by

no test coverage detected