|
5 | 5 | package pebble
|
6 | 6 |
|
7 | 7 | import (
|
8 |
| - "bufio" |
9 | 8 | "bytes"
|
10 | 9 | "context"
|
11 | 10 | "fmt"
|
12 | 11 | "math/rand/v2"
|
13 |
| - "os" |
14 | 12 | "path"
|
15 |
| - "strconv" |
16 | 13 | "strings"
|
17 | 14 | "sync"
|
18 | 15 | "testing"
|
@@ -1187,75 +1184,6 @@ func TestFileCacheEvictClose(t *testing.T) {
|
1187 | 1184 | }
|
1188 | 1185 | }
|
1189 | 1186 |
|
1190 |
| -func TestFileCacheClockPro(t *testing.T) { |
1191 |
| - // Test data was generated from the python code. See also |
1192 |
| - // internal/cache/clockpro_test.go:TestCache. |
1193 |
| - f, err := os.Open("internal/cache/testdata/cache") |
1194 |
| - require.NoError(t, err) |
1195 |
| - |
1196 |
| - mem := vfs.NewMem() |
1197 |
| - objProvider, err := objstorageprovider.Open(objstorageprovider.DefaultSettings(mem, "")) |
1198 |
| - require.NoError(t, err) |
1199 |
| - defer objProvider.Close() |
1200 |
| - |
1201 |
| - makeTable := func(dfn base.DiskFileNum) { |
1202 |
| - require.NoError(t, err) |
1203 |
| - f, _, err := objProvider.Create(context.Background(), base.FileTypeTable, dfn, objstorage.CreateOptions{}) |
1204 |
| - require.NoError(t, err) |
1205 |
| - w := sstable.NewWriter(f, sstable.WriterOptions{}) |
1206 |
| - require.NoError(t, w.Set([]byte("a"), nil)) |
1207 |
| - require.NoError(t, w.Close()) |
1208 |
| - } |
1209 |
| - |
1210 |
| - // NB: The file cache size of 200 with a single shard is required for the |
1211 |
| - // expected test values. |
1212 |
| - fcs := newFileCacheTest(t, 8<<20 /* 8 MB */, 200, 1) |
1213 |
| - defer fcs.cleanup() |
1214 |
| - |
1215 |
| - opts := &Options{ |
1216 |
| - Cache: fcs.blockCache, |
1217 |
| - FileCache: fcs.fileCache, |
1218 |
| - LoggerAndTracer: &base.LoggerWithNoopTracer{Logger: base.DefaultLogger}, |
1219 |
| - } |
1220 |
| - opts.EnsureDefaults() |
1221 |
| - h := fcs.fileCache.newHandle(fcs.blockCacheHandle, objProvider, opts.LoggerAndTracer, opts.MakeReaderOptions(), noopCorruptionFn) |
1222 |
| - defer h.Close() |
1223 |
| - |
1224 |
| - scanner := bufio.NewScanner(f) |
1225 |
| - tables := make(map[int]bool) |
1226 |
| - line := 1 |
1227 |
| - |
1228 |
| - for scanner.Scan() { |
1229 |
| - fields := bytes.Fields(scanner.Bytes()) |
1230 |
| - |
1231 |
| - key, err := strconv.Atoi(string(fields[0])) |
1232 |
| - require.NoError(t, err) |
1233 |
| - |
1234 |
| - // Ensure that underlying sstables exist on disk, creating each table the |
1235 |
| - // first time it is seen. |
1236 |
| - if !tables[key] { |
1237 |
| - makeTable(base.DiskFileNum(key)) |
1238 |
| - tables[key] = true |
1239 |
| - } |
1240 |
| - |
1241 |
| - oldHits := fcs.fileCache.c.Metrics().Hits |
1242 |
| - m := &manifest.TableMetadata{TableNum: base.TableNum(key)} |
1243 |
| - m.InitPhysicalBacking() |
1244 |
| - m.TableBacking.Ref() |
1245 |
| - v, err := h.findOrCreateTable(context.Background(), m, initFileOpts{}) |
1246 |
| - require.NoError(t, err) |
1247 |
| - v.Unref() |
1248 |
| - |
1249 |
| - hit := fcs.fileCache.c.Metrics().Hits != oldHits |
1250 |
| - wantHit := fields[1][0] == 'h' |
1251 |
| - if hit != wantHit { |
1252 |
| - t.Errorf("%d: cache hit mismatch: got %v, want %v\n", line, hit, wantHit) |
1253 |
| - } |
1254 |
| - line++ |
1255 |
| - m.TableBacking.Unref() |
1256 |
| - } |
1257 |
| -} |
1258 |
| - |
1259 | 1187 | func BenchmarkNewItersAlloc(b *testing.B) {
|
1260 | 1188 | opts := &Options{
|
1261 | 1189 | FS: vfs.NewMem(),
|
|
0 commit comments