MCPcopy
hub / github.com/olric-data/olric / TestIntegration_DMap_Cache_Eviction_LRU_MaxKeys

Function TestIntegration_DMap_Cache_Eviction_LRU_MaxKeys

integration_test.go:105–152  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

103}
104
105func TestIntegration_DMap_Cache_Eviction_LRU_MaxKeys(t *testing.T) {
106 maxKeys := 100000
107 newConfig := func() *config.Config {
108 c := config.New("local")
109 c.PartitionCount = config.DefaultPartitionCount
110 c.ReplicaCount = 1
111 c.WriteQuorum = 1
112 c.ReadQuorum = 1
113 c.LogOutput = io.Discard
114 c.DMaps.MaxKeys = maxKeys
115 c.DMaps.EvictionPolicy = config.LRUEviction
116 require.NoError(t, c.Sanitize())
117 require.NoError(t, c.Validate())
118 return c
119 }
120
121 cluster := newTestOlricCluster(t)
122
123 db := cluster.addMemberWithConfig(t, newConfig())
124
125 ctx := context.Background()
126 c, err := NewClusterClient([]string{db.name})
127 require.NoError(t, err)
128 defer func() {
129 require.NoError(t, c.Close(ctx))
130 }()
131
132 dm, err := c.NewDMap("mydmap")
133 require.NoError(t, err)
134
135 for i := 0; i < maxKeys; i++ {
136 err = dm.Put(ctx, fmt.Sprintf("mykey-%d", i), "myvalue")
137 require.NoError(t, err)
138 }
139
140 var total int
141 for i := 0; i < maxKeys; i++ {
142 err = dm.Put(ctx, fmt.Sprintf("mykey-%d", i), "myvalue", NX())
143 if err == ErrKeyFound {
144 err = nil
145 } else {
146 total++
147 }
148 require.NoError(t, err)
149 }
150 require.Greater(t, total, 0)
151 t.Logf("number of misses: %d, utilization rate: %f", total, float64(100)-(float64(total*100))/float64(maxKeys))
152}
153
154func TestIntegration_DMap_Cache_Eviction_MaxKeys(t *testing.T) {
155 maxKeys := 100000

Callers

nothing calls this directly

Calls 10

CloseMethod · 0.95
NewDMapMethod · 0.95
PutMethod · 0.95
NewFunction · 0.92
newTestOlricClusterFunction · 0.85
NewClusterClientFunction · 0.85
NXFunction · 0.85
addMemberWithConfigMethod · 0.80
SanitizeMethod · 0.65
ValidateMethod · 0.65

Tested by

no test coverage detected