Remove O(m) DB queries
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
- Área
- api, databases, performance
Línea de trabajo
Comienza localizando los puntos de entrada del Indexer para las consultas de Asset-type UTXO, la agregación de cuentas, la creación de snapshots y las APIs utilizadas por la billetera web o el Hub. Revisa cómo estas consultas recorren actualmente los resultados y determina los cambios necesarios en la API y el consumidor para que los resultados se obtengan en lotes acotados; el trabajo estará terminado cuando ninguna solicitud individual recorra todos los m UTXOs.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When querying UTXOs using Asset type, aggregating UTXOs by account, and creating a snapshot, the Indexer scans all the UTXOs that have a specific account or a specific asset type.
When a user opens a CodeChain web wallet, wallet requests the total amount of assets that the user has to the Indexer. Indexer sends a query that scans all the UTXOs that the user has. If the number of UTXOs that the user has is m, the upper bound of the query is O(m).
How to solve
Make APIs return sub results that read k rows in the DB. The Web wallet or Hub should request the maximum [n/k] number of API calls to get all the results. The upper bound of each query is O(k*log m). Then there won't be a single slow query that consumes all the resources(CPU, Memory, disk I/O) in the DB.
- Lenguaje dominante
- TypeScript
- Estrellas
- 21
- Forks
- 15
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin 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.
Más de CodeChain-io/codechain-indexer
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 45/100
-
Use recent version of PostgreSQLAbiertomaintenance
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Todos los issues de CodeChain-io/codechain-indexer
Issues similares
-
Add: VIVE TVAbiertoapproved check:passed streams:add
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
iptv-org/iptv#55293 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Fission-AI/OpenSpec#2084 ·
Los mantenedores suelen responder en 2 días
-
Contrib indemnité de départ à la retraite : faire le pont avec le simulateur sur la page génériqueAbiertoP1
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
SocialGouv/code-du-travail-numerique#7561 ·
Los mantenedores suelen responder en 1 día
-
beginner bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
hiero-ledger/hiero-sdk-js#4517 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
kubernetes-sigs/headlamp#7950 ·
Los mantenedores suelen responder en 3 días