// RemoveExistingTreeTriplesBenchmark creates the benchmark. func RemoveExistingTreeTriplesBenchmark(ctx context.Context, st storage.Store, chanSize int) ([]*runtime.BenchEntry, error) { bFactors := []int{2, 200} sizes := []int{10, 1000, 100000} var trplSets [][]*triple.Triple var ids []string var gids []string var gSizes []int gs, err := getTreeGenerators(bFactors) if err != nil { return nil, err } for idx, g := range gs { for _, s := range sizes { ts, err := g.Generate(s) if err != nil { return nil, err } trplSets = append(trplSets, ts) ids = append(ids, fmt.Sprintf("etg branch_factor=%04d, size=%07d", bFactors[idx], s)) gids = append(gids, fmt.Sprintf("b%d_s%d", bFactors[idx], s)) gSizes = append(gSizes, s) } } var bes []*runtime.BenchEntry reps := []int{10} for i, max := 0, len(ids); i < max; i++ { for idxReps, r := range reps { var g storage.Graph gID := fmt.Sprintf("remove_existing_tree_%s_r%d_i%d", gids[i], i, idxReps) data := trplSets[i] bes = append(bes, &runtime.BenchEntry{ BatteryID: "Remove existing triples", ID: fmt.Sprintf("%s, reps=%02d", ids[i], r), Triples: gSizes[i], Reps: r, Setup: func() error { var err error g, err = st.NewGraph(ctx, gID) if err != nil { return err } return g.AddTriples(ctx, data) }, F: func() error { return g.RemoveTriples(ctx, data) }, TearDown: func() error { return st.DeleteGraph(ctx, gID) }, }) } } return bes, nil }