4paradigm / 4paradigm/OpenMLDB
Optimize concurrent access for aggregators
- Vorherrschende Sprache
- C++
- Sterne
- 1.7k
- Forks
- 331
- Ø Merge
- 12 T. 12 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
**Describe the feature you'd like**
The aggregators may be accessed concurrently. Now each of the aggregators is protected by its mutex. It is costly in terms of memory usage.
We should design a more efficient thread-safe method to access the aggregators.
Some possible directions:
1. introduce the implementation of concurrent hashmap from third-party libraries.
2. asynchronous update for the aggregators
3. introduce some `atomic` way to eliminate the `lock`
**Additional context**
pre-aggregators update during `Put` request
src/storage/aggregator.h
Beitragsleitfaden
Rechercherichtung
Die Aggregatoren sind in src/storage/aggregator.h definiert und werden während Put-Anfragen verwendet. Untersuchen Sie die aktuelle Verwendung von Mutexen und die Muster des gleichzeitigen Zugriffs. Recherchieren Sie Concurrent-Hashmap-Bibliotheken von Drittanbietern oder für C++ geeignete atomare Operationen. Eine erfolgreiche Änderung wird die Thread-Sicherheit aufrechterhalten und gleichzeitig den Speicherbedarf reduzieren; dafür sind wahrscheinlich Benchmarks erforderlich.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- backend, databases, performance
- Issue-Typ
- Refactoring
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 25/100