apache / apache/iotdb

[Bug] Limiting memory does not degrade query latency

Offen
#17,070 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
6.4k
Forks
1.2k
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
115

Beschreibung

### Search before asking

- [x] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.

### Version

1.1.3 and 1.3.4 (tested with standalone Docker image)

### Describe the bug and provide the minimal reproduce step

While testing IoTDB under limited memory configurations, using docker for that effect, it was found that the database's performance won't drop until the threshold of 4GB of memory is hit, despite it always using the maximum amount of memory allocated for the container.

It was expected that progressively constraining the database's available memory would lead to gradual performance degradation, but instead IoTDB maintains virtually identical query latency across the tested memory limits, despite always consuming the maximum amount of memory available to the container.

Minimal reprodution steps:

1. Launch IoTDB in standalone mode with constrained memory using Docker Compose
2. Preload data before executing queries
3. Execue a query workload, using the same for every memory configuration

The queries follow the following templates:
```sql
-- Aggregation
select agg_func(field) from path where time >= start and time <= end

-- Downsampling
select field from path group by ([start, end), step)

-- Outlier-filter
select field from path where time >= start and time <= end and field [>,>=,<,<=] threshold
```

Image

Image

### What did you expect to see?

Either performance degradation as memory limits get increasingly smaller, or the container not using all the memory available to it, if it is able to maintain performance with less memory usage.

### What did you see instead?

Performance didn't degrade until the 4GB memory limit, remaining similar regardless of the limit used, despite the database always using the maximum memory allocated to it.

### Anything else?

The tests were run using [MulletBench](https://github.com/pedropereira98/MulletBench/tree/main), as well as plot generation.

### Are you willing to submit a PR?

- [ ] I'm willing to submit a PR!

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die gemeldete Workload aus MulletBench mithilfe der in der Issue beschriebenen Docker-Compose-Speicherkonfigurationen zu reproduzieren, und vergleiche die Abfragelatenz mit der Speichernutzung des Containers. Verfolge das Datenbankverhalten, das für die unveränderte Latenz über die Limits hinweg verantwortlich ist; als abgeschlossen gilt die Arbeit, wenn die Ursache identifiziert und eine Korrektur anhand der Workloads für Aggregation, Downsampling und Ausreißerfilter validiert wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
docker, java, sql
Bereich
databases, performance
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.