hlilo-website/data/miam/ateliers/001-infra-debug-synapse.md

102 lines
3.1 KiB
Markdown
Raw Normal View History

2023-03-30 13:56:56 +00:00
# CR-2023-03-17 | Synapse | Tedomum.net
## Très courte description
Infra | Debug | Synapse - Pic d'utilisation CPUs
## Courte description
> _À L'occasion d'une session improvisée de **documentation croisée** : kaiyou debug l'instance synapse de (tedomum.net) qui rencontre des pics CPU. reminec prends des notes pour engrenger du savoir sur synapse / Matrix._
## Description
### Salons #Synapse
**#Synapse** modèlise la **relation** entre les **salons** via un **Graphe Orienté Acyclique** (DAG)[Voir plus bas].
Celui-ci se voit **distribué** et **répliqué** sur les différents serveurs.
> ⚠️ De temps en temps, ce processus peut occasionner des nécessités d'**opérations de maintenance**.
![Schéma de Graphe Orienté Acyclique](https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Tred-G.svg/220px-Tred-G.svg.png)
_Ne boucle pas sur lui même (Ex: les noeuds ne peuvent former un cercle)_
Voir [Wikipedia - Graphe Orienté Acyclique](https://fr.wikipedia.org/wiki/Graphe_orient%C3%A9_acyclique)
#### En savoir plus
* #Synapse Room DAG Concept (https://github.com/matrix-org/synapse/blob/develop/docs/development/room-dag-concepts.md)
* #Matrix - Rooms (https://spec.matrix.org/unstable/rooms/)
### Opérations de maintenance
#### Nettoyage des 'extremites' des salons
#Synapse peut rencontrer quelques défauts dus à la nature distribuée du **DAG** répliqué.
Des **pics de CPUs** interviennent lors de la résolution d'état des salons (room).
Une opération de maintenance peut être nécessaire.
Pour récupérer **la liste des salons à nettoyer**, executer cette requette SQL :
```sql
select room_id, count(*) c from event_forward_extremities group by room_id order by c desc limit 20;
```
Puis appeler l'API dédiée à cette effet
```sh
synadm DELETE 'v1/rooms/!fzfHhoTplYBEXfWOaI:matrix.org/forward_extremities'
```
### Bug connu
#### #Synapse - 'Extremites' des salons qui grossissent
Status : Ouvert
##### Description
_Le souci est toujours celui-là : https://github.com/matrix-org/synapse/issues/1760_
Il y a toujours des **défauts** dus à la nature distribuée du DAG répliqué, et l'algo de résolution d'état pour une room qui **explose en performances quand le nombre d'extrémités** (occurrences du défaut si l'on veut) **grandit**.
##### Correction
* **opération de maintenance** régulière : Nettoyage des extremities des salons
##### Détection
* pic de CPUs
### Définitions
#### Graphe Orienté Acyclique
**English** : _Directed acyclic graph_
Grosso modo un DAG c'est un arbre dont les branches peuvent se croiser, mais qui va dans une direction globale et ne boucle pas sur lui même.
[Illustration d'un DAG Graphe Orienté Acyclique]
##### Exemples
Un historique git.
##### En savoir plus
https://fr.wikipedia.org/wiki/Graphe_orient%C3%A9_acyclique
## Licenses
CC-BY-SA
## Auteurices
* kaiyou @ acides.org (Tedomum.net)
* reminec @ acides.org (Tedomum.net)
## Versions
### v1.0.1
_Date: 18 mars 2023 | Temps : 5min_
* Corrections mineurs sur le formatage
### v1.0.0
_Date : 17 mars 2023 | Temps rédaction : 1h_
* Initialisation du document & formatage