Cuándo utilizar una base de datos en memoria
Las bases de datos en memoria sacrifican recursos de memoria para el procesamiento de datos en tiempo real. Tanto las bases de datos en memoria como las bases de datos en disco son productos de bases de datos relacionales esenciales para todas las empresas de la sociedad de la información actual. La base de datos en disco resuelve el problema del almacenamiento y el análisis de datos de gran capacidad, y la base de datos en memoria resuelve el problema del procesamiento en tiempo real y la alta concurrencia. La existencia de los dos se complementa entre sí. El rendimiento del procesamiento de transacciones en tiempo real de la base de datos de la memoria principal es mucho mayor que el de la base de datos del disco. Pero, en términos relativos, la seguridad de sus datos no ha alcanzado el nivel de las bases de datos en disco.
Las bases de datos en memoria utilizan la memoria física como primer medio de almacenamiento de datos y los discos como respaldo. Con el desarrollo de los servicios de telecomunicaciones, el sistema tiene requisitos muy altos para la modificación flexible y en tiempo real de los servicios. En este caso, la demanda de bases de datos en memoria también está aumentando. El método de base de datos en disco almacena datos en la memoria para su procesamiento y no hay garantía en términos de capacidad de administración, seguridad y confiabilidad de los datos. Las bases de datos de la memoria principal se mejoran para abordar esta debilidad.
De hecho, las bases de datos en memoria no son una tecnología de moda. Apareció a finales de los años 1960, pero debido a la demanda del mercado, comenzó a desarrollarse a finales de los años 1990. Como nueva generación de bases de datos, los productos Altibase han avanzado hacia bases de datos híbridas y su versión Altibase 4.0 ya cuenta con su propia base de datos en disco. Una vez que los usuarios compran la base de datos de la memoria principal de Altibase, no necesitan comprar una base de datos en disco. Coloca datos activos (datos que se utilizan con frecuencia, a los que se accede con frecuencia y que se calculan con frecuencia) en una base de datos en memoria y datos históricos en una base de datos en disco, lo que puede reducir aún más la inversión del usuario.
Con una base de datos en memoria, parte de la misma base de datos se puede almacenar en el disco, mientras que otra parte se puede almacenar en la memoria. Los usuarios pueden optar por almacenar datos en tablas en memoria para proporcionar acceso inmediato a los datos. Si el tiempo de acceso no es urgente o los datos almacenados en la memoria ocupan demasiado espacio, el usuario puede almacenar los datos en una tabla de disco.
Por ejemplo, cuando un usuario de teléfono móvil comienza a realizar una llamada, si se aplica un motor de gestión de datos híbrido basado en tecnología de base de datos en memoria, sus opciones de servicio se recuperarán a través de la tabla de memoria y la información del usuario. La identidad se verificará inmediatamente, mientras que la lista de llamadas y el cálculo de la lista de tarifas se archivarán en la tabla del disco. Por tanto, se consigue un equilibrio entre velocidad y uso de recursos.
Una característica muy importante de la tecnología de bases de datos en memoria es que puede procesar todos los datos en la memoria, lo cual es completamente diferente a simplemente colocar datos en forma de una matriz en la memoria. Además, la base de datos de la memoria principal es independiente de la aplicación, por lo que obviamente esta arquitectura es razonable. El motor en memoria puede usar exactamente la misma base de datos para funciones de consulta y archivado, y las tablas en memoria y en disco usan exactamente los mismos métodos de acceso. La selección de almacenamiento es completamente transparente para los desarrolladores de aplicaciones.
Para bases de datos en memoria, implementa la gestión de datos en memoria, no solo como caché de base de datos. A diferencia de otras bases de datos que almacenan en caché bloques de datos del disco en la memoria principal, el motor en memoria de la base de datos de la memoria principal utiliza estructuras de datos y algoritmos diseñados específicamente para el acceso aleatorio a la memoria, evitando el problema de utilizar comandos de clasificación que a menudo destruyen el rendimiento de las bases de datos almacenadas en caché. Al reducir la E/S del disco a través de la base de datos de la memoria principal, puede lograr una velocidad de procesamiento que no se puede comparar con las bases de datos tradicionales basadas en E/S del disco.
Por lo tanto, la aplicación de la tecnología de bases de datos en memoria puede mejorar en gran medida la velocidad de la base de datos, proporcionando un fuerte soporte para aplicaciones de bases de datos que requieren una respuesta de alta velocidad, como las telecomunicaciones y las finanzas.
Dado que la mayoría de los datos se operan en la memoria, el rendimiento de la base de datos en memoria es mucho mayor que el de la base de datos en disco, lo cual es muy adecuado para los requisitos en tiempo real de los sistemas de soporte operativo de las empresas de telecomunicaciones.
El desarrollo generalizado de la competencia en la industria de las telecomunicaciones traerá inevitablemente nuevos modelos de cadena de valor y nuevos métodos de cobro. Estos cambios plantean desafíos a los sistemas de soporte de operación de telecomunicaciones existentes. Por ejemplo, el proceso de facturación de diversos servicios ya no se basará en la duración o la distancia de comunicación, sino que podrá basarse en una combinación de varios parámetros, como la duración, el contenido y el uso. Para hacer frente a estos desafíos, las empresas de telecomunicaciones han introducido bases de datos en memoria para mejorar el tiempo real, la precisión y la flexibilidad de la gestión de datos de back-end.
Aunque la base de datos de la memoria principal ya no es el concepto de una base de datos de disco tradicional, sigue siendo una base de datos en esencia y también tiene las funciones básicas de una base de datos general:
■Gestión permanente de datos, incluida la definición, almacenamiento y mantenimiento de bases de datos;
■Completar diversas operaciones de datos, como procesamiento de consultas, acceso y verificación de integridad;
■Gestión de transacciones, incluida la programación y Control de concurrencia;
■Control de acceso e inspección de seguridad;
■Contar con un mecanismo de recuperación de confiabilidad de la base de datos.
En comparación con la invocación del procesamiento de memoria a través del desarrollo de programas, las bases de datos en memoria tienen sus propias ventajas. En primer lugar, la base de datos de la memoria principal es un software de gestión de bases de datos basado en productos, lo que acorta en gran medida el ciclo de desarrollo. En segundo lugar, la base de datos de la memoria principal tiene una plataforma e interfaz abiertas, lo que hace que el desarrollo y el trasplante de programas sean más flexibles y convenientes; para mantenimiento y desarrollo secundario; en tercer lugar, los datos en la memoria se pueden consultar fácilmente utilizando el lenguaje SQL unificado; y finalmente, se puede garantizar la seguridad y la integridad de los datos en la base de datos. Estas ventajas facilitan una implementación rápida y un mantenimiento simplificado.
Sin embargo, la base de datos de almacenamiento principal también tiene sus deficiencias inevitables, como: no es fácil de recuperar, los datos en la base de datos de almacenamiento principal no siempre son permanentes y para garantizar el rendimiento en tiempo real , no es necesariamente consistente y absoluto. Algunos son temporalmente correctos y otros son temporalmente inconsistentes o no absolutamente correctos.
Las empresas de telecomunicaciones siempre han sido las principales usuarias de bases de datos en memoria. En los últimos años, con el rápido desarrollo de la tecnología de hardware informático, el aumento de la capacidad de memoria, la disminución del precio y la capacidad de las computadoras para admitir direcciones más grandes después de ingresar a la era del sistema operativo de 64 bits, se ha hecho posible implementar un base de datos de la memoria principal. En la actualidad, la aplicación de bases de datos en memoria en la industria de las telecomunicaciones se está volviendo cada vez más madura. En el caso de sistemas de telecomunicaciones superiores a 90G, el espacio de memoria se puede ampliar automáticamente, se proporcionan procedimientos de almacenamiento personalizados de ESOL, no es necesario reiniciar la base de datos, se admiten subprocesos múltiples, la eficiencia del desarrollo es alta y la migración del programa es sencilla.
Los siguientes son dos ejemplos para presentar la aplicación de la base de datos en memoria.
Carga de datos de facturación de telecomunicaciones
La aprobación secundaria de precios de Telecom y la acumulación de cuentas en tiempo real son dos funciones esenciales en el sistema de facturación.
El llamado precio del segundo lote es relativo al precio del primer lote.
Una valoración de precios consiste en calcular el precio según la tarifa estándar nacional. Por ejemplo, las llamadas locales GSM cuestan 0,4 yuanes por minuto. Una vez completada la primera aprobación del precio, se calculará nuevamente en función del paquete del usuario. Tomemos como ejemplo la llamada de cuatro minutos de los usuarios de Beijing Global Communications. Después de la primera aprobación del precio, el precio de la factura telefónica es de 1,6 yuanes. Si este usuario participa en el paquete mensual de 10 yuanes, luego de la segunda aprobación del precio, el costo de la llamada será de 0 yuanes.
La primera aprobación de precio es para la liquidación entre los principales operadores y la segunda aprobación de precio es para usuarios individuales.
La acumulación de factura telefónica en tiempo real consiste en acumular todos los cargos del usuario desde el día 1 de cada mes hasta el presente, es decir, el usuario puede consultar la factura telefónica en tiempo real del día anterior a través 10086. El valor acumulado de la cuenta puede ayudar a los usuarios a controlar las elevadas facturas telefónicas o proporcionarles información instantánea sobre el consumo.
El proceso de aprobación secundaria de precios y acumulación de cuentas en tiempo real implica datos de usuario, paquetes de usuario y otra información relacionada con el usuario. El sistema de soporte de telecomunicaciones debe cargar estos datos al iniciar la aprobación de precios. Los datos de los operadores provinciales un poco más grandes superarán los 654,38+ millones. Debido a la combinación de paquetes, productos y diferentes reglas preferenciales, el modelo de procesamiento de facturación es bastante complejo. Cargar estos datos supone una enorme sobrecarga para el sistema, lo que hace que el procesamiento de facturación actual sea muy lento y dificulta la actualización de los datos en tiempo real. La introducción de una base de datos en memoria resuelve este problema hasta cierto punto.
La mayor cantidad de datos son los datos detallados de la factura en el segundo proceso de cobro. No es necesario colocar esta parte de los datos en la base de datos en memoria. Al procesar un archivo de ticket o alcanzar el número establecido de registros de envío, la base de datos del disco se opera directamente sin afectar el rendimiento del sistema.
La principal prioridad es almacenar datos de usuario, paquetes, paquetes comerciales y datos correspondientes del paquete de facturación, datos del modelo del paquete de facturación y datos de usuario acumulados en la base de datos de la memoria. Esta parte de las operaciones de consulta de datos es mucho más frecuente que las operaciones de adición y actualización de datos. Por supuesto, además de estos datos, también se pueden cargar otros datos requeridos por la aplicación en la base de datos de la memoria principal.
Después de utilizar la base de datos en memoria, los usuarios pueden consultar los cargos telefónicos en tiempo real a través del departamento de ventas o de los clientes. En comparación con la situación actual en la que solo se pueden consultar los cargos telefónicos en tiempo real del día anterior. , ha habido un salto cualitativo en el negocio. Dado que el proceso de consulta del sistema es exactamente el mismo que antes al procesar esta parte de los datos, el sistema elimina la necesidad de enlaces de sincronización entre los datos en la memoria y los datos en la base de datos del disco, por lo que se pueden realizar consultas en tiempo real. . Lo mismo ocurre con los controles de crédito. En el pasado, el sistema tenía que actualizar los datos de control de crédito en un período determinado después de que se acumulaba la cuenta, por lo que había una diferencia horaria y no podía ser completamente en tiempo real.
Después de usar la base de datos de la memoria, el control de la señal puede obtener directamente los datos en la tabla de acumulación de cargos de llamadas en tiempo real en la base de datos de la memoria, realizando completamente la advertencia y el apagado en tiempo real. El uso de bases de datos en memoria en las cuentas secundarias de aprobación y acumulación de precios también será de gran beneficio para los sistemas antifraude y de garantía de ingresos, que pueden proteger plenamente los intereses vitales de los operadores.
Además, después de utilizar la base de datos en memoria, se mejora la velocidad de procesamiento general de la aprobación de precios del sistema y las cuentas acumuladas, se alivia en gran medida la presión de acceder a la base de datos del disco y se mejora la eficiencia de la consulta y modificación de datos. y se mejora la eliminación, y también se puede realizar la integración de pago por adelantado y pospago.
Sincronización de datos de facturación de telecomunicaciones
Los datos comerciales de telecomunicaciones y los datos en el sistema de facturación siempre están cambiando, lo que involucra datos en la base de datos de la memoria y la base de datos del disco. Problemas de sincronización de datos (para mayor claridad, el La base de datos de disco aquí se explica usando Oracle DB como ejemplo). La sincronización de datos incluye dos partes: sincronización de datos desde la base de datos de memoria a Oracle DB y sincronización de datos de Oracle DB a la base de datos de memoria.
1. Sincronización de la base de datos de Oracle a la base de datos de la memoria
Esta parte de la sincronización de datos adopta el método de tabla incremental y los datos nuevos o actualizados en el sistema empresarial o CRM se generarán en Oracle. En las tablas incrementales, el programa básico de contabilidad primero consultará los datos en estas tablas incrementales. Si los datos se pueden encontrar en estas tablas incrementales, los datos se actualizarán a la tabla correspondiente en la base de datos de la memoria principal. Si no se pueden encontrar, los datos se consultarán directamente desde la base de datos de la memoria principal para garantizar la integridad y la realidad. rendimiento temporal de los datos. Debido a que el volumen de datos de las tablas incrementales es generalmente pequeño, esta parte de la operación no afectará el rendimiento del sistema.
2. Sincronización de la base de datos de memoria a la base de datos de Oracle
Debido a que casi todos los precios del lote de facturación de Oracle y los datos acumulados de la cuenta se cargan en la base de datos de memoria, los datos correspondientes de la base de datos de Oracle. La tabla se utilizará principalmente para la copia de seguridad de datos de la base de datos en memoria.
La última factura telefónica en tiempo real y otra información del usuario se almacenan en la base de datos de la memoria. La consulta de la factura telefónica en tiempo real se conectará directamente a la base de datos de la memoria para garantizar que el usuario obtenga la última factura. información de costos. El control de la información también consulta datos directamente desde la base de datos de la memoria principal, por lo que no existen requisitos en tiempo real para esta parte de los datos en Oracle. En este momento, la aplicación puede generar sincronización entre la base de datos de la memoria principal y Oracle, y sincronizar periódicamente la copia de seguridad con la base de datos de Oracle. También puede utilizar procedimientos almacenados de Oracle para importar datos cuando el sistema está relativamente inactivo.
En general, debido al rápido desarrollo del mercado y la tecnología, el negocio de las telecomunicaciones continúa expandiéndose y las operaciones y la gestión se optimizan constantemente. Algunos sistemas de soporte tradicionales gradualmente no han podido satisfacer los crecientes requisitos comerciales y necesidades de los clientes, por lo que es inevitable introducir algunas tecnologías nuevas para resolver los problemas que encontramos en la producción. Por ejemplo, el uso de una base de datos en memoria para reemplazar la tecnología anterior de uso compartido de memoria puede estandarizar cosas no estándar en la memoria, incluidas interfaces, formatos y administración.
La base de datos de la memoria principal es sólo un representante entre muchas tecnologías nuevas. Mientras emancipemos nuestras mentes y tomemos decisiones apropiadas, podremos superar los obstáculos institucionales con una inversión mínima y obtener el máximo rendimiento al mínimo costo.
Hemos visto muchas bases de datos de propósito general, como las recientemente populares Oracle, Db2, Sqlserver, Sybase, Informix, Mysql y Pqllite. Por supuesto, no podemos olvidarnos del PostgreSQL de código abierto.
Por lo general, estas bases de datos pueden realizar tareas importantes, pero aún son ligeramente insuficientes en términos de requisitos de alto rendimiento. En el sistema de facturación, si la información del usuario cambia con frecuencia, la demora tendrá un gran impacto e incluso afectará el funcionamiento normal del sistema de facturación.
La única base de datos en memoria con la que he entrado en contacto es la utilizada por AsiaInfo en el sistema de auditoría del China Mobile Billing Center. Debido a que el sistema de auditoría necesita sincronizar la información del estado del usuario y la información de suscripción, y luego auditar las facturas generadas, si la velocidad de respuesta es lenta, se producirán resultados erróneos. Cuando al principio no existía un sistema de auditoría, las normas de cobro las emitía básicamente SP. Sin embargo, los usuarios a menudo descubren que todavía se les cobran cargos en su factura cuando en realidad no utilizan el servicio o cuando lo cancelan. Por lo tanto, China Mobile está decidida a auditar las facturas de SP, utilizar sus propios datos como estándar y eliminar por completo los métodos de cobro de SP.
Si desea obtener información de estado del usuario e información de suscripción, debe sincronizarla desde múltiples sistemas y revisar el formulario de conversación al mismo tiempo. El tiempo de procesamiento intermedio es estrictamente requerido (los usuarios pueden consultar la información de su factura telefónica en un corto período de tiempo) y el tiempo de respuesta al sistema debe ser lo más corto posible.
Las bases de datos de propósito general están en desventaja a este respecto. AsiaInfo utiliza tres rx8420 como hosts de bases de datos y comparte información de usuarios de 31 provincias con los tres hosts según los números. Cada provincia tiene al menos un proceso de almacenamiento. Para aquellas con una gran cantidad de usuarios, se utilizan múltiples procesos para el almacenamiento. La fuente de recopilación de datos es principalmente a través de BOSS y el sistema de facturación de primer nivel.
Debido a que los datos se almacenan en la memoria, la estructura de los datos almacenados es diferente a la de una base de datos general. Al mismo tiempo, para garantizar la seguridad de los datos, hay un espejo de los datos de la memoria en el disco. Los datos de la memoria se sincronizan con el disco a intervalos regulares. Cuando el host falla, los datos se pueden restaurar a través de. disco. Cuando falla un host, el host de respaldo asume el control a través de HA. Sin embargo, el registro y la reversión de las operaciones de datos no son tan buenos como los de Oracle y solo proporciona un mecanismo de recuperación simple.
En el sistema de facturación, primero se debe revisar la factura enviada por el sp. Los criterios principales son el estado del usuario y la información de suscripción. Por ejemplo, si el usuario ha estado desconectado durante 7 días, si aparece nueva información de suscripción en la factura del proveedor de servicios, la factura se considerará incorrecta. De esta forma, el móvil toma la iniciativa en el juego con SP. Después de que el sistema de auditoría estuvo en línea, las quejas de los usuarios contra SP se redujeron significativamente.
Enlace 1: Similitudes y diferencias entre bases de datos en memoria y bases de datos tradicionales
El sistema de base de datos tradicional es una base de datos relacional. El propósito de desarrollar este tipo de base de datos es procesar datos permanentes y. datos estables. Las bases de datos relacionales enfatizan el mantenimiento de la integridad y la coherencia de los datos, pero es difícil tener en cuenta las limitaciones de tiempo de los datos y el procesamiento relacionados y no pueden satisfacer las necesidades de las aplicaciones en tiempo real en la gestión de la producción industrial, porque las transacciones en tiempo real requieren que el sistema predecir con precisión el tiempo de ejecución de las transacciones.
Para las bases de datos de disco, el tiempo de ejecución promedio real de una transacción difiere significativamente del tiempo de ejecución estimado en el peor de los casos debido al acceso al disco, los datos que entran y salen de la memoria, la administración del búfer, las colas de espera y los bloqueos. retrasos. Si toda la base de datos o su parte principal "de trabajo" se coloca en la memoria, entonces cada transacción no tendrá E/S durante la ejecución. Esto proporcionará un fuerte soporte para que el sistema estime y programe con precisión el tiempo de ejecución de las transacciones y realice. eso Más dinámico y predecible. Ésta es la razón principal del surgimiento de las bases de datos en memoria.
Los datos procesados por la base de datos en memoria suelen ser "transitorios", es decir, tienen un período de validez determinado. Cuando expira, se generarán nuevos datos y se deducirá la toma de decisiones actual. quedará inválido. Por lo tanto, en aplicaciones prácticas, las bases de datos en memoria se utilizan para procesar datos de procesamiento de lógica empresarial en tiempo real. Las bases de datos tradicionales tienen como objetivo procesar datos permanentemente estables y sus objetivos de rendimiento son un alto rendimiento del sistema y un bajo costo, por lo que el procesamiento de datos en tiempo real requiere relativamente poca consideración. En aplicaciones prácticas, las bases de datos tradicionales se utilizan para almacenar datos con requisitos de tiempo real relativamente bajos.
En aplicaciones prácticas, estas dos bases de datos se utilizan a menudo en combinación, en lugar de reemplazar las bases de datos tradicionales con bases de datos de memoria principal.
Enlace 2: Varios productos de bases de datos en memoria
■Oracle Times
Oracle TimesTen es una base de datos relacional optimizada para memoria adquirida por Oracle de Timeten Applications. la capacidad de respuesta instantánea y el rendimiento extremadamente alto que requieren las empresas e industrias en tiempo real, como las telecomunicaciones, los mercados de capital y la defensa.
Oracle TimesTen se puede implementar en la capa de aplicación como caché o base de datos integrada, utilizando interfaces SQL estándar para operar el almacén de datos completamente en la memoria física.
■ Altibase
Altibase es una solución de software que proporciona alto rendimiento y alta disponibilidad en un entorno donde las transacciones son lo primero. Proporciona alto rendimiento, tolerancia a fallos y capacidades de gestión de transacciones, y es especialmente adecuado para comunicaciones, banca en línea, comercio de valores, aplicaciones en tiempo real y sistemas integrados. Altibase puede maximizar el potencial del sistema de servicio de base de datos y mejorar las capacidades de procesamiento del servidor de datos. Altibase admite arquitectura cliente/servidor o arquitectura integrada. La arquitectura cliente/servidor es muy adecuada para aplicaciones generales. La arquitectura integrada integra la aplicación en el servidor de la base de datos y es adecuada para sistemas en tiempo real con altos requisitos de tiempo real.
■Extreme b
La base de datos en tiempo real eXtremeDB es una base de datos especialmente diseñada por McObject para la gestión de datos del sistema integrado y en tiempo real, con una sobrecarga de 50K a 130K y una velocidad de microsegundos. EXtremeDB reside completamente en la memoria principal y no utiliza un sistema de archivos (incluido el disco en memoria). EXtremeDB utiliza una nueva tecnología de fusión de discos para extender la memoria al disco y utilizar el disco como memoria virtual. El rendimiento en tiempo real es de nivel de microsegundos y la capacidad de gestión de datos puede alcanzar 20G a 32BIT.