2009-10-20 12 views
8

Acabo de encontrar "Has anyone published a detailed comparison between different in-memory RDBMSs?" que está relacionado a mi pregunta.Alternativa al TimesTen en la base de datos de memoria

TimesTen (ver also) es un In-Memory Database de Oracle.

Tiene muchas ventajas.

  • , respuesta consistente Rápido tiempo de
  • Alto rendimiento de transacción
  • estándar SQL, no hay ninguna aplicación reescribir
  • persistente y recuperable
  • alta disponibilidad y sin pérdida de datos

Sin embargo, es con precios fuera del alcance de la mayoría de las personas ($41,500.00/Processor).

¿Qué alternativas existen y cuáles son los pros y los contras?

(estoy usando .NET si cambia su respuesta)

+0

Sybase introdujo una opción de base de datos en memoria con [ASE 15.5] (http://www.sybase.com/products/databasemanagement/adaptiveserverenterprise/ase15-5). – pascal

+0

Sybase también introdujo un modo de ejecución en memoria para SQL Anywhere 11. – pascal

Respuesta

8

Un popular sistema de base de datos en memoria es eXtremeDB de McObject, ver

http://www.mcobject.com/extremedbfamily.shtml

También hay un buen papel blanco, ofrecido para su descarga desde la página principal del sitio web de McObject, llamado, "In- Sistemas de base de datos de memoria: mitos y hechos ". Aclara algunas preguntas que surgen cuando se habla de la tecnología, por ejemplo, "¿cómo se puede utilizar un IMDS diferente de una base de datos 'tradicional' en un disco RAM?"

+0

Acepté esta respuesta debido al puntero al papel blanco. –

4

En general, en este campo la gente también miran kdb de Kx Systems. Creo que estos dos sistemas realmente tenían un dia de heno a principios de los 2000's. Vería si un MySQL ajustado con una matriz RAID de estado sólido le daría el rendimiento que necesita.

Por cierto, una vez escribí una base de datos de series temporales que superó tanto a TimesTen como a Kdb. Admitía una sintaxis SQL-92. La clave del rendimiento era vincular el esquema a las clases basadas en plantillas de C++ y usar archivos mapeados en memoria. Permitir cambios de esquema en ejecución es bastante costoso, y al definir el esquema en tiempo de compilación, las búsquedas de datos podrían recuperarse en solo unas pocas instrucciones de ensamblaje.

+1

Las bases de datos en memoria generalmente están diseñadas para estar "en memoria (RAM)" frente a "en SSD" ... Sin embargo, ¿le gustaría elaborar más sobre el diseño de su base de datos de series de tiempo? Conozco personas que estarían muy interesadas si su diseño es significativamente mejor que TimesTen y KDB. – Rudiger

3

pregunta anterior (y respondió) allá por 2009. Sin embargo, la cuestión sigue siendo relevante y nos puede dar una segunda mirada.

puedo sugerir siguientes alternativas a TimesTen:

  • SQLite
  • H2
  • Redis
    • Enlace: http://redis.io
    • Ventajas: increíblemente rápido con soporte nativo para estructuras de datos como lista, hachís, conjunto, clasificadas establecer etc
    • Desventajas: No es un RDBMS (puede que tenga que volver a escribir su aplicación)

Todo lo anterior se puede ejecutar en memoria. En cuanto a las características, es posible que le falten cosas en comparación con TimesTen. Pero sin duda vale la pena echarles un vistazo.

1

hice esta pregunta hace un tiempo LARGO, en estos días de Microsoft SQL Server tienen "In-Memory OLTP" que es un motor de base de datos de la memoria optimizada integrado en el motor de SQL Server. No es barato, pero parece ser muy rápido para algunas cargas de trabajo.

0

Agregue a la lista de bases de datos In-Mem.

Apache Derby HyperSQL o HSQLDB.

H2 y HyperSQL también tienen modo de compatibilidad para admitir el esquema de otras bases de datos, lo cual es una característica muy agradable.

2

Otro para la lista: open-source Tarantool es una opción persistente en memoria que al igual que TimesTen admite transacciones ACID y SQL. Sin embargo, a diferencia de TimesTen, puede ser auto-sharded y también cuenta con un servidor de aplicaciones Lua completo para procedimientos almacenados.

Cuestiones relacionadas