DBSIZE takes time in minutes and keyspace info missing when SSD storage tier is enabled
- Dominant language
- C#
- Stars
- 12k
- Forks
- 703
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 36
Description
### Describe the bug
When running Garnet v1.0.87 with SSD storage tier enabled, the DBSIZE command becomes extremely slow (5-10 minutes) after loading data. Additionally, the INFO command does not show any keyspace section, even though keys exist in SSD tier.
- This issue is consistently reproducible.
### Steps to reproduce the bug
1. Start Garnet on a GCP C4D-HighMem-64 machine with the following configuration:
```
{
"Port": 6379,
"Address": "0.0.0.0",
"MemorySize": "16g",
"PageSize": "32m",
"SegmentSize": "4g",
"IndexSize": "16g",
"IndexMaxSize": "64g",
"IndexResizeFrequencySecs": 30,
"IndexResizeThreshold": 65,
"EnableReadCache": true,
"ReadCacheMemorySize": "420g",
"ReadCachePageSize": "2m",
"DisableObjects": true,
"EnableStorageTier": true,
"LogDir": "/mnt/localssd/garnet/log",
"CheckpointDir": "/mnt/localssd/garnet/ckpt",
"Recover": true,
"EnableAOF": false,
"CompactionFrequencySecs": 0,
"LogLevel": "Information",
"MetricsSamplingFrequency": 10
}
```
2. Load ~1.2 GB of data into the SSD tier using:
```
docker run --rm \
--cpus="$(nproc)" \
--memory="$(free -m | awk '/^Mem:/{print int($2*0.95)"m"}')" \
--network host \
redislabs/memtier_benchmark:latest \
-d 256000 \
--distinct-client-seed \
-h \
--ratio 1:0 \
--key-maximum 300000000 \
-c 15 -t "$(nproc)" \
--test-time 1000
```
3. After load is complete:
- Run DBSIZE → takes 5-10 minutes
- Run INFO → keyspace section is missing
### Expected behavior
- DBSIZE should return quickly without long blocking durations.
- INFO should display keyspace details even when keys are stored in SSD tier.
### Screenshots
### Release version
v1.0.87
### IDE
N/A (server-side issue)
### OS version
Ubuntu 24.04.3 LTS
### Additional context
_No response_
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the issue with the supplied Garnet configuration and benchmark, then run DBSIZE and INFO after the SSD-tier load completes. Trace the DBSIZE and INFO command paths alongside storage-tier key handling; done means DBSIZE returns without multi-minute blocking and INFO includes keyspace details for SSD-tier keys.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend, databases, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100