4paradigm / 4paradigm/OpenMLDB
Optimize concurrent access for aggregators
- Lingua principale
- C++
- Stelle
- 1.7k
- Fork
- 331
- Merge medio
- 12g 12h
- PR unite (30g)
- 1
Descrizione
**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
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Gli aggregatori sono definiti in src/storage/aggregator.h e vengono utilizzati durante le richieste Put. Esaminate l'uso attuale dei mutex e i modelli di accesso concorrente. Cercate librerie di hashmap concorrenti di terze parti oppure operazioni atomiche adatte a C++. Una modifica corretta manterrà la thread safety riducendo al contempo l'overhead di memoria e probabilmente richiederà dei benchmark.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- backend, databases, performance
- Tipo di issue
- Refactoring
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 25/100