ES2837458T3 - Método y sistema de procesamiento de datos para la modificación de bases de datos - Google Patents

Método y sistema de procesamiento de datos para la modificación de bases de datos Download PDF

Info

Publication number
ES2837458T3
ES2837458T3 ES11305822T ES11305822T ES2837458T3 ES 2837458 T3 ES2837458 T3 ES 2837458T3 ES 11305822 T ES11305822 T ES 11305822T ES 11305822 T ES11305822 T ES 11305822T ES 2837458 T3 ES2837458 T3 ES 2837458T3
Authority
ES
Spain
Prior art keywords
data
job
processing
configuration
jobs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES11305822T
Other languages
English (en)
Inventor
René JULLIEN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amadeus SAS filed Critical Amadeus SAS
Application granted granted Critical
Publication of ES2837458T3 publication Critical patent/ES2837458T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

Método para procesar un conjunto de datos recibidos de un sistema (4) proveedor, comprendiendo el método: - recibir el conjunto de datos del sistema (4) proveedor en forma de al menos un archivo, en el que el conjunto de datos contiene al menos una entidad de datos, que describe un componente de una definición de tarifa para ser modificado o creado en una base de datos (1) de producción, dicho al menos un archivo se hace accesible por una instalación de producción con el objetivo de responder a las solicitudes de búsqueda de dispositivos (5) de usuario final y se procesa dentro de una misma cadena de procesamiento, - realizar una cadena de procesamiento que comprende una pluralidad de trabajos consecutivos para adaptar el conjunto de datos a un formato requerido por la base de datos (1) de producción y modificar la base de datos (1) de producción según el conjunto de datos, en el que realizar la cadena de procesamiento comprende las etapas de: - establecer, mediante un asignador (8) de recursos, un tiempo de procesamiento objetivo para la cadena de procesamiento, - antes de lanzar un primer trabajo de los trabajos consecutivos de la cadena de procesamiento: - resolver, mediante un programador (7) de trabajos, las dependencias del primer trabajo; y - aplicar, por parte del asignador (8) de recursos, una configuración original como configuración actual, en la que la configuración original se determina en base a datos históricos, que comprende información sobre ejecuciones previas de cadenas de procesamiento para conjuntos de datos del mismo tipo que el conjunto de datos, y datos de restricción, que comprenden el tiempo de procesamiento objetivo de la cadena de procesamiento, y define un nivel de paralelización que especifica un número de instancias paralelas para cada uno de los trabajos consecutivos, - lanzar, por parte del programador (7) de trabajos, el primer trabajo; y - antes de lanzar un trabajo más de la cadena de procesamiento, después del primer trabajo: - cuando un tiempo de procesamiento restante real, que se determina en función de una cantidad de entidades de datos ya procesadas, que se encuentra fuera de un intervalo de tiempos de procesamiento restantes aceptables, definido como un intervalo de tiempos por debajo y/o por encima de una proporción determinada del tiempo de procesamiento objetivo, aplicar, por parte del asignador (8) de recursos, una configuración adaptada como nueva configuración actual, en la que la configuración adaptada se determina en base a datos históricos, que comprende información sobre ejecuciones previas de cadenas de procesamiento para conjuntos de datos de un mismo tipo que el conjunto de datos, y datos de restricción, y define un nivel de paralelización adaptado para los trabajos que quedan en la cadena de procesamiento especificando un número de instancias paralelas para cada uno de los trabajos consecutivos.

Description

