2012-03-30 15 views
11

Quiero entender más sobre el sistema y la arquitectura de base de datos de MongoDB.Arquitectura de base de datos MongoDB

Estoy tratando de entender cómo MongoDB almacena y recupera los documentos. Si todo está en la memoria, etc.

Un análisis comparativo entre MongoDB y Oracle será una ventaja, pero me estoy enfocando principalmente en comprender la arquitectura de MongoDB per se.

Cualquier apuntador será útil.

+0

No puedo afirmar que soy un experto, pero sin duda escribe en el disco (no estoy seguro de cuándo/con qué frecuencia/si siempre se vacía/si puede vaciar explícitamente). De hecho, arrebata bastante espacio (es probable que haga su indexación, supongo) –

+0

Como una comparación general, realmente general, los argumentos más grandes que he escuchado entre él y un DB relacional tradicional (como Oracle o MS SQL Server o MySQL) es uno de transaccionalidad/fiabilidad frente a escala extrema. Si no pierde el sueño por la noche si algunos de sus datos se destruyen, las opciones de NoSQL como Mongo son muy eficientes y pueden escalar a un * lote * de usuarios concurrentes. Sin embargo, si * necesita * garantías sobre sus datos, por ahora es mejor que se atenga a los dbs transaccionales. –

+0

Esta pregunta puede ser un poco más amplia que las pautas para las preguntas en SO. Recomiendo que vaya a los documentos de mongodb y lea el material que proporcionan. De particular interés será: http://www.mongodb.org/display/DOCS/Architecture+and+Components, http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+ Gráfico, http://www.mongodb.org/display/DOCS/Production+Notes Espero que esto ayude. – marr75

Respuesta

18

La memoria MongoDB asigna los archivos de la base de datos. Permite al sistema operativo controlar esto y asignar la cantidad máxima de RAM a la asignación de memoria. A medida que MongoDB actualiza y lee desde el DB, está leyendo y escribiendo en RAM. Todos los índices en los documentos en la base de datos también se guardan en la memoria RAM. Los archivos en la RAM se enjuagan en el disco cada 60 segundos. Para evitar la pérdida de datos en caso de fallo de alimentación, el valor predeterminado es ejecutarlo con el diario activado. El archivo de diario se vacía en el disco cada 100 ms y si se produce una pérdida de energía se utiliza para devolver la base de datos a un estado coherente. Una decisión de diseño importante con mongo es sobre la cantidad de RAM. Necesita averiguar su tamaño de conjunto de trabajo, es decir, si va a leer y escribir únicamente el 10% más reciente de sus datos en la base de datos, entonces este 10% es su conjunto de trabajo y debe guardarse en la memoria para obtener el máximo rendimiento . Por lo tanto, si su conjunto de trabajo es de 10 GB, necesitará 10 GB para un rendimiento máximo; de lo contrario, las consultas/actualizaciones se ejecutarán más lentamente a medida que las páginas de memoria se paginan desde el disco a la memoria. Otros aspectos importantes de mongoDB son la replicación para copias de seguridad y fragmentación para escalar. Hay una gran cantidad de excelentes recursos en línea para aprender. MongoDB es gratuito y de código abierto.

EDIT: Es una buena idea para retirar el tutorial http://www.mongodb.org/display/DOCS/Tutorial y manual http://www.mongodb.org/display/DOCS/Manual y la Zona de administrador es útil también http://www.mongodb.org/display/DOCS/Admin+Zone y si te aburres de leer a continuación, las presentaciones son vale la pena mirar. http://www.10gen.com/presentations

+0

gracias por la información. De hecho, estoy buscando información en la línea de su respuesta. Será genial obtener detalles similares. ¿Puede indicarme algún recurso en línea que tenga la arquitectura/diseño interno de MongoDB, etc.? – Ayusman

+0

replicación para escalamiento de lectura/consulta también (no solo copias de seguridad). –

+0

¿Crees que esto responde a tu pregunta o necesitas más ayuda? – Gregor

Cuestiones relacionadas