4paradigm / 4paradigm/OpenMLDB

Optimize concurrent access for aggregators

Offen
#1,559 5 Kommentare 0 Reaktionen 2 zugewiesene Personen Beansprucht von @zhanghaohit Auf GitHub ansehen
enhancement
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

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