DESCRIPCIÓN
Método y sistema de procesamiento de datos para la modificación de bases de datos
Campo técnico
La presente invención se refiere al campo de procesamiento de datos, en particular cuando es necesario transformar y cargar en bases de datos un volumen grande y variable de datos.
Antecedentes
Desde que se introdujeron y comenzaron a adoptarse en gran medida en los años 70, las bases de datos han proliferado en todo tipo de dominios, incluidas aplicaciones de ingeniería, científicas, comerciales y empresariales. Su tamaño puede ser cualquiera, desde una pequeña base de datos utilizada por una sola persona en un ordenador personal, por ejemplo, para realizar un seguimiento de las finanzas personales, hasta bases de datos grandes y muy grandes creadas por varias instituciones, empresas y organizaciones comerciales para respaldar su actividad. En un mundo totalmente interconectado, esas grandes bases de datos también son generalmente, si no siempre, accesibles a numerosos usuarios finales ubicados en lugares remotos para consultar cualquier información que las bases de datos pongan a disposición.
En la industria de las aerolíneas, ejemplos de bases de datos tan grandes son las que mantienen las tarifas de las aerolíneas junto con las reglas que restringen su uso. Las bases de datos de tarifas son creadas principalmente por unos pocos sistemas de distribución global (GDS) que brindan servicios de viajes a los actores de la industria de viajes, incluidas las agencias de viajes tradicionales y todo tipo de otros proveedores de servicios de viajes en línea. Estas grandes bases de datos generalmente deben estar operativas en un modo de 24 horas al día/7 días a la semana para mantener un negocio mundial que nunca duerme mientras también necesitan adquirir constantemente nuevas tarifas publicadas por cientos de aerolíneas grandes y pequeñas. Diariamente se recibe un gran volumen de datos de tarifas aéreas que se integrarán en la base de datos. Los datos recibidos son variables e impredecibles en cuanto a número de archivos, volumen (de 0 a millones de registros) y contenido funcional (tarifas, reglas, rutas...) y no se archivan de la misma forma según su proveedor.
La tendencia actual es un aumento tanto del volumen de cada transmisión como de la frecuencia. Por ejemplo, ATPCo (que significa Airline Tariff Publishing Company, un proveedor de tarifas histórico) ha anunciado que ha enviado transmisiones por hora en 2010, en lugar de 10 veces al día como antes, a una frecuencia de más del doble de sus envíos anteriores.
Las definiciones de tarifas generalmente se componen de varios componentes que incluyen tarifas (datos generales con cantidades de tarifa), reglas (que especifican los criterios aplicables a las tarifas) y rutas (generalmente listas ordenadas de ciudades intermedias a través de las cuales se puede realizar un viaje desde un origen a un destino).
Nuevas definiciones de tarifas se proporcionan generalmente por un proveedor en forma de archivos que deben ser procesados por un sistema informático antes de una etapa de carga, cuando las nuevas tarifas, luego almacenadas en una base de datos, se ponen a disposición de un sistema de producción que es, a modo de ejemplo, una parte de un sistema de reservas computerizado que maneja las solicitudes de los usuarios finales, tales como viajeros o agentes de viajes, con la perspectiva de devolver información sobre soluciones de viajes.
Las técnicas actuales para procesar nuevas definiciones de tarifas para cargarlas en la base de datos implican recursos informáticos fijos. Dichos recursos suelen estar sobredimensionados para respetar con la mayor frecuencia posible un tiempo máximo de procesamiento establecido en un acuerdo de nivel de servicio (SLA) entre la agencia de viajes (normalmente una aerolínea) y el proveedor de servicios informáticos (tal como un GDS); pero en el caso de un período pico de SLA presentación de tarifas, el SLA ni siquiera se cumple: entonces, se genera una alerta que requiere una acción inmediata.
Alkis Simitsis et al.: "QoX-Driven ETL Design: Reducing the Costof ETL Consulting Engagements ", presentado en la conferencia SIGMOD, 20 de julio de 2009, páginas 953-960, se refiere a la inteligencia empresarial y la complejidad de los procesos de Extracción-Transformación-Carga (ETL) y describe la aplicación de diferentes configuraciones a los procesos de ETL. Waheed Ahmed et al: "Run-Time Resource Allocation for Simultaneous Multi-tasking in Multicore Reconfigurable Processors", FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES (FCCM), presentado en el 19° simposio internacional anual sobre IEEE, el 1 de mayo de 2011, se refiere a un sistema DE tiempo de ejecución para multitarea simultánea en un procesador reconfigurable multinúcleo que asigna de forma adaptativa el recurso de estructura reconfigurable de grano mixto en tiempo de ejecución entre diferentes tareas teniendo en cuenta sus limitaciones de rendimiento. Por último, el documento US 2006/074874 A1 se refiere a una función de consulta para consultas de bases de datos que guarda y reutiliza las estrategias de ejecución de consultas y detecta automáticamente que una estrategia debe volver a optimizarse como resultado de cambios en un valor de variable indexada
Por lo tanto, todavía existe la necesidad de una técnica mejorada para procesar datos que se cargarán en la base de datos para optimizar el consumo de recursos en cada situación, incluso cuando el volumen de datos a procesar varía en grandes proporciones.
Sumario
Al menos algunos de los problemas anteriores y otros se superan y se obtienen otras ventajas, de acuerdo con las realizaciones de la presente invención.
En un aspecto del mismo, las realizaciones de ejemplo proporcionan un método y sistema para procesar datos para la modificación de la base de datos, que comprende: recibir un conjunto de datos, realizar una cadena de procesamiento que comprende una pluralidad de trabajos consecutivos para transformar el conjunto de datos en datos transformados, modificar una base de datos de producción con respecto a los datos transformados y que comprende además las etapas de establecer un tiempo de procesamiento objetivo para el desempeño de los trabajos consecutivos, aplicar una configuración original como configuración actual que define un nivel de paralelización para cada uno de los trabajos consecutivos, antes de un lanzamiento de al menos un trabajo más después del primer trabajo, cuando el tiempo de procesamiento restante real está fuera de un intervalo de tiempos de procesamiento restantes aceptables, aplicar una configuración adaptada como nueva configuración actual que define un nivel de paralelización adaptado para cada uno de los trabajos que quedan en la cadena de procesamiento, en la que dicha configuración adaptada difiere de la configuración actual.
Un objeto de la invención es tomar las acciones necesarias al detectar un margen de maniobra de la cadena de procesamiento.
En otro aspecto de la invención, las realizaciones de ejemplo proporcionan un sistema para procesar datos para la modificación de la base de datos, que comprende medios configurados para ejecutar el método. En otro aspecto, las realizaciones de ejemplo proporcionan un producto de programa informático almacenado en un medio de memoria legible por ordenador no transitorio y que comprende instrucciones adaptadas para realizar el método.
Breve descripción de los dibujos
La presente invención se describirá con detalle a continuación con referencia a los dibujos, con el fin de ilustrar la realización preferida.
La figura 1 muestra una arquitectura computarizada en la que la invención se puede implementar en una realización preferida.
La figura 2 muestra una realización de las etapas para lanzar trabajos y asignar recursos informáticos a los trabajos. La figura 3 muestra una realización de flujos de proceso que se pueden procesar en algunos aspectos de la invención.
La figura 4 es un esquema de flujos paralelos que se pueden procesar en algunas realizaciones de la invención. La figura 5 representa otro aspecto de la invención en el que se abordan las dependencias laborales.
Las figuras 6a a 6i son varias tablas que ilustran una realización preferida para definir configuraciones para los niveles de paralelización de trabajos.
Descripción detallada
La invención se define en las reivindicaciones independientes. Se definen realizaciones preferidas en las reivindicaciones dependientes. La invención se puede implementar con hardware y software de ordenador. Puede incluir un lado del servidor donde tiene lugar el procesamiento de datos. Este lado del servidor, que puede estar compuesto por dispositivos informáticos únicos o múltiples, se comunica preferentemente a través de recursos de red con al menos un dispositivo remoto, tal como, pero no exclusivamente, un ordenador de escritorio de un administrador y/o un dispositivo proveedor de datos y/o cualquier otro dispositivo de usuario.
A continuación se proporcionan algunas definiciones de términos:
- "trabajo" en el presente documento significa un grupo de al menos una etapa del procesamiento de datos ejecutada por medios informáticos. Con fines ilustrativos, un trabajo puede consistir o comprender conversión de formato, verificaciones de sintaxis, extracción de archivos y actualización de tablas con los datos extraídos de los archivos,... - un "conjunto de datos" puede ser cualquier grupo de entidades de datos a procesar dentro de una misma cadena de procesamiento. En el caso del procesamiento de tarifas, cada definición de tarifa se divide típicamente en varios componentes en este caso denominados entidades de datos que pueden ser cada una de ellas, no exclusivamente, una tarifa o una regla de tarifa o una ruta. Una tarifa corresponde a los datos generales de una definición de tarifa, incluido su nombre y valor o valores monetarios. Las reglas de tarifas se denominan generalmente registros (registro 1, registro 2 ...) y cada una está dedicada a la especificación de algunos criterios aplicables a una tarifa (estacionalidad, categorías de viajeros, servicios especiales...). Todos los datos de una nueva definición de tarifa generalmente no se proporcionan en un solo archivo. De hecho, a menudo se proporcionan varias definiciones de tarifas nuevas simultáneamente y sus datos se distribuyen en varios archivos, cada uno dedicado a una categoría o categorías específicas de entidades de datos (categorías tales como registro 1 o registro 3 o tarifa...). En una aplicación de este tipo, un "conjunto de datos" es típicamente un grupo de entidades de datos de la misma categoría recibidas al mismo tiempo (generalmente en el mismo archivo) para varias definiciones de tarifas.
- "cadena de procesamiento" en el presente documento significa varios trabajos que se ejecutan consecutivamente para una entidad de datos dada; una cadena de procesamiento normalmente implicará un conjunto de datos formado por varias entidades de datos. En tal caso, los trabajos son consecutivos para al menos una entidad de datos, pero no siempre es necesario completar un trabajo para todas las entidades del conjunto de datos antes de que comience el siguiente trabajo para al menos algunas entidades de datos,
- "medio de memoria no transitorio legible por ordenador" significa en este caso cualquier medio de almacenamiento para almacenar instrucciones de programa e incluye todo tipo de memorias, tales como memoria de acceso aleatorio o memoria de solo lectura o similares,
- "base de datos" comprende en este caso cualquier repositorio de datos adaptado al almacenamiento y recuperación de un gran volumen de datos; "base de datos de producción" significa en este caso una base de datos a la que se puede acceder mediante una instalación de producción, tal como un motor de búsqueda, que tiene como objetivo responder a las solicitudes de búsqueda de los dispositivos del usuario final.
Algunas características correspondientes a aspectos de la invención según realizaciones preferidas se introducen a continuación y se describirán con detalle más adelante:
- antes del lanzamiento de todos los trabajos posteriores después del primer trabajo, cuando el tiempo de procesamiento restante real está fuera de un intervalo de tiempos de procesamiento restantes aceptables, aplicar una configuración adaptada como nueva configuración actual que define un nivel de paralelización adaptado para cada uno de los trabajos restantes en la cadena de procesamiento, difiriendo dicha configuración adaptada de la configuración actual;
- el intervalo de tiempos de procesamiento restantes aceptables se define, preferentemente, como un intervalo de tiempos por debajo y/o por encima de una determinada proporción del tiempo de procesamiento objetivo;
- la configuración original y la configuración adaptada se determinan sobre la base de la información que comprende datos históricos y datos de restricción;
- los datos históricos comprenden información sobre ejecuciones anteriores de cadenas de procesamiento para conjuntos de datos del mismo tipo que el conjunto de datos;
- la etapa de crear una tabla de configuración comprende, para varios intervalos de volumen de datos, una sección de definición de configuración que incluye al menos una definición de configuración que especifica un número de instancias paralelas que se aplicarán para cada trabajo;
- cuando el tiempo de procesamiento restante real esté por debajo del intervalo de tiempos de procesamiento restantes aceptables, elegir la configuración de procesamiento adaptada entre al menos una configuración de la tabla de configuración para la que el número de instancias paralelas que se aplicarán a los trabajos restantes es mayor que el número de instancias que se aplicarán a los trabajos restantes de la configuración actual;
- cuando el tiempo de procesamiento restante real esté por encima del intervalo de tiempos de procesamiento restantes aceptables, elegir la configuración de procesamiento adaptada entre al menos una configuración de la tabla de configuración para la que el número de instancias paralelas que se aplicarán a los trabajos restantes es menor que el número de instancias que se aplicarán a los trabajos restantes de la configuración actual. Comprende realizar las etapas siguientes:
- recibir al menos otro conjunto de datos;
- detectar al menos un trabajo dependiente de una cadena de procesamiento del otro conjunto de datos que depende de al menos un trabajo dado de la cadena de procesamiento del conjunto de datos;
- programar un lanzamiento del trabajo dependiente después de la finalización del trabajo dado;
- utilizar un conjunto de datos que incluye entidades de datos, cada una de las cuales describe un componente de una definición de tarifa, el componente se selecciona entre tarifas y reglas de tarifas y rutas;
- en el que la cadena de procesamiento comprende:
- un primer trabajo de conversión del conjunto de datos en un conjunto de datos convertido en un formato de estructura interna,
- un segundo trabajo de construcción de al menos una tabla preliminar basada en el conjunto de datos convertido,
- un tercer trabajo de actualización de una base de datos de referencia basada en al menos una tabla preliminar,
- un cuarto trabajo de carga de la actualización de la base de datos de referencia en una base de datos de producción;
- en el que el primer trabajo utiliza como entrada un archivo que contiene el conjunto de datos;
- en el que el cuarto trabajo se lanza para al menos una entidad de datos para la que se completa el tercer trabajo incluso si el tercer trabajo no se completa para todas las entidades de datos;
- recibir un conjunto de datos para cada uno de los componentes de las definiciones de tarifas y realizar cadenas de procesamiento paralelas para dichos componentes.
El método se realiza, preferentemente, como resultado de la ejecución de un software informático por al menos un procesador de datos, almacenándose el software informático en un medio de memoria no transitorio legible por ordenador.
Puede incluir el envío del conjunto de datos desde un sistema proveedor y puede comprender el acceso a los datos de la base de datos de producción desde un dispositivo de usuario final a través de un motor de búsqueda.
El sistema incluye, ventajosamente, un asignador de recursos que comprende medios para establecer un tiempo de procesamiento objetivo para la realización de los trabajos consecutivos, antes del lanzamiento de un primer trabajo, aplicando una configuración original como configuración actual que define un nivel de paralelización para cada uno de los trabajos consecutivos, cuando un tiempo de procesamiento restante real está fuera de un intervalo de tiempos de procesamiento restantes aceptables, aplicando una configuración adaptada como nueva configuración actual que define un nivel de paralelización adaptado para cada uno de los trabajos restantes en la cadena de procesamiento, difiriendo dicha configuración adaptada de la configuración actual.
En algunos casos preferidos, el sistema está configurado de manera que:
- un programador de trabajos tiene medios para activar el lanzamiento de los trabajos;
- el programador de trabajos comprende medios para, al recibir al menos otro conjunto de datos, detectar al menos un trabajo dependiente de una cadena de procesamiento del otro conjunto de datos que depende de al menos un trabajo dado de la cadena de procesamiento del conjunto de datos y medios para programar un lanzamiento del trabajo dependiente después de la finalización del trabajo dado;
- el software informático se almacena en un medio de memoria no transitorio legible por ordenador que es ejecutado por al menos un procesador de datos que comprende parte del sistema.
En una realización de la invención, la aplicación de una configuración adaptada se activa antes del lanzamiento de al menos un trabajo adicional después del primer trabajo. Sin embargo, se prefiere que la adaptación pueda ocurrir potencialmente en cualquier momento durante la cadena de procesamiento. En particular, el nivel de paralelización puede adaptarse mediante la aplicación de una configuración adaptada durante la ejecución de un trabajo. A continuación, la configuración adaptada modifica los parámetros de recursos del trabajo actual y los siguientes trabajos. El trabajo actual y los siguientes trabajos constituyen los trabajos restantes en esta situación.
La figura 1 muestra una arquitectura en la que es necesario acceder a una base de datos 1 de producción. En la aplicación a la industria de viajes y turismo, que corresponde a la realización preferida que se describe a continuación, la base de datos de producción puede almacenar datos de soluciones de viajes, tales como datos de tarifas, que se utilizan para determinar la cantidad o cantidades de las tarifas y las condiciones para las recomendaciones de viaje hechas de al menos una servicio de viajes que puede incluir, de forma no exclusiva: segmento de viajes aéreos, segmento de viajes en tren, servicios de alquiler de automóviles, reservas de habitaciones de hotel o servicios relacionados con los ejemplos anteriores. En lo que respecta a los viajes aéreos, un viaje generalmente se determina mediante un sistema (generalmente una parte de un sistema de reserva computarizado que puede ser implementado por un GDS) y se activa una cotización de tarifa para asignar un precio al viaje con las condiciones de la tarifa. Una solución de viaje (o una pluralidad de soluciones de viaje) se devuelve al solicitante y la solución de viaje comprende la descripción de los tramos propuestos para el viaje, así como el importe del precio. El importe del precio se determina mediante la aplicación de una definición de tarifa al viaje.
Una definición de tarifa incluye varias secciones también llamadas en lo sucesivo igualmente componentes o productos:
- una sección de tarifa que indica principalmente el precio del viaje;
- una sección de reglas que proporciona las reglas aplicables a la definición de tarifa. La sección de reglas generalmente comprende varias subsecciones denominadas registros como se ha indicado anteriormente.
Volviendo a la figura 1, la base de datos 1 de producción puede ser un repositorio de tales definiciones de tarifa. Se utiliza, dentro de un flujo de proceso de solicitud de viaje, por un motor 2 de búsqueda (tal como un motor de cotización de tarifas) a demanda de un dispositivo 5 de usuario final, tal como el dispositivo informático (incluyendo cualquier tipo de dispositivo, tales como teléfonos inteligentes, servidores u ordenadores personales) de un agente de viajes o un cliente.
La transmisión entre el dispositivo 5 de usuario, el motor 2 de búsqueda y la base de datos 1 puede manejarse usando técnicas convencionales, tales como a través de una red 3 como se representa en la Figura 1. Las líneas discontinuas muestran que la base de datos 1 y el motor 2 de búsqueda pueden ser parte de un sistema 6 de reservas más global. La figura 1 también ilustra que al menos un sistema 4 proveedor debe tenerse en cuenta para la gestión de los datos contenidos en la base de datos 1. Anteriormente se explicó que las tarifas aéreas están conectadas a productos perecederos vendidos por una industria muy competitiva.
A continuación se explicará con más detalle cómo la invención ofrece una solución flexible y eficiente para modificar el contenido de la base de datos 1 de producción con respecto a las modificaciones de datos del proveedor. Todas o algunas de las modificaciones de datos enviadas por el sistema 4 proveedor de datos pueden ser procesadas por un componente 20 de entrada que también es, preferentemente, parte del sistema 6 de reservas y que actúa como interfaz entre el sistema 4 proveedor de datos y la base de datos 1 de producción a través de cualquier medio de comunicación satisfactorio.
Los datos de entrada del componente 20 son los nuevos datos del sistema 4 proveedor de datos que la base de datos de producción tiene en cuenta. Los datos nuevos pueden incluir definiciones de tarifas completamente nuevas o modificaciones de definiciones de tarifas existentes. Preferentemente, los datos recibidos en el componente 20 tienen la forma de al menos un archivo. Cada archivo contiene al menos un conjunto de datos. Un conjunto de datos contiene al menos una entidad de datos que describe un componente (o producto) de una definición de tarifa. También se pueden recibir archivos vacíos de un proveedor. En este caso, todos los trabajos relacionados con el procesamiento de este tipo de datos se configuran automáticamente como "Completado" para resolver de inmediato las dependencias que otros datos puedan tener. Preferentemente, cada sistema 4 proveedor de datos envía archivos separados para los componentes de las definiciones de tarifas y cada archivo contiene una pluralidad (y a menudo grandes volúmenes) de entidades de datos (es decir, una entidad de datos por definición de tarifa para ser modificada o creada en la base de datos 1 de producción).
Pasando ahora a la Figura 2, se muestra una realización donde se ejecutan varios trabajos 9, 10, 11, 12 para adaptar los conjuntos de datos recibidos del proveedor al formato requerido por la base de datos 1 de producción. Otra tarea potencial de los trabajos 9, 10, 11, 12 es realizar algunas comprobaciones en cuanto a la integridad y sintaxis de los datos.
En la Figura 3 se da un ejemplo detallado de los trabajos 9, 10, 11, 12 para un conjunto de datos formado por entidades de datos para un componente de las definiciones de tarifas. En la entrada 13 se recibe un archivo que incluye al menos un conjunto de datos. Allí se lanza un primer trabajo 9 para realizar una etapa de Editar/Convertir para controlar el archivo transmitido. Esto puede incluir:
- una verificación de sintaxis en todos los campos del conjunto de datos. Si una verificación falla, puede surgir un error y el registro puede ser rechazado;
- una conversión de los registros del archivo en entidades de datos correspondientes a una estructura de datos interna.
Este trabajo 9 también puede filtrar los datos que se manejarán omitiendo registros inútiles del archivo de entrada. Un registro inútil es, por ejemplo, un registro en el pasado para el cual una fecha de discontinuación y una fecha efectiva son anteriores a la fecha de transmisión del archivo.
En el caso de un archivo que contiene conjuntos de datos para varios componentes, el trabajo 9 divide los datos para permitir un procesamiento separado de los datos de cada componente.
El icono 14 refleja la salida del trabajo 9 con el conjunto de datos convertidos en entidades de datos.
Un trabajo opcional 9a puede clasificar los datos para optimizar su proceso. Los criterios de clasificación son peculiares del tipo de conjunto de datos. La función de esta etapa es ordenar los datos en un orden compatible con la paralelización de la siguiente etapa (preintegración) y el protocolo de cambio que se aplicará. De hecho, para que la paralelización sea eficiente, es necesario garantizar que el sistema esté manejando distintos dominios de datos. Con respecto al protocolo de cambio, los datos también deben ordenarse en un orden determinado para que funcione correctamente.
Por ejemplo, las tarifas se clasifican por propietario/transportista/tarifa/regla/clase de tarifa/origen/destino/.... Entonces se obtiene una estructura 15 interna refinada.
Los trabajos 10 corresponden a una etapa de preintegración en la que los datos se preparan antes de la actualización efectiva en la base de datos. Esto permite tener un punto de reinicio para la integración en la base de datos. Además, se pueden tomar acciones adicionales, tales como cuando una tarifa hace referencia a una nueva regla, esta referencia se verifica en esta etapa. Esto permite garantizar la coherencia de la definición de tarifa. La salida del trabajo 10 consiste en al menos una tabla 16 almacenada en una base de datos preliminar. Cabe señalar que en esta etapa se puede usar un factor de paralelismo alto, ya que los trabajos adicionales toman sus datos de entrada en una base de datos, siendo dichos datos potencialmente procesados de manera intercambiable por cualquier instancia paralela en ejecución. Por el contrario, los trabajos 9, 9a y 10 están manejando archivos de modo que paralelizar cada trabajo implica dividir previamente el archivo.
El trabajo 11 que se muestra en la Figura 3 es para propósitos de integración de datos. Puede incluir:
- recuperación de datos de la tabla 16 preliminar de la base de datos;
- aplicación del protocolo de cambio especificado por el proveedor de datos. Este protocolo describe cómo las definiciones de tarifas (nuevas o actualizadas) deben fusionarse con el conjunto de datos ya presentes en la base de datos. Este protocolo describe cómo se deben cambiar las definiciones de tarifas en la base de datos en función del conjunto de datos;
- realización de algunas verificaciones, tales como verificaciones de controles cruzados.
A continuación, los datos se pueden actualizar en forma de una base de datos 17 de referencia.
Luego, el trabajo 12 carga los datos en la base de datos 1 de producción creando una imagen activa de los datos de la tabla de referencia. También puede realizar algunas acciones adicionales, tales como desnormalizar la información de algunas reglas en tarifas.
La cadena de procesamiento descrita anteriormente implica un tiempo de procesamiento que se puede gestionar gracias a la invención, teniendo en cuenta la duración de los trabajos, un tiempo objetivo y las posibles dependencias del trabajo dentro de una cadena de procesamiento y/o entre cadenas de procesamiento paralelas procesando conjuntos de datos.
Para ello, la Figura 2 muestra algunas características que pueden incluir un componente de entrada. Una primera característica es un programador 7 de trabajos que controla el lanzamiento de los trabajos. Más adelante se describirá con detalle por qué un trabajo puede no ser ejecutable porque necesita que los datos sean procesados primero por otro trabajo. El programador 7 de trabajos puede lanzar un trabajo cuando se resuelvan todas las dependencias para dicho trabajo. Esto corresponde a la flecha "a" en la Figura 2, lanzando, por ejemplo, el trabajo 10.
Antes de que el trabajo 10 comience efectivamente, se llama a un asignador 8 de recursos como se muestra con la flecha "b". Esta llamada especifica ventajosamente el volumen de datos implicado para el trabajo 10, el tipo de componente (también llamado producto) y el tipo de proceso a realizar, es decir, la naturaleza del trabajo Editar/convertir, preintegración, carga...
El asignador 8 de recurso asigna entonces el mejor nivel de recursos (unidades de procesamiento informático) que está vinculado al número de instancias paralelas utilizadas para el trabajo dado. Preferentemente, la asignación se realiza en base a un tiempo de procesamiento objetivo para la cadena de procesamiento. Por tanto, el asignador 8 de recursos puede adaptar el recurso asignado para alcanzar el objetivo de tiempo en vista del tiempo de procesamiento ya gastado para los trabajos anteriores de la cadena de procesamiento. Para conseguir una reactividad óptima del sistema, ventajosamente se llama al asignador 8 de recursos antes de cada trabajo de la cadena de procesamiento. Sin embargo, esto no limita la invención. Por ejemplo, esto se puede realizar solo para los trabajos 11 y 12.
Preferentemente, el asignador 8 de recursos usa:
- datos históricos almacenados en una base de datos estadística histórica; para un producto dado y un tipo de proceso que contiene información sobre las ejecuciones anteriores (por ejemplo, tiempo de procesamiento, volumen de datos manejados, factor de paralelismo usado);
- datos de restricción que pueden incluir los parámetros que se van a aplicar al trabajo, tales como:
- los límites que no deben superarse (límite físico de la CPU, tiempo máximo de procesamiento, carga de trabajo máxima de la base de datos...);
- objetivos a alcanzar (uso de CPU objetivo, tiempo de procesamiento objetivo, tiempo de procesamiento objetivo, carga de trabajo de la base de datos objetivo...);
- factores de paralelismo por defecto.
Cada etapa del procesamiento registra información (volumen, tiempo de procesamiento) en la base de datos estadística histórica. Se utilizan en la siguiente etapa para conocer de antemano el volumen que tendrá que manejar. Esto es válido para cualquiera de las etapas excepto la primera (trabajo 9) que es el que registra la información del primer volumen de datos para un ciclo dado.
Cuando un trabajo determinado llama al asignador 8 de recursos, da sus características (volumen de datos a manejar, tipo de proceso, producto). Con esta información, el asignador 8 de recursos determina cuántas instancias del trabajo deben ejecutarse en paralelo según:
• sobre las estadísticas de procesamiento de las ejecuciones pasadas del mismo trabajo para más o menos el mismo volumen.
• sobre las restricciones/parámetros
• en las estadísticas de procesamiento de las etapas anteriores de la cadena de procesamiento actual: acelerar si es necesario las etapas restantes del procesamiento (aumentando el factor de paralelismo) para mantener el retraso que puede haber ocurrido por cualquier motivo durante las etapas anteriores.
Como el intervalo de volumen es amplio, es prácticamente imposible encontrar dos transmisiones del mismo producto con el mismo volumen de datos. En consecuencia, el intervalo de volumen se divide en porciones/paquetes en los que el asignador 8 de recursos calcula las estadísticas.
El resultado/beneficio de la invención es un tiempo de procesamiento garantizado y fijo, sea cual sea el tipo de datos a procesar, su proveedor, su volumen..., teniendo en cuenta los recursos disponibles.
Los cálculos del asignador 8 de recursos conducen a la entrega de una configuración adaptada a la situación actual de la cadena de procesamiento y especificando el factor de paralelismo a ser utilizado por el trabajo que se va a lanzar. Esta transmisión de configuración se representa con la flecha "c" en la Figura 2. La configuración puede incluir factores de paralelismo (preferentemente en forma de número de instancias) para otros trabajos.
Las figuras 6a a 6i dan un ejemplo concreto de determinación de la configuración.
La Figura 6a muestra que para un tipo dado de datos (producto A) se almacenan varias configuraciones predeterminadas, respectivamente Config.1, Config. 2 y Config. 3, cada uno aplicable a un intervalo de números de datos. Cada configuración especifica el número de instancias que se utilizarán para cada trabajo y el número de ejecuciones anteriores de la configuración.
La Figura 6b ilustra las estadísticas que mantiene el sistema para una configuración dada, en términos de volumen de datos y tiempo de procesamiento en cada trabajo.
En el ejemplo de la Figura 6c, se recibe en la entrada un conjunto de datos que contiene 50.000 datos. Se selecciona la configuración Config. 2 y se añade una ejecución para enriquecer la base de datos histórica con esta entrada, asumiendo que se cumple el tiempo objetivo de esta cadena de procesamiento.
En el caso alternativo de la Figura 6e, se tienen que procesar 50.000 datos usando la config.2. Al ejecutar el trabajo 10 (en una etapa en la que se procesó el 85 % de los datos), parecía que había transcurrido el 80 % del tiempo de procesamiento objetivo; se detecta un margen de maniobra y el asignador 8 de recursos modifica la configuración que se aplicará a partir del siguiente trabajo 11.
El asignador 8 de recursos determina que no hubo un caso excepcional en el pasado y determina una nueva configuración, denominada Config. 4, aplicando el nivel de paralelismo de la configuración superior (config. 3) para los trabajos restantes (trabajos 11 y 12).
La Config. 4 recién creada es ahora la configuración actual para la cadena de procesamiento y también se almacena para su uso posterior (véase la Figura 6f).
Otro ejemplo se da en la Figura 6g donde se reciben 45.000 datos en el conjunto de datos de entrada. Se selecciona la configuración Config. 2. Como en el caso de la Figura 6e, cuando se ejecuta el trabajo 10 (ya el 90 % de los datos procesados), parece que ha transcurrido el 80 % del tiempo de procesamiento objetivo. De nuevo, se detecta un margen de maniobra y el asignador 8 de recursos cambia la configuración.
Dado que ya ocurrió un caso excepcional anterior pero similar, se selecciona la Config. 4. La base de datos histórica se actualiza en consecuencia (Figuras 6g y 6h).
Si el sistema detecta que la Config. 2 no es más apropiado como configuración estándar, el asignador 8 de recursos determina una nueva configuración estándar, tal como la Config. 5 en la Figura 6i, con una asignación de recursos adaptada para cada trabajo.
Preferentemente, se detecta un margen de maniobra cuando el tiempo empleado en el proceso alcanza el 80 % (esto puede parametrizarse) del tiempo de procesamiento objetivo.
El asignador 8 de recursos no cambia necesariamente la configuración para manejar un margen e maniobra detectado. A modo de ejemplo, para preservar el KOPI (indicador clave de rendimiento del desempeño), es posible que el sistema solo necesite tener más del 90 % (el valor depende del KOPI) de las transmisiones procesadas en el tiempo especificado en el tiempo objetivo (estando este tiempo objetivo dirigido a respetar un acuerdo de nivel de servicio). Esto significa que no es necesario presionar todos los recursos para rectificar todos los márgenes siempre que el margen de maniobra en curso no sea inferior al 90 % de las transmisiones procesadas en el tiempo objetivo. En el caso de que aún se respete el tiempo objetivo, el asignador 8 de recursos no modifica la configuración.
Pero en el caso de que el tiempo objetivo se vea amenazado, el asignador 8 de recursos establece una nueva configuración.
Caso 1: Un caso tan excepcional ya ocurrió en el pasado (margen de maniobra detectado en la misma etapa por razones similares, número de datos equivalente):
^Tornar la configuración correspondiente
Caso 2: Ningún caso tan excepcional en el pasado:
^ S e debe determinar una nueva configuración.
Por defecto, se aplica la configuración superior (es decir, la configuración que maneja más datos). Si no existe tal configuración, entonces se usa un enfoque lineal: multiplicar el número de recursos en función de un factor f dado calculado de la siguiente manera:
Tstd = tiempo promedio para manejar 1 entidad de datos en la configuración estándar (durante la etapa en la cual se ha detectado el margen de maniobra)
T exc = tiempo promedio para manejar 1 entidad de datos (durante la etapa en la cual se ha detectado el margen de maniobra)
f T exc/T std
• Si los trabajos en curso están cerca de completarse (>80 %) ^ aplicar la nueva configuración de la siguiente etapa en el flujo.
• Si los trabajos en curso no están cerca de completarse (<80 % )^ aplicar la nueva configuración de la etapa actual en el flujo.
La figura 4 muestra otro aspecto de la invención en el que se reciben como entrada varios archivos de proveedores. Un archivo A de proveedor conduce a una primera cadena de procesamiento. En las cadenas de procesamiento en paralelo también se ejecutan los archivos B y C de proveedor. En el caso del archivo B de proveedor, el archivo original se divide en 3 archivos "PSP", B1, B2 y B3, porque contenía datos para tres componentes o productos de definiciones de tarifas. De manera similar, el archivo C de proveedor se divide en dos archivos "PSP", C1 y C2. El término PSP aquí corresponde a una estructura interna preferida para trabajar con los conjuntos de datos.
Idealmente, las cadenas de procesos paralelas se ejecutan de forma independiente. Sin embargo, puede suceder que algunos trabajos de una determinada cadena de procesos dependan de trabajos de al menos otra cadena de procesos. Esta situación se ilustra en la Figura 5 donde, a modo de ejemplo, son visibles tres cadenas de procesamiento paralelas. Una cadena es para un conjunto de datos correspondientes al registro 3 de reglas, otra para el registro 1 de reglas y otra para las tarifas. Los trabajos 11 y 12 que se representan en el presente documento son trabajos sustancialmente paralelos porque no es necesario esperar a que se complete por completo el trabajo 11 (para todas las entidades de datos) para iniciar el trabajo 12 para algunas entidades de datos. Sin embargo, las líneas discontinuas muestran claramente que el trabajo 12 no puede finalizar antes del trabajo 11.
Y, dependiendo de las razones, el trabajo 12 de la cadena de procesamiento del registro 1 de reglas no puede comenzar antes de que se complete el trabajo 12 para el registro 3 de reglas. Lo mismo se aplica entre el trabajo 12 de los registros 1 de reglas y el trabajo 12 de tarifas.
Para manejar tales dependencias intra e interproducto, el programador 7 de trabajos actúa como rastreador de las ejecuciones de trabajos para determinar qué trabajo se puede lanzar dependiendo del estado de todas las cadenas de procesamiento.
Obviamente, el ejemplo anterior proporcionado para las tarifas utilizadas en la industria de viajes y turismo puede tener una aplicación similar para otros tipos de datos. La invención se aplica a todo tipo de flujo de proceso donde se debe optimizar el tiempo de procesamiento y el uso de la CPU. Una ventaja de la invención reside en que la cadena de procesos comprende varios trabajos que constituyen etapas ventajosas de asignación de recursos.
Aunque se han descrito con detalle realizaciones ilustrativas de la presente invención con referencia a los dibujos adjuntos, debe entenderse que la invención no se limita a esas realizaciones precisas y que pueden realizarse cambios y modificaciones.

