4paradigm / 4paradigm/OpenMLDB

Optimize concurrent access for aggregators

Aperta
#1,559 5 commenti 0 reazioni 2 assegnatari Rivendicata da @zhanghaohit Vedi su GitHub
enhancement
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.