Skip to content

Commit e9fdc78

Browse files
Merge pull request #890 from KarthikSubbarao/1.2.0-rc3
Merge from main into 1.2 - For RC3
2 parents c4a58cf + 9850a7a commit e9fdc78

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+3433
-1198
lines changed

.github/benchmark_configs/fts-benchmarks-arm.json

Lines changed: 149 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,60 @@
383383
]
384384
}
385385
]
386+
},
387+
"vector_hybrid_100k.csv": {
388+
"doc_count": 100000,
389+
"fields": [
390+
{
391+
"name": "title",
392+
"size": 50,
393+
"transforms": [
394+
{
395+
"type": "proximity_phrase",
396+
"term_count": 1,
397+
"combinations": 1,
398+
"repeats": 1000
399+
}
400+
]
401+
},
402+
{
403+
"name": "price",
404+
"size": 10,
405+
"transforms": [
406+
{
407+
"type": "numeric_range",
408+
"min": 10,
409+
"max": 1000
410+
}
411+
]
412+
},
413+
{
414+
"name": "category",
415+
"size": 30,
416+
"transforms": [
417+
{
418+
"type": "tag_list",
419+
"tags": [
420+
"electronics",
421+
"books",
422+
"clothing",
423+
"food",
424+
"sports"
425+
]
426+
}
427+
]
428+
},
429+
{
430+
"name": "embedding",
431+
"size": 1,
432+
"transforms": [
433+
{
434+
"type": "vector",
435+
"dimensions": 256
436+
}
437+
]
438+
}
439+
]
386440
}
387441
},
388442
"query_generation": {
@@ -418,6 +472,11 @@
418472
"min_word_length": 8,
419473
"max_word_length": 10,
420474
"target_distance": 3
475+
},
476+
"vector_queries_100.csv": {
477+
"type": "vector",
478+
"doc_count": 100,
479+
"dimensions": 256
421480
}
422481
},
423482
"test_groups": [
@@ -638,6 +697,21 @@
638697
"clients": 88
639698
}
640699
]
700+
},
701+
{
702+
"id": "k",
703+
"type": "read",
704+
"cluster_execution": "parallel",
705+
"description": "Pure negation - exclude term from all fields",
706+
"dataset": "datasets/proximity_phrases.csv",
707+
"clients": 1000,
708+
"duration": 200,
709+
"warmup": 60,
710+
"command": "FT.SEARCH rd0 \"-__field:term2__\"",
711+
"options": {
712+
"": "",
713+
"NOCONTENT": "_nocontent"
714+
}
641715
}
642716
]
643717
},
@@ -1073,7 +1147,7 @@
10731147
"delays": {
10741148
"write": {
10751149
"delay": 5,
1076-
"duration": 30
1150+
"duration": 10
10771151
}
10781152
}
10791153
}
@@ -1097,7 +1171,7 @@
10971171
"delays": {
10981172
"write": {
10991173
"delay": 5,
1100-
"duration": 15
1174+
"duration": 10
11011175
}
11021176
}
11031177
}
@@ -1114,14 +1188,14 @@
11141188
"dataset": "datasets/wiki_10k_50field_1ktok.csv",
11151189
"duration": 200,
11161190
"keyspacelen": 10000,
1117-
"clients": 500,
1191+
"clients": 1000,
11181192
"sequential": true,
11191193
"command": "HSET rd0-{tag}:__rand_int__ field1 \"__field:field1__\" field2 \"__field:field2__\" field3 \"__field:field3__\" field4 \"__field:field4__\" field5 \"__field:field5__\" field6 \"__field:field6__\" field7 \"__field:field7__\" field8 \"__field:field8__\" field9 \"__field:field9__\" field10 \"__field:field10__\" field11 \"__field:field11__\" field12 \"__field:field12__\" field13 \"__field:field13__\" field14 \"__field:field14__\" field15 \"__field:field15__\" field16 \"__field:field16__\" field17 \"__field:field17__\" field18 \"__field:field18__\" field19 \"__field:field19__\" field20 \"__field:field20__\" field21 \"__field:field21__\" field22 \"__field:field22__\" field23 \"__field:field23__\" field24 \"__field:field24__\" field25 \"__field:field25__\" field26 \"__field:field26__\" field27 \"__field:field27__\" field28 \"__field:field28__\" field29 \"__field:field29__\" field30 \"__field:field30__\" field31 \"__field:field31__\" field32 \"__field:field32__\" field33 \"__field:field33__\" field34 \"__field:field34__\" field35 \"__field:field35__\" field36 \"__field:field36__\" field37 \"__field:field37__\" field38 \"__field:field38__\" field39 \"__field:field39__\" field40 \"__field:field40__\" field41 \"__field:field41__\" field42 \"__field:field42__\" field43 \"__field:field43__\" field44 \"__field:field44__\" field45 \"__field:field45__\" field46 \"__field:field46__\" field47 \"__field:field47__\" field48 \"__field:field48__\" field49 \"__field:field49__\" field50 \"__field:field50__\"",
11201194
"profiling": {
11211195
"delays": {
11221196
"write": {
11231197
"delay": 5,
1124-
"duration": 15
1198+
"duration": 10
11251199
}
11261200
}
11271201
}
@@ -1146,7 +1220,7 @@
11461220
"delays": {
11471221
"write": {
11481222
"delay": 30,
1149-
"duration": 60
1223+
"duration": 10
11501224
}
11511225
}
11521226
}
@@ -1163,14 +1237,14 @@
11631237
"dataset": "datasets/random_set_100k_20field_10tok.csv",
11641238
"duration": 200,
11651239
"keyspacelen": 100000,
1166-
"clients": 500,
1240+
"clients": 1000,
11671241
"sequential": true,
11681242
"command": "HSET rd0-{tag}:__rand_int__ field1 \"__field:field1__\" field2 \"__field:field2__\" field3 \"__field:field3__\" field4 \"__field:field4__\" field5 \"__field:field5__\" field6 \"__field:field6__\" field7 \"__field:field7__\" field8 \"__field:field8__\" field9 \"__field:field9__\" field10 \"__field:field10__\" field11 \"__field:field11__\" field12 \"__field:field12__\" field13 \"__field:field13__\" field14 \"__field:field14__\" field15 \"__field:field15__\" field16 \"__field:field16__\" field17 \"__field:field17__\" field18 \"__field:field18__\" field19 \"__field:field19__\" field20 \"__field:field20__\"",
11691243
"profiling": {
11701244
"delays": {
11711245
"write": {
11721246
"delay": 5,
1173-
"duration": 15
1247+
"duration": 10
11741248
}
11751249
}
11761250
}
@@ -1199,7 +1273,7 @@
11991273
"delays": {
12001274
"write": {
12011275
"delay": 5,
1202-
"duration": 30
1276+
"duration": 10
12031277
}
12041278
}
12051279
}
@@ -1216,14 +1290,14 @@
12161290
"dataset": "datasets/radix_uuid_10k_1ktok.csv",
12171291
"duration": 200,
12181292
"keyspacelen": 10000,
1219-
"clients": 500,
1293+
"clients": 1000,
12201294
"sequential": true,
12211295
"command": "HSET rd0-{tag}:__rand_int__ field1 \"__field:field1__\"",
12221296
"profiling": {
12231297
"delays": {
12241298
"write": {
12251299
"delay": 5,
1226-
"duration": 15
1300+
"duration": 10
12271301
}
12281302
}
12291303
}
@@ -1240,14 +1314,14 @@
12401314
"dataset": "datasets/radix_progressive_10k_1ktok.csv",
12411315
"duration": 200,
12421316
"keyspacelen": 10000,
1243-
"clients": 500,
1317+
"clients": 1000,
12441318
"sequential": true,
12451319
"command": "HSET rd0-{tag}:__rand_int__ field1 \"__field:field1__\"",
12461320
"profiling": {
12471321
"delays": {
12481322
"write": {
12491323
"delay": 5,
1250-
"duration": 15
1324+
"duration": 10
12511325
}
12521326
}
12531327
}
@@ -1271,14 +1345,14 @@
12711345
"xml_root_element": "doc",
12721346
"duration": 200,
12731347
"keyspacelen": 100000,
1274-
"clients": 500,
1348+
"clients": 1000,
12751349
"sequential": true,
12761350
"command": "HSET __field:keyname__ field1 \"__field:field1__\"",
12771351
"profiling": {
12781352
"delays": {
12791353
"write": {
12801354
"delay": 5,
1281-
"duration": 15
1355+
"duration": 10
12821356
}
12831357
}
12841358
}
@@ -1296,14 +1370,14 @@
12961370
"xml_root_element": "doc",
12971371
"duration": 200,
12981372
"keyspacelen": 50000,
1299-
"clients": 500,
1373+
"clients": 1000,
13001374
"sequential": true,
13011375
"command": "HSET rd0-{tag}:__rand_int__ field1 \"__field:field1__\" field2 \"__field:field2__\" field3 \"__field:field3__\" field4 \"__field:field4__\" field5 \"__field:field5__\" field6 \"__field:field6__\" field7 \"__field:field7__\" field8 \"__field:field8__\" field9 \"__field:field9__\" field10 \"__field:field10__\"",
13021376
"profiling": {
13031377
"delays": {
13041378
"write": {
13051379
"delay": 5,
1306-
"duration": 15
1380+
"duration": 10
13071381
}
13081382
}
13091383
}
@@ -1321,14 +1395,14 @@
13211395
"xml_root_element": "doc",
13221396
"duration": 200,
13231397
"keyspacelen": 50000,
1324-
"clients": 500,
1398+
"clients": 1000,
13251399
"sequential": true,
13261400
"command": "HSET rd0-{tag}:__rand_int__ field1 \"__field:field1__\" field2 \"__field:field2__\" field3 \"__field:field3__\" field4 \"__field:field4__\" field5 \"__field:field5__\" field6 \"__field:field6__\" field7 \"__field:field7__\" field8 \"__field:field8__\" field9 \"__field:field9__\" field10 \"__field:field10__\"",
13271401
"profiling": {
13281402
"delays": {
13291403
"write": {
13301404
"delay": 5,
1331-
"duration": 15
1405+
"duration": 10
13321406
}
13331407
}
13341408
}
@@ -1346,14 +1420,14 @@
13461420
"xml_root_element": "doc",
13471421
"duration": 200,
13481422
"keyspacelen": 50000,
1349-
"clients": 500,
1423+
"clients": 1000,
13501424
"sequential": true,
13511425
"command": "HSET rd0-{tag}:__rand_int__ field1 \"__field:field1__\" field2 \"__field:field2__\" field3 \"__field:field3__\" field4 \"__field:field4__\" field5 \"__field:field5__\" field6 \"__field:field6__\" field7 \"__field:field7__\" field8 \"__field:field8__\" field9 \"__field:field9__\" field10 \"__field:field10__\"",
13521426
"profiling": {
13531427
"delays": {
13541428
"write": {
13551429
"delay": 5,
1356-
"duration": 15
1430+
"duration": 10
13571431
}
13581432
}
13591433
}
@@ -1371,14 +1445,14 @@
13711445
"xml_root_element": "doc",
13721446
"duration": 200,
13731447
"keyspacelen": 50000,
1374-
"clients": 500,
1448+
"clients": 1000,
13751449
"sequential": true,
13761450
"command": "HSET rd0-{tag}:__rand_int__ field1 \"__field:field1__\" field2 \"__field:field2__\" field3 \"__field:field3__\" field4 \"__field:field4__\" field5 \"__field:field5__\" field6 \"__field:field6__\" field7 \"__field:field7__\" field8 \"__field:field8__\" field9 \"__field:field9__\" field10 \"__field:field10__\"",
13771451
"profiling": {
13781452
"delays": {
13791453
"write": {
13801454
"delay": 5,
1381-
"duration": 15
1455+
"duration": 10
13821456
}
13831457
}
13841458
}
@@ -1394,14 +1468,14 @@
13941468
"flush_before": true,
13951469
"dataset": "datasets/wiki_10k_1field_10ktok_stemmable.csv",
13961470
"maxdocs": 10000,
1397-
"clients": 500,
1471+
"clients": 1000,
13981472
"sequential": true,
13991473
"command": "HSET rd0-{tag}:__rand_int__ field1 \"__field:field1__\"",
14001474
"profiling": {
14011475
"delays": {
14021476
"write": {
14031477
"delay": 5,
1404-
"duration": 15
1478+
"duration": 10
14051479
}
14061480
}
14071481
}
@@ -1425,12 +1499,62 @@
14251499
"delays": {
14261500
"write": {
14271501
"delay": 60,
1428-
"duration": 120
1502+
"duration": 10
14291503
}
14301504
}
14311505
}
14321506
}
14331507
]
1508+
},
1509+
{
1510+
"group": 15,
1511+
"description": "Vector + Text Hybrid (KNN with filters)",
1512+
"scenarios": [
1513+
{
1514+
"id": "a",
1515+
"type": "write",
1516+
"cluster_execution": "single",
1517+
"setup_commands": [
1518+
"FT.CREATE rd0 ON HASH PREFIX 1 rd0- SCHEMA title TEXT price NUMERIC category TAG SEPARATOR | embedding VECTOR FLAT 6 DIM 256 DISTANCE_METRIC L2 TYPE FLOAT32"
1519+
],
1520+
"flush_before": true,
1521+
"dataset": "datasets/vector_hybrid_100k.npy",
1522+
"maxdocs": 100000,
1523+
"clients": 1000,
1524+
"sequential": true,
1525+
"command": "HSET rd0-{tag}:__rand_int__ title \"__field:title__\" price \"__field:price__\" category \"__field:category__\" embedding \"__field:embedding__\""
1526+
},
1527+
{
1528+
"id": "b",
1529+
"type": "read",
1530+
"cluster_execution": "parallel",
1531+
"description": "Hybrid: Text filter + KNN",
1532+
"dataset": "datasets/vector_queries_100.npy",
1533+
"clients": 1000,
1534+
"duration": 200,
1535+
"options": {
1536+
"": "",
1537+
"NOCONTENT": "_nocontent"
1538+
},
1539+
"warmup": 60,
1540+
"command": "FT.SEARCH rd0 \"(@title:__field:search_term__)=>[KNN 10 @embedding $vec AS score]\" PARAMS 2 vec \"__field:query_vector__\" RETURN 2 title score DIALECT 2"
1541+
},
1542+
{
1543+
"id": "c",
1544+
"type": "read",
1545+
"cluster_execution": "parallel",
1546+
"description": "Hybrid: Numeric filter + KNN",
1547+
"dataset": "datasets/vector_queries_100.npy",
1548+
"clients": 1000,
1549+
"duration": 200,
1550+
"options": {
1551+
"": "",
1552+
"NOCONTENT": "_nocontent"
1553+
},
1554+
"warmup": 60,
1555+
"command": "FT.SEARCH rd0 \"(@price:[100 500])=>[KNN 10 @embedding $vec AS score]\" PARAMS 2 vec \"__field:query_vector__\" RETURN 2 price score DIALECT 2"
1556+
}
1557+
]
14341558
}
14351559
],
14361560
"port": 6379,

build.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,6 @@ if [[ "${SAN_BUILD}" != "no" ]]; then
415415
BUILD_DIR=${BUILD_DIR}-asan
416416
else
417417
BUILD_DIR=${BUILD_DIR}-tsan
418-
export TSAN_OPTIONS="suppressions=${ROOT_DIR}/ci/tsan.supp"
419418
fi
420419
fi
421420

149 KB
Binary file not shown.

0 commit comments

Comments
 (0)