Claims (8)

REIVINDICACIONES
1. Método para procesar un conjunto de datos recibidos de un sistema (4) proveedor, comprendiendo el método:
- recibir el conjunto de datos del sistema (4) proveedor en forma de al menos un archivo, en el que el conjunto de datos contiene al menos una entidad de datos, que describe un componente de una definición de tarifa para ser modificado o creado en una base de datos (1) de producción, dicho al menos un archivo se hace accesible por una instalación de producción con el objetivo de responder a las solicitudes de búsqueda de dispositivos (5) de usuario final y se procesa dentro de una misma cadena de procesamiento,
- realizar una cadena de procesamiento que comprende una pluralidad de trabajos consecutivos para adaptar el conjunto de datos a un formato requerido por la base de datos (1) de producción y modificar la base de datos (1) de producción según el conjunto de datos, en el que realizar la cadena de procesamiento comprende las etapas de:
- establecer, mediante un asignador (8) de recursos, un tiempo de procesamiento objetivo para la cadena de procesamiento,
- antes de lanzar un primer trabajo de los trabajos consecutivos de la cadena de procesamiento:
- resolver, mediante un programador (7) de trabajos, las dependencias del primer trabajo; y
- aplicar, por parte del asignador (8) de recursos, una configuración original como configuración actual, en la que la configuración original se determina en base a datos históricos, que comprende información sobre ejecuciones previas de cadenas de procesamiento para conjuntos de datos del mismo tipo que el conjunto de datos, y datos de restricción, que comprenden el tiempo de procesamiento objetivo de la cadena de procesamiento, y define un nivel de paralelización que especifica un número de instancias paralelas para cada uno de los trabajos consecutivos,
- lanzar, por parte del programador (7) de trabajos, el primer trabajo; y
- antes de lanzar un trabajo más de la cadena de procesamiento, después del primer trabajo:
- cuando un tiempo de procesamiento restante real, que se determina en función de una cantidad de entidades de datos ya procesadas, que se encuentra fuera de un intervalo de tiempos de procesamiento restantes aceptables, definido como un intervalo de tiempos por debajo y/o por encima de una proporción determinada del tiempo de procesamiento objetivo, aplicar, por parte del asignador (8) de recursos, una configuración adaptada como nueva configuración actual, en la que la configuración adaptada se determina en base a datos históricos, que comprende información sobre ejecuciones previas de cadenas de procesamiento para conjuntos de datos de un mismo tipo que el conjunto de datos, y datos de restricción, y define un nivel de paralelización adaptado para los trabajos que quedan en la cadena de procesamiento especificando un número de instancias paralelas para cada uno de los trabajos consecutivos.
2. El método de la reivindicación 1 que comprende la etapa de crear una tabla de configuración que comprende, para varios intervalos de volumen de datos, una sección de definición de configuración que incluye al menos una definición de configuración que especifica un número de instancias paralelas que se aplicarán para cada trabajo que define el nivel de paralelización.
3. El método de la reivindicación 2, que comprende, cuando el tiempo de procesamiento restante real está por debajo del intervalo de tiempos de procesamiento restantes aceptables, elegir la configuración de procesamiento adaptada entre al menos una configuración de la tabla de configuración para la que el número de instancias paralelas que se va a aplicar a los trabajos restantes es mayor que el número de instancias que se van a aplicar a los trabajos restantes de la configuración actual.
4. El método de la reivindicación 2, que comprende, cuando el tiempo de procesamiento restante real está por encima del intervalo de tiempos de procesamiento restantes aceptables, elegir la configuración de procesamiento adaptada entre al menos una configuración de la tabla de configuración para la que el número de instancias paralelas que se va a aplicar a los trabajos restantes es menor que el número de instancias que se van a aplicar a los trabajos restantes de la configuración actual.
5. El método se realiza como resultado de ejecución de un software informático por al menos un procesador de datos, almacenándose el software informático en un medio de memoria no transitorio legible por ordenador.
6. El método de cualquiera de las reivindicaciones precedentes que comprende acceder a datos de la base de datos (1) de producción desde un dispositivo (5) de usuario final a través de un motor de búsqueda.
7. Un sistema para procesar datos para la modificación de base de datos, que comprende medios configurados para ejecutar el método de cualquiera de las reivindicaciones precedentes.
8. Producto de programa informático almacenado en un medio de memoria no transitorio legible por ordenador y que comprende instrucciones que, cuando son ejecutadas por un ordenador, hacen que realice el método de cualquiera de las reivindicaciones 1 a 6.
Ċ
ES11305822T 2011-06-28 2011-06-28 Método y sistema de procesamiento de datos para la modificación de bases de datos Active ES2837458T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP11305822.6A EP2541408B1 (en) 2011-06-28 2011-06-28 Method and system for processing data for database modification

