micro-analytics / micro-analytics/micro-analytics-cli
atomicity and db operation concerns
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 732
- Forks
- 39
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
So as a few people have brought up, we are mimicking locking in our pushView util function which seems to be doing the db adapter's job. For example, if a db solution supports a "add or increment" function or handles atomicity cross process, then we are introducing a performance bottleneck by having all adapters use our locks logic and 2-3 transaction inserts. For the record, I think it was a really good starting point but we should take it to the next level.
So, I think that the next phase of our adaptors, while there are only two, need to support the API that we provided but the put needs to be changed. If they need to manually call their this.has() and this.get() to reconcile what they need to do, then go for it, but we shouldn't force that. So we should change put (or possibly rename it) but we should give them the key and they need to resolve a promise with the count value.
What do you think?
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par lire l’utilitaire pushView et les deux adaptateurs de base de données, puis suivez la manière dont leur opération put actuelle effectue les vérifications has/get, le verrouillage et les insertions dans les transactions. Décidez du contrat de put côté adaptateur, notamment de la manière dont il reçoit la clé et résout le count, tout en préservant l’API existante lorsque cela est nécessaire. C’est terminé lorsque les deux adaptateurs prennent en charge le comportement convenu des opérations atomiques sans verrouillage partagé imposé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, node.js
- Domaine
- backend, databases
- Type d'issue
- Refactorisation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100