Explore using OPFS as an attachment store instead of idv/indexeddb blobs
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
- javascript
- Área
- databases
Línea de trabajo
Comienza con el enlace de OPFS y la discusión en el issue #9167. Investiga la atomicidad entre OPFS e IndexedDB, la API de acceso síncrono exclusiva para workers y la limpieza de archivos adjuntos no referenciados durante la compactación. Se considerará terminado cuando se documente un enfoque viable y su comportamiento de recuperación ante fallos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Idea via @SourceR85 in https://github.com/apache/pouchdb/issues/9167#issuecomment-3755310344
Things to consider:
- How can we ensure transactionality between two different data stores?
- IndexedDB transactions auto-commit on the end of the runloop, so we cannot do asynchronous tasks inside an IndexedDB transaction
- OPFS has a synchronous file access API, but that is only available in a worker for not-blocking-the-main-thread reasons
- A possible solution could write the attachments first and then start the IndexedDB transaction, but if the transaction fails, we might leave unreferenced attachments in OPFS that do not show up in IndexedDB. For that we would need a cleanup task that is not too expensive, so we can run it during compaction
- Lenguaje dominante
- JavaScript
- Estrellas
- 17.6k
- Forks
- 1.5k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la 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 apache/pouchdb
-
elemMatch throws TypeError: value is null if array has null elementPosiblemente ocupada @henyanagar la tomó hace 144 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
unref event is not documentedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Validate database namesAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 22/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
Todos los issues de apache/pouchdb
Issues similares
-
chore
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
idean3885/claude-ops-agent#910 ·
Los mantenedores suelen responder en 1 día
-
S: triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
oskarrough/agent-ide#29 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Add: Trinitas TV LogoAbiertocheck:passed logos:add
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
Los mantenedores suelen responder en 4 días
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
WikiEducationFoundation/WikiEduDashboard#7258 ·
Los mantenedores suelen responder en 1 día