Publications (1)

Publication Number Publication Date
ES2837458T3 true ES2837458T3 (es) 2021-06-30

Family

ID=44509109

Family Applications (1)

Application Number Title Priority Date Filing Date
ES11305822T Active ES2837458T3 (es) 2011-06-28 2011-06-28 Método y sistema de procesamiento de datos para la modificación de bases de datos

Country Status (11)

Country Link
US (1) US9086927B2 (es)
EP (1) EP2541408B1 (es)
JP (1) JP5997269B2 (es)
KR (1) KR101640647B1 (es)
CN (1) CN103430152B (es)
AU (1) AU2012277965B2 (es)
BR (1) BR112013019466A2 (es)
CA (1) CA2824357C (es)
ES (1) ES2837458T3 (es)
SG (1) SG192156A1 (es)
WO (1) WO2013000883A1 (es)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632838B2 (en) * 2012-12-18 2017-04-25 Microsoft Technology Licensing, Llc Cloud based media processing workflows and module updating
JP2015088112A (ja) * 2013-11-01 2015-05-07 ソニー株式会社 制御装置、処理装置及び情報処理方法
US10216742B2 (en) 2015-08-28 2019-02-26 Honeywell International Inc. Converting data sets in a shared communication environment
WO2018042002A1 (en) * 2016-09-02 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods of managing computational resources
CN109885384B (zh) * 2018-12-13 2023-02-07 平安壹钱包电子商务有限公司 任务并行度优化方法、装置、计算机设备及存储介质

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173306B1 (en) 1995-07-21 2001-01-09 Emc Corporation Dynamic load balancing
US5832182A (en) * 1996-04-24 1998-11-03 Wisconsin Alumni Research Foundation Method and system for data clustering for very large databases
US6021405A (en) * 1996-08-23 2000-02-01 Tandem Computers, Inc. System and method for optimizing database queries with improved performance enhancements
US6449619B1 (en) * 1999-06-23 2002-09-10 Datamirror Corporation Method and apparatus for pipelining the transformation of information between heterogeneous sets of data sources
AU2610701A (en) * 2000-01-03 2001-07-16 Efeckta Technologies Corporation Efficient and lossless conversion for transmission or storage of data
US7225444B1 (en) * 2000-09-29 2007-05-29 Ncr Corp. Method and apparatus for performing parallel data operations
US7065764B1 (en) * 2001-07-20 2006-06-20 Netrendered, Inc. Dynamically allocated cluster system
WO2003048961A1 (en) 2001-12-04 2003-06-12 Powerllel Corporation Parallel computing system, method and architecture
US7089260B2 (en) * 2002-02-14 2006-08-08 International Business Machines Corporation Database optimization apparatus and method
US7281013B2 (en) 2002-06-03 2007-10-09 Microsoft Corporation Workload analysis tool for relational databases
US7953891B2 (en) * 2003-03-18 2011-05-31 Microsoft Corporation Systems and methods for scheduling data flow execution based on an arbitrary graph describing the desired data flow
US7493380B2 (en) 2003-12-02 2009-02-17 International Business Machines Corporation Method for determining load balancing weights using application instance topology information
US7254590B2 (en) * 2003-12-03 2007-08-07 Informatica Corporation Set-oriented real-time data processing based on transaction boundaries
US8311974B2 (en) * 2004-02-20 2012-11-13 Oracle International Corporation Modularized extraction, transformation, and loading for a database
US8046354B2 (en) * 2004-09-30 2011-10-25 International Business Machines Corporation Method and apparatus for re-evaluating execution strategy for a database query
US8099736B2 (en) 2004-10-14 2012-01-17 The Trizetto Group, Inc. Systems and methods providing intelligent routing of data between software systems
US7739390B2 (en) * 2005-03-23 2010-06-15 Cisco Technology, Inc. Method and apparatus for achieving optimal transfer times in a peer-to-peer network
US7401012B1 (en) 2005-04-20 2008-07-15 Sun Microsystems, Inc. Method and apparatus for characterizing computer system workloads
US7409656B1 (en) 2005-09-12 2008-08-05 Cadence Design Systems, Inc. Method and system for parallelizing computing operations
US7512591B2 (en) * 2005-12-09 2009-03-31 International Business Machines Corporation System and method to improve processing time of databases by cache optimization
US7647405B2 (en) 2006-02-06 2010-01-12 International Business Machines Corporation Method for reducing variability and oscillations in load balancing recommendations using historical values and workload metrics
US7624118B2 (en) * 2006-07-26 2009-11-24 Microsoft Corporation Data processing over very large databases
JP4308241B2 (ja) * 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
JP2008134705A (ja) * 2006-11-27 2008-06-12 Hitachi Ltd データ処理方法及びデータ分析装置
US8225300B1 (en) * 2007-02-14 2012-07-17 The Mathworks, Inc. Client program executable on multiple heterogeneous server platforms
US8150904B2 (en) * 2007-02-28 2012-04-03 Sap Ag Distribution of data and task instances in grid environments
WO2008118613A1 (en) * 2007-03-01 2008-10-02 Microsoft Corporation Executing tasks through multiple processors consistently with dynamic assignments
US8032867B2 (en) * 2007-06-05 2011-10-04 Computer Associates Think, Inc. Programmatic root cause analysis for application performance management
JP4428424B2 (ja) * 2007-08-20 2010-03-10 ソニー株式会社 情報処理装置、情報処理方法、プログラムおよび記録媒体
US8234652B2 (en) * 2007-08-28 2012-07-31 International Business Machines Corporation Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks
US20090112792A1 (en) * 2007-10-25 2009-04-30 Eric Lawrence Barsness Generating Statistics for Optimizing Database Queries Containing User-Defined Functions
EP2079020B1 (en) * 2008-01-03 2013-03-20 Accenture Global Services Limited System amd method for automating ETL applications
US7941426B2 (en) * 2008-05-08 2011-05-10 International Business Machines Corporation Optimizing database queries
US10983998B2 (en) * 2008-06-25 2021-04-20 Microsoft Technology Licensing, Llc Query execution plans by compilation-time execution
US8185912B1 (en) * 2008-10-03 2012-05-22 Sprint Communications Company L.P. Rerouting messages to parallel queue instances
US8387064B2 (en) 2008-10-09 2013-02-26 International Business Machines Corporation Balancing a data processing load among a plurality of compute nodes in a parallel computer
US8365174B2 (en) * 2008-10-14 2013-01-29 Chetan Kumar Gupta System and method for modifying scheduling of queries in response to the balancing average stretch and maximum stretch of scheduled queries
US20100100703A1 (en) 2008-10-17 2010-04-22 Computational Research Laboratories Ltd. System For Parallel Computing
US8311989B1 (en) * 2008-12-29 2012-11-13 Teradata Us, Inc. Query logging in a multi-database system
US8352956B1 (en) * 2009-02-02 2013-01-08 Juniper Networks, Inc. Calculating an estimated time remaining for completion of a multi-phased and multi-threaded process
US20100257527A1 (en) * 2009-04-01 2010-10-07 Soluto Ltd Computer applications classifier
US8301798B2 (en) * 2009-06-12 2012-10-30 Barclays Captial Inc. System and method for processing large amounts of transactional data
US8281309B2 (en) * 2009-08-31 2012-10-02 Accenture Global Services Limited Optimization system for controlling batch job processing traffic transmitted to a mainframe computer
US8935702B2 (en) * 2009-09-04 2015-01-13 International Business Machines Corporation Resource optimization for parallel data integration
JP2011123817A (ja) * 2009-12-14 2011-06-23 Fujitsu Ltd ジョブ振分装置、ジョブ振分プログラム及びジョブ振分方法
EP2355023A1 (en) * 2010-01-06 2011-08-10 Amadeus S.A.S. Improvements in or relating to a search engine and associated method
US9307048B2 (en) * 2010-12-28 2016-04-05 Microsoft Technology Licensing, Llc System and method for proactive task scheduling of a copy of outlier task in a computing environment
US8555281B1 (en) * 2011-02-16 2013-10-08 Google Inc. Scheduling of tasks based upon historical execution times
US8799248B2 (en) * 2011-04-26 2014-08-05 Brian J. Bulkowski Real-time transaction scheduling in a distributed database

