4paradigm / 4paradigm/OpenMLDB

Optimize concurrent access for aggregators

Ouverte
#1,559 5 commentaires 0 réactions 2 personnes assignées Réclamée par @zhanghaohit Voir sur GitHub
enhancement
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.