juicefs
juicefs copied to clipboard
Consider DragonflyDB for metadata
What would you like to be added: https://dragonflydb.io/ https://github.com/dragonflydb/dragonfly
Why is this needed: Dragonfly is an in-memory data store built for modern application workloads. It is fully compatible with the Redis APIs, and required no code changes to adopt. When compared to Redis, Dragonfly delivers 25X more throughput, higher cache hit rates, with lower tail latency, and effortless vertical scalability.
As you said, it is fully compatible with the Redis APIs, and required no code changes to adopt. What else do you think we should do ?
Well, give it a try trough testing and mention it in the docs if you (project owners) think it's fuly compatible :)
Based on current benchmark, DragonflyDB is 100x slower sometimes, it's not a good replacement for Redis. Will fire a issue for DragonflyDB.
We have created an issue in the dragonfly community that describes the problem in detail. https://github.com/dragonflydb/dragonfly/issues/1285
After testing, although the Dragonfly community has marked the issue as resolved, the current performance is still not as good as Redis. We will test this issue again after a period of time to determine if it still persists.
No problem, maybe https://github.com/dragonflydb/dragonfly/pull/1375 get things better 😉
@solracsf We tested the https://github.com/dragonflydb/dragonfly/pull/1375, the result still not stable
@zhijian-pro can you request dragonfly to fix it? they closed the issue
@vimaxwell what do you see? Have you tried running dragonfly with --tcp_nodelay
?
@vimaxwell We have tested it but found that it is still not very stable after repair. The test method is https://github.com/dragonflydb/dragonfly/issues/1285 You can test it yourself.
Can you give some numbers for 'not very stable'? In my tests I see mean: 425.78, standard deviation: 374.26
with some small spikes around 1000us, but definitely not 40ms spikes.
I got it
I'll test it again soon.
2023/08/30 Test results:
Redis
root@ip-10-0-101-131:~/repo/juicefs# addr=redis://10.0.101.178:6379/7 go test -count=1 -v ./pkg/meta/... -run=TestDgfAndRedis
=== RUN TestDgfAndRedis
2023/08/30 05:52:54.820961 juicefs[81643] <INFO>: Meta address: redis://10.0.101.178:6379/7 [interface.go:494]
2023/08/30 05:52:54.821797 juicefs[81643] <WARNING>: AOF is not enabled, you may lose data if Redis is not shutdown properly. [info.go:84]
2023/08/30 05:52:54.821953 juicefs[81643] <INFO>: Ping redis latency: 80.821µs [redis.go:3523]
2023/08/30 05:52:54.822138 juicefs[81643] <WARNING>: Existing volume will be overwrited: {
"Name": "benchmarkAll",
"UUID": "",
"Storage": "",
"Bucket": "",
"BlockSize": 0,
"TrashDays": 0
} [config.go:96]
2023/08/30 05:52:54.822780 juicefs[81643] <INFO>: Create session 2 OK with version: 1.1.0-dev+unknown [base.go:474]
benchmarks_test.go:673: number: 0: cost: 380 us
benchmarks_test.go:673: number: 1: cost: 371 us
benchmarks_test.go:673: number: 2: cost: 368 us
benchmarks_test.go:673: number: 3: cost: 378 us
benchmarks_test.go:673: number: 4: cost: 385 us
benchmarks_test.go:673: number: 5: cost: 372 us
benchmarks_test.go:673: number: 6: cost: 367 us
benchmarks_test.go:673: number: 7: cost: 372 us
benchmarks_test.go:673: number: 8: cost: 371 us
benchmarks_test.go:673: number: 9: cost: 360 us
benchmarks_test.go:673: number: 10: cost: 372 us
benchmarks_test.go:673: number: 11: cost: 379 us
benchmarks_test.go:673: number: 12: cost: 373 us
benchmarks_test.go:673: number: 13: cost: 364 us
benchmarks_test.go:673: number: 14: cost: 366 us
benchmarks_test.go:673: number: 15: cost: 399 us
benchmarks_test.go:673: number: 16: cost: 381 us
benchmarks_test.go:673: number: 17: cost: 366 us
benchmarks_test.go:673: number: 18: cost: 389 us
benchmarks_test.go:673: number: 19: cost: 380 us
benchmarks_test.go:673: number: 20: cost: 372 us
benchmarks_test.go:673: number: 21: cost: 361 us
benchmarks_test.go:673: number: 22: cost: 369 us
benchmarks_test.go:673: number: 23: cost: 365 us
benchmarks_test.go:673: number: 24: cost: 370 us
benchmarks_test.go:673: number: 25: cost: 391 us
benchmarks_test.go:673: number: 26: cost: 371 us
benchmarks_test.go:673: number: 27: cost: 374 us
benchmarks_test.go:673: number: 28: cost: 366 us
benchmarks_test.go:673: number: 29: cost: 371 us
benchmarks_test.go:673: number: 30: cost: 363 us
benchmarks_test.go:673: number: 31: cost: 376 us
benchmarks_test.go:673: number: 32: cost: 367 us
benchmarks_test.go:673: number: 33: cost: 365 us
benchmarks_test.go:673: number: 34: cost: 366 us
benchmarks_test.go:673: number: 35: cost: 436 us
benchmarks_test.go:673: number: 36: cost: 383 us
benchmarks_test.go:673: number: 37: cost: 368 us
benchmarks_test.go:673: number: 38: cost: 360 us
benchmarks_test.go:673: number: 39: cost: 365 us
benchmarks_test.go:673: number: 40: cost: 371 us
benchmarks_test.go:673: number: 41: cost: 392 us
benchmarks_test.go:673: number: 42: cost: 378 us
benchmarks_test.go:673: number: 43: cost: 402 us
benchmarks_test.go:673: number: 44: cost: 362 us
benchmarks_test.go:673: number: 45: cost: 375 us
benchmarks_test.go:673: number: 46: cost: 474 us
benchmarks_test.go:673: number: 47: cost: 382 us
benchmarks_test.go:673: number: 48: cost: 373 us
benchmarks_test.go:673: number: 49: cost: 367 us
benchmarks_test.go:673: number: 50: cost: 381 us
benchmarks_test.go:673: number: 51: cost: 369 us
benchmarks_test.go:673: number: 52: cost: 366 us
benchmarks_test.go:673: number: 53: cost: 365 us
benchmarks_test.go:673: number: 54: cost: 366 us
benchmarks_test.go:673: number: 55: cost: 398 us
benchmarks_test.go:673: number: 56: cost: 376 us
benchmarks_test.go:673: number: 57: cost: 360 us
benchmarks_test.go:673: number: 58: cost: 359 us
benchmarks_test.go:673: number: 59: cost: 380 us
benchmarks_test.go:673: number: 60: cost: 365 us
benchmarks_test.go:673: number: 61: cost: 377 us
benchmarks_test.go:673: number: 62: cost: 378 us
benchmarks_test.go:673: number: 63: cost: 377 us
benchmarks_test.go:673: number: 64: cost: 375 us
benchmarks_test.go:673: number: 65: cost: 386 us
benchmarks_test.go:673: number: 66: cost: 381 us
benchmarks_test.go:673: number: 67: cost: 364 us
benchmarks_test.go:673: number: 68: cost: 402 us
benchmarks_test.go:673: number: 69: cost: 372 us
benchmarks_test.go:673: number: 70: cost: 375 us
benchmarks_test.go:673: number: 71: cost: 386 us
benchmarks_test.go:673: number: 72: cost: 373 us
benchmarks_test.go:673: number: 73: cost: 373 us
benchmarks_test.go:673: number: 74: cost: 375 us
benchmarks_test.go:673: number: 75: cost: 368 us
benchmarks_test.go:673: number: 76: cost: 375 us
benchmarks_test.go:673: number: 77: cost: 376 us
benchmarks_test.go:673: number: 78: cost: 374 us
benchmarks_test.go:673: number: 79: cost: 374 us
benchmarks_test.go:673: number: 80: cost: 367 us
benchmarks_test.go:673: number: 81: cost: 374 us
benchmarks_test.go:673: number: 82: cost: 364 us
benchmarks_test.go:673: number: 83: cost: 399 us
benchmarks_test.go:673: number: 84: cost: 408 us
benchmarks_test.go:673: number: 85: cost: 376 us
benchmarks_test.go:673: number: 86: cost: 371 us
benchmarks_test.go:673: number: 87: cost: 389 us
benchmarks_test.go:673: number: 88: cost: 381 us
benchmarks_test.go:673: number: 89: cost: 373 us
benchmarks_test.go:673: number: 90: cost: 378 us
benchmarks_test.go:673: number: 91: cost: 378 us
benchmarks_test.go:673: number: 92: cost: 382 us
benchmarks_test.go:673: number: 93: cost: 374 us
benchmarks_test.go:673: number: 94: cost: 420 us
benchmarks_test.go:673: number: 95: cost: 376 us
benchmarks_test.go:673: number: 96: cost: 392 us
benchmarks_test.go:673: number: 97: cost: 387 us
benchmarks_test.go:673: number: 98: cost: 395 us
benchmarks_test.go:673: number: 99: cost: 447 us
benchmarks_test.go:676: --------------------test redis://10.0.101.178:6379/7--------------------
benchmarks_test.go:677: mean: 378.05, standard deviation: 17.42
--- PASS: TestDgfAndRedis (0.10s)
PASS
ok github.com/juicedata/juicefs/pkg/meta 0.115s
Dragonfly without tcp_nodelay
(Second run result)
root@ip-10-0-101-131:~/repo/juicefs# addr=redis://10.0.101.178:6378/7 go test -count=1 -v ./pkg/meta/... -run=TestDgfAndRedis
=== RUN TestDgfAndRedis
2023/08/30 06:55:50.887379 juicefs[93142] <INFO>: Meta address: redis://10.0.101.178:6378/7 [interface.go:494]
2023/08/30 06:55:50.888428 juicefs[93142] <INFO>: Ping redis latency: 77.277µs [redis.go:3523]
2023/08/30 06:55:50.888640 juicefs[93142] <WARNING>: Existing volume will be overwrited: {
"Name": "benchmarkAll",
"UUID": "",
"Storage": "",
"Bucket": "",
"BlockSize": 0,
"TrashDays": 0
} [config.go:96]
2023/08/30 06:55:50.889807 juicefs[93142] <INFO>: Create session 2 OK with version: 1.1.0-dev+unknown [base.go:474]
2023/08/30 06:55:50.933023 juicefs[93142] <WARNING>: unexpected error for lookup: ERR Error running script (call to 8526c64984678fc27f67f44755c8ba7dcdf7ea60): @user_script:12: script tried accessing undeclared key [redis.go:695]
benchmarks_test.go:673: number: 0: cost: 43978 us
benchmarks_test.go:673: number: 1: cost: 43987 us
benchmarks_test.go:673: number: 2: cost: 44007 us
benchmarks_test.go:673: number: 3: cost: 43996 us
benchmarks_test.go:673: number: 4: cost: 43953 us
benchmarks_test.go:673: number: 5: cost: 43980 us
benchmarks_test.go:673: number: 6: cost: 43972 us
benchmarks_test.go:673: number: 7: cost: 43993 us
benchmarks_test.go:673: number: 8: cost: 44000 us
benchmarks_test.go:673: number: 9: cost: 43974 us
benchmarks_test.go:673: number: 10: cost: 43990 us
benchmarks_test.go:673: number: 11: cost: 44003 us
benchmarks_test.go:673: number: 12: cost: 43988 us
benchmarks_test.go:673: number: 13: cost: 43963 us
benchmarks_test.go:673: number: 14: cost: 43981 us
benchmarks_test.go:673: number: 15: cost: 44021 us
benchmarks_test.go:673: number: 16: cost: 43965 us
benchmarks_test.go:673: number: 17: cost: 44024 us
benchmarks_test.go:673: number: 18: cost: 43949 us
benchmarks_test.go:673: number: 19: cost: 43973 us
benchmarks_test.go:673: number: 20: cost: 43998 us
benchmarks_test.go:673: number: 21: cost: 43957 us
benchmarks_test.go:673: number: 22: cost: 44009 us
benchmarks_test.go:673: number: 23: cost: 44017 us
benchmarks_test.go:673: number: 24: cost: 43935 us
benchmarks_test.go:673: number: 25: cost: 44056 us
benchmarks_test.go:673: number: 26: cost: 43976 us
benchmarks_test.go:673: number: 27: cost: 43956 us
benchmarks_test.go:673: number: 28: cost: 43978 us
benchmarks_test.go:673: number: 29: cost: 43964 us
benchmarks_test.go:673: number: 30: cost: 43980 us
benchmarks_test.go:673: number: 31: cost: 44031 us
benchmarks_test.go:673: number: 32: cost: 43971 us
benchmarks_test.go:673: number: 33: cost: 43980 us
benchmarks_test.go:673: number: 34: cost: 44028 us
benchmarks_test.go:673: number: 35: cost: 43989 us
benchmarks_test.go:673: number: 36: cost: 43941 us
benchmarks_test.go:673: number: 37: cost: 44005 us
benchmarks_test.go:673: number: 38: cost: 43986 us
benchmarks_test.go:673: number: 39: cost: 44002 us
benchmarks_test.go:673: number: 40: cost: 43981 us
benchmarks_test.go:673: number: 41: cost: 43976 us
benchmarks_test.go:673: number: 42: cost: 43971 us
benchmarks_test.go:673: number: 43: cost: 43995 us
benchmarks_test.go:673: number: 44: cost: 43977 us
benchmarks_test.go:673: number: 45: cost: 44038 us
benchmarks_test.go:673: number: 46: cost: 43967 us
benchmarks_test.go:673: number: 47: cost: 43979 us
benchmarks_test.go:673: number: 48: cost: 43984 us
benchmarks_test.go:673: number: 49: cost: 43983 us
benchmarks_test.go:673: number: 50: cost: 44000 us
benchmarks_test.go:673: number: 51: cost: 43980 us
benchmarks_test.go:673: number: 52: cost: 43968 us
benchmarks_test.go:673: number: 53: cost: 43985 us
benchmarks_test.go:673: number: 54: cost: 44004 us
benchmarks_test.go:673: number: 55: cost: 43985 us
benchmarks_test.go:673: number: 56: cost: 43997 us
benchmarks_test.go:673: number: 57: cost: 43987 us
benchmarks_test.go:673: number: 58: cost: 44001 us
benchmarks_test.go:673: number: 59: cost: 43972 us
benchmarks_test.go:673: number: 60: cost: 43988 us
benchmarks_test.go:673: number: 61: cost: 43990 us
benchmarks_test.go:673: number: 62: cost: 43982 us
benchmarks_test.go:673: number: 63: cost: 43986 us
benchmarks_test.go:673: number: 64: cost: 43985 us
benchmarks_test.go:673: number: 65: cost: 43945 us
benchmarks_test.go:673: number: 66: cost: 43995 us
benchmarks_test.go:673: number: 67: cost: 43991 us
benchmarks_test.go:673: number: 68: cost: 44001 us
benchmarks_test.go:673: number: 69: cost: 43997 us
benchmarks_test.go:673: number: 70: cost: 43954 us
benchmarks_test.go:673: number: 71: cost: 44010 us
benchmarks_test.go:673: number: 72: cost: 44033 us
benchmarks_test.go:673: number: 73: cost: 43964 us
benchmarks_test.go:673: number: 74: cost: 43954 us
benchmarks_test.go:673: number: 75: cost: 43979 us
benchmarks_test.go:673: number: 76: cost: 43989 us
benchmarks_test.go:673: number: 77: cost: 44008 us
benchmarks_test.go:673: number: 78: cost: 43979 us
benchmarks_test.go:673: number: 79: cost: 44004 us
benchmarks_test.go:673: number: 80: cost: 43995 us
benchmarks_test.go:673: number: 81: cost: 43977 us
benchmarks_test.go:673: number: 82: cost: 43997 us
benchmarks_test.go:673: number: 83: cost: 43978 us
benchmarks_test.go:673: number: 84: cost: 43980 us
benchmarks_test.go:673: number: 85: cost: 44000 us
benchmarks_test.go:673: number: 86: cost: 43973 us
benchmarks_test.go:673: number: 87: cost: 44030 us
benchmarks_test.go:673: number: 88: cost: 43959 us
benchmarks_test.go:673: number: 89: cost: 43970 us
benchmarks_test.go:673: number: 90: cost: 43999 us
benchmarks_test.go:673: number: 91: cost: 43972 us
benchmarks_test.go:673: number: 92: cost: 43990 us
benchmarks_test.go:673: number: 93: cost: 44005 us
benchmarks_test.go:673: number: 94: cost: 43984 us
benchmarks_test.go:673: number: 95: cost: 43990 us
benchmarks_test.go:673: number: 96: cost: 44014 us
benchmarks_test.go:673: number: 97: cost: 43948 us
benchmarks_test.go:673: number: 98: cost: 43990 us
benchmarks_test.go:673: number: 99: cost: 44000 us
benchmarks_test.go:676: --------------------test redis://10.0.101.178:6378/7--------------------
benchmarks_test.go:677: mean: 43986.71, standard deviation: 21.64
--- PASS: TestDgfAndRedis (9.07s)
PASS
ok github.com/juicedata/juicefs/pkg/meta 9.083s
Dragonfly with tcp_nodelay
root@ip-10-0-101-131:~/repo/juicefs# addr=redis://10.0.101.178:6378/7 go test -count=1 -v ./pkg/meta/... -run=TestDgfAndRedis
=== RUN TestDgfAndRedis
2023/08/30 05:51:49.680699 juicefs[81430] <INFO>: Meta address: redis://10.0.101.178:6378/7 [interface.go:494]
2023/08/30 05:51:49.681852 juicefs[81430] <INFO>: Ping redis latency: 81.495µs [redis.go:3523]
2023/08/30 05:51:49.682073 juicefs[81430] <WARNING>: Existing volume will be overwrited: {
"Name": "benchmarkAll",
"UUID": "",
"Storage": "",
"Bucket": "",
"BlockSize": 0,
"TrashDays": 0
} [config.go:96]
2023/08/30 05:51:49.682834 juicefs[81430] <INFO>: Create session 4 OK with version: 1.1.0-dev+unknown [base.go:474]
2023/08/30 05:51:49.683599 juicefs[81430] <WARNING>: unexpected error for lookup: ERR Error running script (call to 8526c64984678fc27f67f44755c8ba7dcdf7ea60): @user_script:12: script tried accessing undeclared key [redis.go:695]
benchmarks_test.go:673: number: 0: cost: 559 us
benchmarks_test.go:673: number: 1: cost: 580 us
benchmarks_test.go:673: number: 2: cost: 566 us
benchmarks_test.go:673: number: 3: cost: 610 us
benchmarks_test.go:673: number: 4: cost: 578 us
benchmarks_test.go:673: number: 5: cost: 543 us
benchmarks_test.go:673: number: 6: cost: 558 us
benchmarks_test.go:673: number: 7: cost: 561 us
benchmarks_test.go:673: number: 8: cost: 548 us
benchmarks_test.go:673: number: 9: cost: 545 us
benchmarks_test.go:673: number: 10: cost: 561 us
benchmarks_test.go:673: number: 11: cost: 531 us
benchmarks_test.go:673: number: 12: cost: 572 us
benchmarks_test.go:673: number: 13: cost: 555 us
benchmarks_test.go:673: number: 14: cost: 550 us
benchmarks_test.go:673: number: 15: cost: 544 us
benchmarks_test.go:673: number: 16: cost: 552 us
benchmarks_test.go:673: number: 17: cost: 549 us
benchmarks_test.go:673: number: 18: cost: 556 us
benchmarks_test.go:673: number: 19: cost: 564 us
benchmarks_test.go:673: number: 20: cost: 554 us
benchmarks_test.go:673: number: 21: cost: 547 us
benchmarks_test.go:673: number: 22: cost: 556 us
benchmarks_test.go:673: number: 23: cost: 587 us
benchmarks_test.go:673: number: 24: cost: 586 us
benchmarks_test.go:673: number: 25: cost: 594 us
benchmarks_test.go:673: number: 26: cost: 566 us
benchmarks_test.go:673: number: 27: cost: 551 us
benchmarks_test.go:673: number: 28: cost: 543 us
benchmarks_test.go:673: number: 29: cost: 532 us
benchmarks_test.go:673: number: 30: cost: 536 us
benchmarks_test.go:673: number: 31: cost: 537 us
benchmarks_test.go:673: number: 32: cost: 536 us
benchmarks_test.go:673: number: 33: cost: 541 us
benchmarks_test.go:673: number: 34: cost: 538 us
benchmarks_test.go:673: number: 35: cost: 553 us
benchmarks_test.go:673: number: 36: cost: 590 us
benchmarks_test.go:673: number: 37: cost: 565 us
benchmarks_test.go:673: number: 38: cost: 574 us
benchmarks_test.go:673: number: 39: cost: 556 us
benchmarks_test.go:673: number: 40: cost: 550 us
benchmarks_test.go:673: number: 41: cost: 570 us
benchmarks_test.go:673: number: 42: cost: 583 us
benchmarks_test.go:673: number: 43: cost: 564 us
benchmarks_test.go:673: number: 44: cost: 552 us
benchmarks_test.go:673: number: 45: cost: 533 us
benchmarks_test.go:673: number: 46: cost: 565 us
benchmarks_test.go:673: number: 47: cost: 551 us
benchmarks_test.go:673: number: 48: cost: 567 us
benchmarks_test.go:673: number: 49: cost: 544 us
benchmarks_test.go:673: number: 50: cost: 533 us
benchmarks_test.go:673: number: 51: cost: 533 us
benchmarks_test.go:673: number: 52: cost: 545 us
benchmarks_test.go:673: number: 53: cost: 558 us
benchmarks_test.go:673: number: 54: cost: 551 us
benchmarks_test.go:673: number: 55: cost: 542 us
benchmarks_test.go:673: number: 56: cost: 563 us
benchmarks_test.go:673: number: 57: cost: 600 us
benchmarks_test.go:673: number: 58: cost: 590 us
benchmarks_test.go:673: number: 59: cost: 568 us
benchmarks_test.go:673: number: 60: cost: 572 us
benchmarks_test.go:673: number: 61: cost: 564 us
benchmarks_test.go:673: number: 62: cost: 552 us
benchmarks_test.go:673: number: 63: cost: 575 us
benchmarks_test.go:673: number: 64: cost: 600 us
benchmarks_test.go:673: number: 65: cost: 554 us
benchmarks_test.go:673: number: 66: cost: 563 us
benchmarks_test.go:673: number: 67: cost: 528 us
benchmarks_test.go:673: number: 68: cost: 537 us
benchmarks_test.go:673: number: 69: cost: 522 us
benchmarks_test.go:673: number: 70: cost: 547 us
benchmarks_test.go:673: number: 71: cost: 571 us
benchmarks_test.go:673: number: 72: cost: 585 us
benchmarks_test.go:673: number: 73: cost: 592 us
benchmarks_test.go:673: number: 74: cost: 598 us
benchmarks_test.go:673: number: 75: cost: 577 us
benchmarks_test.go:673: number: 76: cost: 565 us
benchmarks_test.go:673: number: 77: cost: 556 us
benchmarks_test.go:673: number: 78: cost: 550 us
benchmarks_test.go:673: number: 79: cost: 543 us
benchmarks_test.go:673: number: 80: cost: 573 us
benchmarks_test.go:673: number: 81: cost: 546 us
benchmarks_test.go:673: number: 82: cost: 544 us
benchmarks_test.go:673: number: 83: cost: 539 us
benchmarks_test.go:673: number: 84: cost: 538 us
benchmarks_test.go:673: number: 85: cost: 562 us
benchmarks_test.go:673: number: 86: cost: 546 us
benchmarks_test.go:673: number: 87: cost: 519 us
benchmarks_test.go:673: number: 88: cost: 546 us
benchmarks_test.go:673: number: 89: cost: 568 us
benchmarks_test.go:673: number: 90: cost: 545 us
benchmarks_test.go:673: number: 91: cost: 555 us
benchmarks_test.go:673: number: 92: cost: 573 us
benchmarks_test.go:673: number: 93: cost: 557 us
benchmarks_test.go:673: number: 94: cost: 581 us
benchmarks_test.go:673: number: 95: cost: 566 us
benchmarks_test.go:673: number: 96: cost: 543 us
benchmarks_test.go:673: number: 97: cost: 543 us
benchmarks_test.go:673: number: 98: cost: 539 us
benchmarks_test.go:673: number: 99: cost: 655 us
benchmarks_test.go:676: --------------------test redis://10.0.101.178:6378/7--------------------
benchmarks_test.go:677: mean: 558.75, standard deviation: 20.96
--- PASS: TestDgfAndRedis (0.16s)
PASS
ok github.com/juicedata/juicefs/pkg/meta 0.174s
When the tcp_nodelay
parameter is used, the previous instability problem does not exist. The test results is about 30-50% slower than redis, so we think that in the case of `tcp_nodelay``, Dragonfly can be used as a metadata engine for Juicefs just like redis.
When Dragonfly as the metadata engine for JuiceFS,must use tcp_nodelay
or the performance is close to unuseable.( may be caused by my compilation method ? please use pre-compiled 1.8,it is works fine without using tcp_nodelay.)
@vimaxwell @royjacobson @solracsf
Use Dragonfly version of pre-compiled 1.8 can works fine without using tcp_nodelay
.
The above problem may be caused by my compilation method. @vimaxwell @royjacobson @solracsf
That's really weird. I would not expect that to affect anything in this context. Can you compile from tag v1.8.0 instead of building from latest?
@romange what can explain Dragonfly up to 50% slower than redis? 🤔
Dragonfly has higher avg latency when running locally since it is designed to serve requests remotely. Its multi threaded shared nothing architecture contributes additional latency.
The latency bug should be fixed now on our side. Thanks again for your help in pointing out and understanding the issue!