Also Published As

Publication number Publication date
CA2824357C (en) 2018-11-27
AU2012277965B2 (en) 2015-07-30
AU2012277965A1 (en) 2013-05-02
US20130006955A1 (en) 2013-01-03
JP5997269B2 (ja) 2016-09-28
US9086927B2 (en) 2015-07-21
EP2541408A1 (en) 2013-01-02
SG192156A1 (en) 2013-08-30
CN103430152A (zh) 2013-12-04
EP2541408B1 (en) 2020-10-07
JP2015501456A (ja) 2015-01-15
WO2013000883A1 (en) 2013-01-03
BR112013019466A2 (pt) 2019-09-24
CA2824357A1 (en) 2013-01-03
CN103430152B (zh) 2017-03-08
KR20140027128A (ko) 2014-03-06
KR101640647B1 (ko) 2016-07-18

Similar Documents

Publication Publication Date Title
US9277003B2 (en) Automated cloud workload management in a map-reduce environment
US10042886B2 (en) Distributed resource-aware task scheduling with replicated data placement in parallel database clusters
Raman et al. Policy driven heterogeneous resource co-allocation with gangmatching
US8612785B2 (en) Optimizing energy consumption utilized for workload processing in a networked computing environment
ES2837458T3 (es) Método y sistema de procesamiento de datos para la modificación de bases de datos
Zhang et al. Design and implementation of task scheduling strategies for massive remote sensing data processing across multiple data centers
Mencagli et al. Harnessing sliding-window execution semantics for parallel stream processing
Danelutto et al. Data stream processing via code annotations
Chen et al. A parallel computing framework for solving user equilibrium problem on computer clusters
US9846598B2 (en) Modifying a flow of operations to be executed in a plurality of execution environments
Danelutto et al. State access patterns in stream parallel computations
US20150302330A1 (en) Automated Job Assignment to Service Providers
Lindermayr et al. Non-clairvoyant scheduling with predictions revisited
Radha et al. Slot utilization and performance improvement in hadoop cluster
Kunis et al. Optimizing layer‐based scheduling algorithms for parallel tasks with dependencies
Wang et al. ACS: an effective admission control scheme with deadlock resolutions for workflow scheduling in clouds
Toporkov et al. Fair scheduling in grid VOs with anticipation heuristic
Varalakshmi et al. Cost-optimized resource provisioning in cloud
Sun et al. Explicit Assignment and Dynamic Pricing of Macro Online Tasks in Spatial Crowdsourcing
Mao et al. Cloud auto-scaling with deadline and budget constraints
CN117806786A (zh) 任务调度方法和电子装置
Toporkov et al. Anticipation Scheduling in Grid Virtual Organizations
Fischer Efficient Distributed Stream Processing: Optimization Approaches and Applications
Rodriguez Efficient techniques for large-scale Web data management
JP2010224776A (ja) グリッドコンピューティング管理サーバ、プロジェクト管理方法およびプログラム