Un Intérprete de Datalog Diferencial
Autores: Stephenson, Matthew James
Idioma: Inglés
Editor: MDPI
Año: 2023
Acceso abierto
Artículo científico
2023
Un Intérprete de Datalog Diferencial
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Software
Palabras clave
Razonamiento
Motores de datalog
Materialización
Materialización incremental
Flujo de datos diferencial
Rendimiento
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 31
Citaciones: Sin citaciones
La tarea central de razonamiento para los motores de datalog es la materialización, la evaluación de un programa de datalog sobre una base de datos junto con su incorporación física en la propia base de datos. El método de facto de computación es a través de la aplicación recursiva de reglas de inferencia. Debido a que es una operación costosa, es imprescindible que los motores de datalog proporcionen materialización incremental; es decir, ajustar la computación a nuevos datos en lugar de reiniciar desde cero. Una de las principales advertencias es que eliminar datos es notoriamente más complicado que agregar, ya que hay que tener en cuenta todos los posibles datos que se han derivado de lo que se está eliminando. El flujo de datos diferencial es un modelo computacional que proporciona un mantenimiento incremental eficiente, notoriamente con un rendimiento igual entre adiciones y eliminaciones, y distribución de trabajo de flujos de datos iterativos. En este artículo, investigamos el rendimiento de la materialización con tres implementaciones de datalog de referencia, de las cuales una está construida sobre un motor relacional ligero, y las otras dos son versiones de flujo de datos diferencial y no diferencial del mismo algoritmo de reescritura con las mismas optimizaciones. Los resultados experimentales sugieren que la agregación monótona es más poderosa que simplemente ascender el conjunto potencia.
Descripción
La tarea central de razonamiento para los motores de datalog es la materialización, la evaluación de un programa de datalog sobre una base de datos junto con su incorporación física en la propia base de datos. El método de facto de computación es a través de la aplicación recursiva de reglas de inferencia. Debido a que es una operación costosa, es imprescindible que los motores de datalog proporcionen materialización incremental; es decir, ajustar la computación a nuevos datos en lugar de reiniciar desde cero. Una de las principales advertencias es que eliminar datos es notoriamente más complicado que agregar, ya que hay que tener en cuenta todos los posibles datos que se han derivado de lo que se está eliminando. El flujo de datos diferencial es un modelo computacional que proporciona un mantenimiento incremental eficiente, notoriamente con un rendimiento igual entre adiciones y eliminaciones, y distribución de trabajo de flujos de datos iterativos. En este artículo, investigamos el rendimiento de la materialización con tres implementaciones de datalog de referencia, de las cuales una está construida sobre un motor relacional ligero, y las otras dos son versiones de flujo de datos diferencial y no diferencial del mismo algoritmo de reescritura con las mismas optimizaciones. Los resultados experimentales sugieren que la agregación monótona es más poderosa que simplemente ascender el conjunto potencia.