database - tamaño - mysql workbench aws connect
Varias instancias de una base de datos de nivelDB al mismo tiempo (3)
Desafortunadamente, LevelDB está diseñado de esa manera y no permite que se abra más de una sola instancia de la base de datos. Todas las opciones son para un único proceso, pero si tiene múltiples hilos, entonces puede obtener una instantánea e iterar sobre ella en modo de solo lectura (permitiendo que otros hilos lean / escriban en la base de datos subyacente al mismo tiempo).
¿Quieres lograr un comportamiento específico? Si es así, díganos qué es y podremos ayudarlo.
¿Hay alguna manera de acceder a una base de datos de nivelDB desde varios programas? ¿Hay algún tipo de opción para abrir la base de datos como de solo lectura?
Por ahora, cuando abro la misma base de datos a los programas que obtengo:
/path/to/dir/with/levelDBdatabase/LOCK: Resource temporarily unavailable
¡Aclamaciones!
Si solo necesita acceso de solo lectura , cada proceso puede crear una copia de la carpeta LevelDB :
cp -r /path/to/dir/with/levelDBdatabase /path/to/dir/with/levelDBdatabase-copy1
Luego, en lugar de usar la base de levelDBdatabase
original, use levelDBdatabase-copy1
.
Cuando el programa finaliza, la copia se puede eliminar de forma segura.
Pude hacer esto en Linux haciendo que cada proceso creara un directorio propio (por ejemplo, $ HOME / .leveldb / myprogram_myPID) y luego hago:
ln -s -t $HOME/.leveldb/myprogram_myPID /path/to/dir/with/levelDBdatabase/*
rm $HOME/.leveldb/myprogram_myPID/LOCK
touch $HOME/.leveldb/myprogram_myPID/LOCK
Entonces $ HOME / .leveldb / myprogram_myPID se puede utilizar como una base de datos leveldb de solo lectura y varias instancias del proceso pueden hacer esto al mismo tiempo sin copiar toda la base de datos.
Probablemente sea conveniente usar una instantánea para acceder a la base de datos después de hacer esto para evitar escribir accidentalmente. Además, recuerde eliminar el nuevo directorio cuando finalice el proceso.