4paradigm / 4paradigm/OpenMLDB
Optimize concurrent access for aggregators
- Langage dominant
- C++
- Étoiles
- 1.7k
- Forks
- 331
- Merge moyen
- 12 j 12 h
- PR mergées (30 j)
- 1
Description
**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
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Les agrégateurs sont définis dans src/storage/aggregator.h et sont utilisés lors des requêtes Put. Examinez l’utilisation actuelle des mutex et les modèles d’accès concurrent. Recherchez des bibliothèques tierces de tables de hachage concurrentes ou des opérations atomiques adaptées à C++. Une modification réussie maintiendra la sûreté vis-à-vis des threads tout en réduisant la surcharge mémoire, et nécessitera probablement des benchmarks.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- backend, databases, performance
- Type d'issue
- Refactorisation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100