Acabo de empezar a jugar con Berkeley DB hace unos días, así que estoy tratando de ver si hay algo que me faltaba cuando se trata de almacenar datos lo más rápido posible.Optimizando el desempeño de Put en Berkeley DB
aquí hay algo de información sobre los datos: - se trata en 512 trozos de bytes - trozos vienen con el fin - trozos se eliminarán en orden FIFO - Si pierdo algunos datos fuera de la final debido a la falta de energía eléctrica que está bien siempre y cuando todo el archivo db no se haya roto
Después de leer un montón de la documentación, parecía que un Quebe db era exactamente lo que quería.
Sin embargo, después de probar algún código de prueba, mis resultados más rápidos fueron de aproximadamente 1MByte por segundo, simplemente haciendo un bucle a través de un DB-> puesto con el conjunto DB_APPEND. También traté de usar transacciones y posiciones masivas, pero ambas disminuyeron la velocidad considerablemente, así que no las seguí por mucho tiempo. Estaba insertando en un db nuevo creado en un chip NANDFlash en mi placa de desarrollo Freescale i.MX35.
Como buscamos velocidades de escritura de al menos 2MBytes por segundo, me preguntaba si hay algo que omito que puede mejorar mis velocidades ya que sé que mi hardware puede escribir más rápido que esto.
Gracias por el comentario. Sin embargo, descubrí que simplemente habilitar el entorno produce demasiada degradación del rendimiento en comparación con no usar uno. Creo que tiene que ver con el WAL así que estas banderas me ayudarían, pero incluso sin un entorno, todo es demasiado lento. – jjfine
@jjfine: creo que el entorno se usa implícitamente con transacciones anónimas (autocompromiso) si no lo haces explícitamente. Entonces, no usar el medio ambiente no ayudará. –
@VladLazarenko, así que si configuro una de estas 2 banderas, cuando cierro el berkeley db, ¿la memoria caché volverá al disco? – Alcott