MCPcopy Create free account
hub / github.com/nutsdb/nutsdb / TestDB_MergeHintFileDifferentDataStructures

Function TestDB_MergeHintFileDifferentDataStructures

merge_test.go:843–974  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

841}
842
843func TestDB_MergeHintFileDifferentDataStructures(t *testing.T) {
844 runForMergeModes(t, func(t *testing.T, mode mergeTestMode) {
845 opts := DefaultOptions
846 opts.SegmentSize = KB
847 opts.Dir = fmt.Sprintf("/tmp/test-merge-hintfile-ds-%s/", mode.name)
848 opts.EnableHintFile = true
849 opts.EnableMergeV2 = mode.enableMergeV2
850
851 removeDir(opts.Dir)
852
853 db, err := Open(opts)
854 require.NoError(t, err)
855
856 bucketBTree := "bucket_btree"
857 txCreateBucket(t, db, DataStructureBTree, bucketBTree, nil)
858 for i := 0; i < 100; i++ {
859 txPut(t, db, bucketBTree, testutils.GetTestBytes(i), testutils.GetTestBytes(i), Persistent, nil, nil)
860 }
861
862 bucketSet := "bucket_set"
863 txCreateBucket(t, db, DataStructureSet, bucketSet, nil)
864 key := testutils.GetTestBytes(0)
865 for i := 0; i < 50; i++ {
866 txSAdd(t, db, bucketSet, key, testutils.GetTestBytes(i), nil, nil)
867 }
868
869 bucketList := "bucket_list"
870 txCreateBucket(t, db, DataStructureList, bucketList, nil)
871 listKey := testutils.GetTestBytes(0)
872 for i := 0; i < 30; i++ {
873 txPush(t, db, bucketList, listKey, testutils.GetTestBytes(i), true, nil, nil)
874 }
875
876 bucketZSet := "bucket_zset"
877 txCreateBucket(t, db, DataStructureSortedSet, bucketZSet, nil)
878 zsetKey := testutils.GetTestBytes(0)
879 for i := 0; i < 20; i++ {
880 txZAdd(t, db, bucketZSet, zsetKey, testutils.GetTestBytes(i), float64(i), nil, nil)
881 }
882
883 for i := 0; i < 25; i++ {
884 txDel(t, db, bucketBTree, testutils.GetTestBytes(i), nil)
885 }
886 for i := 0; i < 10; i++ {
887 txSRem(t, db, bucketSet, key, testutils.GetTestBytes(i), nil)
888 }
889 for i := 0; i < 5; i++ {
890 txPop(t, db, bucketList, listKey, testutils.GetTestBytes(i), nil, false)
891 }
892 for i := 0; i < 5; i++ {
893 txZRem(t, db, bucketZSet, zsetKey, testutils.GetTestBytes(i), nil)
894 }
895
896 require.NoError(t, db.Merge())
897
898 sets := collectMergeFileSets(t, opts.Dir)
899 idsToCheck := dataFileIDsForMode(mode, sets)
900 require.Greater(t, len(idsToCheck), 0)

Callers

nothing calls this directly

Calls 15

OpenMethod · 0.95
ReadMethod · 0.95
CloseMethod · 0.95
GetTestBytesFunction · 0.92
runForMergeModesFunction · 0.85
removeDirFunction · 0.85
OpenFunction · 0.85
txCreateBucketFunction · 0.85
txPutFunction · 0.85
txSAddFunction · 0.85
txPushFunction · 0.85
txZAddFunction · 0.85

Tested by

no test coverage detected