micro-analytics / micro-analytics/micro-analytics-cli
atomicity and db operation concerns
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 732
- Forks
- 39
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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?
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza leyendo la utilidad pushView y los dos adaptadores de base de datos; después, sigue cómo su operación put actual realiza las comprobaciones has/get, el bloqueo y las inserciones en transacciones. Decide el contrato de put orientado al adaptador, incluido cómo recibe la clave y determina el count, preservando la API existente cuando sea necesario. Se considera terminado cuando ambos adaptadores admiten el comportamiento acordado de operaciones atómicas sin bloqueos compartidos forzados.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, node.js
- Área
- backend, databases
- Tipo de issue
- Refactorización
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100