Remove O(m) DB queries
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- typescript
- Domínio
- api, databases, performance
Direção de pesquisa
Comece localizando os pontos de entrada do Indexer para consultas de Asset-type UTXO, agregação de contas, criação de snapshots e as APIs usadas pela carteira web ou pelo Hub. Revise como essas consultas percorrem os resultados atualmente e determine as mudanças necessárias na API e no consumidor para que os resultados sejam obtidos em lotes limitados; considera-se concluído quando nenhuma solicitação individual percorre todos os m UTXOs.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- TypeScript
- Estrelas
- 21
- Forks
- 15
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de CodeChain-io/codechain-indexer
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 42/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 45/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 45/100
-
maintenance
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
Todas as issues de CodeChain-io/codechain-indexer
Issues semelhantes
-
fix(frontend): correct VITE_IS_DEVELPOMENT typo in shared/app.ts and align dev environment flagsAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
vicharanashala/ajrasakha#1439 ·
Mantenedores costumam responder em até 1 dia
-
Add: TV5Monde AsieAbertaapproved check:passed streams:add
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
backnotprop/plannotator#1932 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 Meio dia Facilidade para iniciantes 62/100
ibm-granite/granite.build#504 ·
Mantenedores costumam responder em até 2 dias
-
reproduced
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
anomalyco/opencode#55676 · 1 comentário ·
Mantenedores costumam responder em até 1 dia