micro-analytics / micro-analytics/micro-analytics-cli

atomicity and db operation concerns

Ouverte
#40 2 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

discussion
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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. 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

Recevez les nouvelles issues par e-mail

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