ES2924809T3 - Reposicionamiento inteligente de datos en base a políticas de planificación - Google Patents

Reposicionamiento inteligente de datos en base a políticas de planificación Download PDF

Info

Publication number
ES2924809T3
ES2924809T3 ES13765871T ES13765871T ES2924809T3 ES 2924809 T3 ES2924809 T3 ES 2924809T3 ES 13765871 T ES13765871 T ES 13765871T ES 13765871 T ES13765871 T ES 13765871T ES 2924809 T3 ES2924809 T3 ES 2924809T3
Authority
ES
Spain
Prior art keywords
data
jobs
job
remote
selecting
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
ES13765871T
Other languages
English (en)
Inventor
Mingqiang Xu
Colin Watson
Jun Su
Yiding Zhou
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2924809T3 publication Critical patent/ES2924809T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/46—Multiprogramming arrangements
    • G06F9/48—Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806—Task transfer initiation or dispatching
    • G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/46—Multiprogramming arrangements
    • G06F9/48—Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806—Task transfer initiation or dispatching
    • G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/46—Multiprogramming arrangements
    • G06F9/48—Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806—Task transfer initiation or dispatching
    • G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818—Priority circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Mover datos de un sistema local a un sistema remoto y realizar cálculos sobre los datos en el sistema remoto. Un método incluye recibir de uno o más usuarios una pluralidad de trabajos. El uno o más trabajos especifican tanto los datos sobre los que se operará como las operaciones que se realizarán sobre los datos en el sistema remoto. En un servicio de datos, se selecciona uno de los trabajos para cargar en el sistema remoto con prioridad sobre otros trabajos en la pluralidad de trabajos. El método incluye además comenzar a cargar el trabajo priorizado, incluidos los datos de preparación del trabajo. En el sistema remoto, una vez que se ha recibido una parte de los datos, un servicio en el sistema remoto comienza a realizar la operación especificada en los datos para el trabajo priorizado. Comenzar a realizar la operación especificada se realiza antes de que todos los datos del trabajo priorizado se carguen en el sistema remoto. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Reposicionamiento inteligente de datos en base a políticas de planificación
Antecedentes
Los ordenadores y los sistemas informáticos afectan a casi todos los aspectos de la vida moderna. El trabajo, el ocio, la atención médica, el transporte, el entretenimiento, la administración del hogar, etc. entrañan, en general, el uso de ordenadores.
Además, la funcionalidad del sistema informático puede perfeccionarse utilizando la capacidad que tienen los sistemas informáticos de interconectarse con otros sistemas informáticos mediante conexiones de red. Las conexiones de red pueden incluir, sin limitarse a, conexiones mediante Ethernet con cable o inalámbricas, conexiones celulares o incluso conexiones de ordenador a ordenador a través de conexiones seriales, paralelas, USB u otras. Las conexiones permiten que un sistema informático acceda a los servicios de otros sistemas informáticos, y que reciba de manera rápida y eficaz datos de aplicación de otro sistema informático. Estas conexiones han permitido la proliferación de la informática en la nube.
El paso de la informática localizada a la informática en la nube ha planteado variados retos a los usuarios finales, incluyendo cómo, dónde y cuándo reposicionar datos dentro y fuera de la nube como parte de las funciones de realización de flujos de trabajo sobre los datos. Por ejemplo, puede resultar difícil determinar cuándo y cómo mover datos de un almacenamiento local a la nube, cuándo operar con los datos en la nube y cuándo devolver los datos de la nube al almacenamiento local.
El documento US 2012/204185A1 divulga un método para administrar flujos de trabajo en recursos consumibles utilizando un planificador de trabajos. El planificador recibe solicitudes de reserva flexibles para planificar en un entorno informático que comprende recursos consumibles. La solicitud de reserva flexible especifica una duración y un recurso requerido. Los recursos consumibles comprenden recursos de máquina y recursos flotantes. El planificador crea un trabajo flexible para la solicitud de reserva flexible y coloca el trabajo flexible en una cola de trabajos priorizados para su planificación, teniendo el trabajo flexible prioridad en relación con al menos un trabajo normal en la cola de trabajos priorizados. El planificador añade un conjunto de reservas a un estado de espera para la solicitud de reserva flexible. El planificador, atento a detectar el trabajo flexible posicionado en la cola de trabajos priorizados para planificar a continuación y a detectar una selección de recursos consumibles disponibles que coincidan con el al menos un recurso requerido para su duración, transfiere la selección de recursos consumibles a la reserva, y pone la reserva en estado activo.
El objeto reivindicado en el presente documento no se limita a realizaciones que resuelven algunas desventajas o que funcionan sólo en entornos tales como los descritos anteriormente. Más bien, estos antecedentes se proporcionan sólo para ilustrar un área ejemplar de la técnica, en la que se pueden practicar algunas realizaciones descritas en el presente documento.
Breve sumario
Una realización ilustrada en el presente documento incluye un método que se puede practicar en un entorno informático en la nube. El método incluye pasos para mover datos desde un primer sistema a un segundo sistema remoto con respecto al primer sistema y realizar cálculos sobre los datos. El método incluye recibir de uno o más usuarios una pluralidad de trabajos. El uno o más trabajos especifican tanto los datos sobre los que se operará como las operaciones que se realizarán sobre los datos en el segundo sistema del primer sistema. En un servicio de datos, se selecciona uno de los trabajos para cargar en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos. El método incluye adicionalmente comenzar a cargar el trabajo priorizado. En el segundo sistema, una vez que se ha recibido una porción de los datos, un servicio del segundo sistema comienza a realizar la operación especificada en los datos para el trabajo priorizado. La operación de comenzar a realizar la operación especificada se realiza antes de que todos los datos del trabajo priorizado se hayan cargado en el segundo sistema.
Se puede practicar otro método en un entorno informático distribuido. El método incluye pasos para mover datos desde un primer sistema a un segundo sistema remoto con respecto al primer sistema y realizar cálculos sobre los datos. El método incluye, en un segundo sistema que recibe de un primer sistema remoto con respecto al segundo sistema, una descripción completa de un trabajo a realizar en un conjunto de datos almacenados en el primer sistema. La descripción del trabajo identifica los cálculos que se realizarán en el conjunto de datos. La descripción del trabajo se recibe con prioridad sobre otros trabajos recibidos por el segundo sistema y provenientes del primer sistema. En el segundo sistema, una porción del conjunto de datos se recibe desde el primer sistema. El método incluye adicionalmente, en el segundo sistema, comenzar a realizar los cálculos identificados una vez que se ha recibido la porción del conjunto de datos, pero antes de que se haya recibido el conjunto completo de datos. El método incluye adicionalmente, en el segundo sistema, continuar realizando los cálculos identificados en porciones adicionales del conjunto de datos después de que hayan sido recibidos del primer sistema.
Este sumario se proporciona para introducir la selección de los conceptos, que se describen más adelante en la descripción detallada, de una manera simplificada. Este sumario no pretende identificar características clave o características esenciales del objeto reivindicado, ni pretende ser utilizado como ayuda para determinar el alcance del objeto reivindicado.
Las características y ventajas adicionales se expondrán en la descripción que sigue, y, en parte, resultarán evidentes a partir de la descripción, o podrán aprenderse mediante la práctica de las enseñanzas del presente documento. Las características y ventajas de la invención pueden realizarse y obtenerse por medio de los instrumentos y combinaciones particularmente señalados en las reivindicaciones adjuntas. Las características de la presente invención resultarán más evidentes a partir de la siguiente descripción y de las reivindicaciones adjuntas, o podrán aprenderse con la práctica de la invención como se expone de aquí en adelante.
Breve descripción de los dibujos
Con el fin de describir la manera en que se pueden obtener las ventajas y características mencionadas anteriormente y otras, se realizará una descripción más particular del objeto descrito con brevedad anteriormente, con referencia a realizaciones específicas que se ilustran en los dibujos adjuntos. Asumiendo que estos dibujos representan sólo realizaciones típicas, y que, por lo tanto, no deben considerarse limitados en alcance, las realizaciones se describirán y explicarán con mayor especificidad y detalle mediante el uso de los dibujos que se acompañan, en los que:
La figura 1 ilustra unos sistemas primero y segundo que, en este ejemplo, incluyen un sistema local y un sistema "en la nube", remoto con respecto al sistema local, y sistemas para enviar trabajos desde el sistema de las instalaciones al sistema en la nube;
la figura 2 ilustra un método para mover datos desde un primer sistema a un segundo sistema desde la perspectiva del primer sistema; y
La figura 3 ilustra un método para mover datos de un primer sistema a un segundo sistema desde la perspectiva del segundo sistema.
Descripción detallada
Previamente, los sistemas se han configurado para tratar el reposicionamiento de datos, por la que los datos se mueven de un primer sistema a un segundo sistema (sistemas tales como los de centros de datos), y para entablar un cálculo dentro del segundo sistema (por el que se realizan operaciones sobre los datos), como en dos actividades separadas y que se gestionan en consecuencia. Por ejemplo, los datos se pueden mover de un sistema local a un sistema remoto (tal como el llamado sistema basado en la "nube"), realizándose cálculos sobre los datos en el sistema remoto. En el presente documento, los términos “local” y “remoto” se usan para distinguir los dos sistemas y señalar cierta distancia en proximidad lógica o física entre sí. En algunos ejemplos, el sistema local puede ser local para los usuarios finales; sin embargo, no siempre es así necesariamente. Por ejemplo, “local” puede referirse simplemente al hecho de que el sistema es local en y es propiedad de una empresa, mientras que el sistema remoto puede ser un sistema compartido únicamente por la empresa con otras empresas.
Ignorar el hecho de que los cálculos sobre los datos se correlacionan con la entrada y salida de los datos introduce ineficiencias en los recursos del sistema remoto. Algunas realizaciones descritas en el presente documento abordan estas ineficiencias al combinar el cálculo en sistemas remotos con el reposicionamiento de datos desde un sistema local para el sistema remoto, siendo, el sistema remoto, remoto con respecto al sistema local. Por ejemplo, una vez que los datos de un almacenamiento local han comenzado a reposicionarse para un sistema remoto, se pueden iniciar los cálculos sobre los datos. En particular, se pueden iniciar los flujos de trabajo de cálculo cuando una porción parcial de datos se haya transferido al sistema remoto, incluso si no se ha reposicionado el conjunto completo de datos para el sistema remoto. Además, las realizaciones pueden configurarse de tal manera que, si un usuario coloca múltiples cálculos en una cola de trabajos, un servicio de datos puede elegir la prioridad en la se transfieran los trabajos al sistema remoto, como para usar de manera eficiente diversos recursos, incluyendo recursos del sistema local, recursos del sistema remoto, el recurso de ancho de banda de red, etc., al mismo tiempo que garantice que los trabajos que se realicen van a cumplir con las restricciones de prioridad, las restricciones de tiempo, los límites de uso, etc. Además, dentro de un trabajo dado, los cálculos se realizan en un conjunto de datos dado. Se pueden priorizar diferentes porciones del conjunto de datos para su reposicionamiento sobre otras porciones del conjunto de datos, como para realizar de manera eficiente las operaciones en el sistema remoto. Como cada iteración de cálculo sólo requiere su porción de datos de entrada para comenzar, y su salida no depende de que se completen las otras iteraciones, es posible iniciar iteraciones mientras se transfieren datos de entrada a otras iteraciones. Además, los datos de salida se pueden volver a transferir al sistema local mientras otras iteraciones estén aún en proceso.
Como se ha indicado, algunas realizaciones descritas en el presente documento implantan actividades de reposicionamiento de datos en un sistema remoto como parte de una ráfaga de racimo para flujo de trabajo de sistema remoto. Concediendo primacía a los datos, el racimo toma estos datos como un recurso de trabajo al que introduce un algoritmo de planificación. Esto es beneficioso porque el planificador conoce las dependencias de datos de un trabajo y puede orquestar el reposicionamiento de datos junto con la ejecución del trabajo. De este modo, se puede reposicionar una porción de los datos en el sistema remoto. Se pueden iniciar las operaciones sobre los datos mientras otras porciones de los datos para el trabajo permanecen en el sistema local. Las porciones restantes de los datos se pueden reposicionar en el sistema remoto según sea necesario, dado que el planificador conoce las dependencias de los datos, y puede reposicionar los datos en el sistema remoto según sea necesario en los momentos apropiados. Además, los trabajos y los datos se pueden reposicionar en el sistema remoto en base al tiempo de ejecución del trabajo, a la prioridad, a la posición en la cola y al tamaño de los datos. Esto puede producir un uso mucho más eficiente de los recursos de la red y del sistema remoto, y reducir el tiempo de entrega del trabajo. Además, esto puede ser beneficioso porque el servicio de datos en un planificador puede manejar el movimiento de datos para un usuario, asegurarse de que los datos estén en el lugar correcto antes y después de la ejecución del trabajo y limpiar el almacenamiento del sistema remoto no utilizado. Esto puede liberar al usuario de muchas de las tareas de gestión de un ciclo de vida de datos de manera explícita.
Para ilustrar detalles adicionales, se ilustra ahora un ejemplo con referencia a la figura 1. La figura 1 ilustra un sistema local 102 y un sistema remoto 104, el cual, en algunas realizaciones, puede ser un sistema en base al denominado “informática en la nube”. En esta descripción, la "informática en la nube" puede ser un sistema o recurso para habilitar el acceso de red ubicuo, idóneo y bajo demanda a una reserva compartida de recursos informáticos configurables (por ejemplo, redes, servidores, almacenamiento, aplicaciones y servicios) que se pueden proveer y lanzar con un reducido esfuerzo de gestión o con una menor interacción necesaria con el proveedor de servicios. Un modelo de nube puede estar compuesto por diversas características (como, por ejemplo, por un autoservicio bajo demanda, un amplio acceso a la red, una reserva de recursos, una rápida elasticidad, un servicio medido, etc.), diversos modelos de servicio (como, por ejemplo, equipo lógico informático o software como servicio ("SaaS") , plataforma como servicio ("PaaS"), infraestructura como servicio ("IaaS") y diversos modelos de implantación (como, por ejemplo, una nube privada, una nube comunitaria, una nube pública, una nube híbrida, etc.).
Como se ilustra en el paso 1, un cliente 100 prepara datos en un almacenamiento local 106 en el sistema local 102. En el ejemplo ilustrado, el almacenamiento local puede incluir, por ejemplo, una base 108 de datos, un recurso compartido 110 de archivos, un caché distribuido 112, etc. La preparación de datos en un almacenamiento local 106 en el sistema local 102 puede incluir, por ejemplo, generar y almacenar datos, o, de otro modo, crear datos para almacenar en un sistema de almacenamiento.
Como se ilustra en el paso 2, el cliente 100 suministra un trabajo a un planificador 114. Mientras que en el ejemplo ilustrado, el planificador 114 se ilustra implantado en el sistema local 102, puede observarse que, en otras realizaciones, el planificador 114 puede implantarse parcial o totalmente en el sistema remoto 104. El usuario puede especificar la entrada de trabajo y las operaciones o cálculos de trabajo como metadatos de trabajo como parte del suministro de trabajo hecho al planificador 114. El planificador 114 tratará esos datos de entrada de trabajo como recurso. Tratar los datos de entrada como un recurso de trabajo significa tratar los datos de entrada como un recurso que el trabajo requiere. Por ejemplo, así como el equipo físico informático o hardware de un ordenador podría tratarse como un recurso de trabajo necesario para realizar un trabajo, dado que el trabajo necesita recursos de cálculo en los que ejecutarse, los datos de entrada podrían tratarse como un recurso necesario para el trabajo.
Cuando el planificador 114 determine que el trabajo se ejecutará (o podría ejecutarse) en el sistema remoto 104, el planificador 114 solicitará iniciar el transporte de datos para el trabajo como se ilustra en el paso 3 al introducir los datos en una cola 116 de reposicionamiento del sistema remoto, en un servicio 118 de datos de racimo, para el transporte. En particular, aunque el servicio 118 de datos de racimo se ilustra en el sistema local 102, podrá observarse que, en otras realizaciones, el servicio 118 de datos de racimo puede implantarse parcial o totalmente en el sistema remoto 104.
Los trabajos se pueden priorizar en la cola 116; esto es, que no se realizan necesariamente en el orden en el que se colocan en la cola. El servicio de datos puede elegir la prioridad en la que los trabajos se desplazan al sistema remoto 104 como para usar de manera eficiente diversos recursos, que incluyen los recursos del sistema remoto, el recurso de ancho de banda de red, etc., al mismo tiempo que garantiza que los trabajos se realicen para cumplir con las restricciones de prioridad, las restricciones de tiempo, los límites de uso, etc. Por ejemplo, en algunas realizaciones, la prioridad del trabajo en la cola 116 puede decidirse en función de un elemento o más de entre: el orden en que se colocó el trabajo en la cola, el tiempo para realizar el trabajo, el tiempo de transporte de datos, la prioridad del trabajo, la disponibilidad de recursos del sistema remoto, la disponibilidad de recursos de red, la especificación de un super usuario de la prioridad del trabajo, etc. en comparación con otros trabajos. Los trabajos que tardan mucho tiempo en ejecutarse pueden tener una prioridad más alta cuando los recursos del sistema remoto se utilizan menos, y una prioridad más baja cuando los recursos del sistema remoto se utilizan más. Los trabajos que consumen grandes cantidades de recursos de red para ser reposicionados en el sistema remoto 104 pueden tener menor prioridad cuando el uso de la red es ya alto, y mayor prioridad cuando el uso de la red es menor. A los trabajos se les puede asignar manual o automáticamente una prioridad más alta que a otros trabajos en base a la importancia de los trabajos o la naturaleza crítica del tiempo de los trabajos. Etc. Los diversos factores podrían sopesarse y usarse en combinación, de tal modo que pudieran usarse varios factores para determinar la prioridad general de un trabajo en comparación con la de otros trabajos de la cola 116.
El servicio 118 de datos de racimo está a cargo de transportar todos los datos de la cola 116 al almacenamiento del sistema remoto 120. Los pasos 4 y 5 ilustran el servicio 118 de datos reposicionando datos en el sistema remoto 104 y cargando datos en el sistema remoto 104, respectivamente. El servicio 118 de datos de racimo puede manejar diversos tipos de datos y archivos diferentes. Por ejemplo, la figura 1 ilustra que los datos pueden ser datos de base de datos que están en una base 108 de datos, datos de archivo sin formato que están en un recurso compartido 110 de archivos, datos binarios que están en un caché distribuido 112, etc. El progreso de reposicionamiento de datos se reporta al planificador como se ilustra en el paso 6, de tal manera que el planificador 114 puede decidir comenzar a ejecutar el trabajo en el sistema remoto 104, como se ilustra en el paso 7 de la figura 1. El trabajo se realiza en el sistema remoto 104, como se ilustra en 8 y 9, siendo consumidos los datos almacenados en el almacenamiento 120 del sistema remoto por un trabajo 122 de cálculo que se ejecuta en el sistema remoto 104, y los resultados del cálculo se envían de vuelta al almacenamiento 120 del sistema remoto.
Cuando el trabajo esté hecho, el planificador 114 recibirá un acuse de recibo del trabajo 122 de cálculo (como se ilustra en el paso 10) y el planificador 114 informará al servicio 118 de datos para recopilar todos los resultados del trabajo, como se ilustra en el paso 11. El servicio 118 de datos descarga los resultados del almacenamiento 120 del sistema remoto, como se ilustra en el paso 12, y envía luego los resultados al almacenamiento local 106, como se ilustra en el paso 13. Los recursos del sistema remoto pueden luego ser vaciados o borrados por trabajos futuros. Como se ha ya señalado, las actividades de reposicionamiento de datos para reposicionar datos desde el almacenamiento 106 de las instalaciones al almacenamiento 120 del sistema remoto se realizan en paralelo con los trabajos de cálculo de racimo realizados en el sistema remoto 104. Sin embargo, se pueden implantar realizaciones en las que un trabajo no comenzará a ejecutarse hasta que el planificador 114 esté seguro de que todos los datos necesarios están preparados para su reposicionamiento en el sistema remoto 104 para el trabajo, de modo que no haya trabajos en ejecución que permanezcan inactivos y esperando datos.
El siguiente análisis se refiere ahora a una serie de métodos y de pasos de método que pueden realizarse. Aunque los pasos del método pueden analizarse en un cierto orden o ilustrarse en un diagrama de flujo como si ocurrieran en un orden particular, no se requiere un orden particular, a menos que se indique específicamente, o que se requiera porque un paso depende de que se complete otro paso con anterioridad a que se realice aquél.
Con referencia ahora a la figura 2, se ilustra un método 200. El método 200 puede practicarse en un entorno informático en red. El método 200 incluye pasos para mover datos desde un primer sistema a un segundo sistema remoto con respecto al primer sistema y realizar cálculos sobre los datos. El método 200 incluye recibir de uno o más usuarios una pluralidad de trabajos (paso 202). El uno o más trabajos especifican tanto los datos que van a intervenir como las operaciones que se van a realizar sobre los datos en el segundo sistema.
El método 200 incluye adicionalmente, en un servicio de datos, seleccionar uno de los trabajos para cargar en el segundo sistema con prioridad sobre otros trabajos de entre la pluralidad de trabajos (paso 204). Por ejemplo, el método 200 puede practicarse cuando seleccionar uno de los trabajos para cargarlo en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos comprenda seleccionar un trabajo en base a los tiempos de ejecución del trabajo. Por ejemplo, si se sabe que un trabajo tardará comparativamente más del tiempo promedio en ejecutarse, se puede priorizar el trabajo para cargarlo cuando el segundo sistema tenga más recursos disponibles. Alternativa o adicionalmente, el método 200 puede practicarse cuando seleccionar uno de los trabajos para cargarlo en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos comprenda seleccionar un trabajo en base al orden en que los trabajos fueron colocados en una cola. Por ejemplo, los trabajos que han estado en la cola más tiempo que otros trabajos pueden ser priorizados sobre otros trabajos para que sean cargados. El método 200 puede practicarse cuando seleccionar uno de los trabajos para cargarlo en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos comprenda seleccionar un trabajo en base al tiempo para transportar los datos de los trabajos. El método 200 puede practicarse cuando seleccionar uno de los trabajos para cargar en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos incluya seleccionar un trabajo en base a la disponibilidad de recursos en el segundo sistema. El método 200 puede practicarse cuando seleccionar uno de los trabajos para cargarlo en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos comprenda seleccionar un trabajo en base a la disponibilidad de la red.
El método 200 incluye adicionalmente comenzar a cargar el trabajo priorizado incluyendo reposicionar datos del trabajo (paso 206).
En el segundo sistema, una vez que se ha recibido una porción de los datos, un servicio en el segundo sistema comienza a realizar la operación especificada en los datos para el trabajo priorizado. Comenzar a realizar la operación especificada se realiza con anterioridad a que todos los datos del trabajo priorizado se hayan cargado en el segundo sistema. En cambio, las operaciones se pueden iniciar antes de que lleguen todos los datos, y se pueden continuar a medida que los datos continúen llegando.
El método 200 puede incluir adicionalmente el reposicionamiento de porciones adicionales de los datos del trabajo al segundo sistema en base al orden en el que el trabajo intervendrá los datos.
Con referencia ahora a la figura 3, se ilustra un método 300. El método 300 puede practicarse en un segundo entorno informático del sistema. El método 300 incluye pasos para mover datos desde un primer sistema a un segundo sistema remoto con respecto al primer sistema y para realizar cálculos sobre los datos. El método 300 incluye, en un segundo sistema que recibe, de un primer sistema remoto con respecto al segundo sistema, una descripción completa de un trabajo a realizar en un conjunto de datos almacenados en el primer sistema (paso 302). La descripción del trabajo identifica los cálculos a realizar en el conjunto de datos. La descripción del trabajo se recibe con prioridad sobre otros trabajos recibidos por el segundo sistema desde el primer sistema.
El método 300 incluye adicionalmente, en el segundo sistema, recibir del primer sistema una porción del conjunto de datos (paso 304).
El método 300 incluye adicionalmente, en el segundo sistema, comenzar, una vez que se haya recibido la porción del conjunto de datos, a realizar los cálculos identificados, pero antes de haber recibido el conjunto completo de datos (paso 306).
El método 300 incluye adicionalmente, en el segundo sistema, continuar realizando los cálculos identificados en porciones adicionales del conjunto de datos después de que se hayan recibido del primer sistema (paso 308).
El método 300 puede incluir adicionalmente el envío de resultados de porciones de los cálculos identificados al primer sistema antes de completar todos los cálculos identificados. Por ejemplo, si se han generado cálculos sobre datos y resultados antes de haber completado todos los cálculos, entonces esos resultados se pueden enviar de vuelta al sistema local 102.
El método 300 puede incluir adicionalmente el envío de resultados de porciones de los cálculos identificados al primer sistema antes de haber recibido el conjunto completo de datos del primer sistema. Por ejemplo, algunos resultados pueden ser calculados por el trabajo 122 de cálculo antes de que todos los datos para realizar los cálculos se hayan reposicionado para el sistema remoto 104. Sin embargo, esto no impide que esos resultados se devuelvan al sistema local 102. En cambio, los resultados pueden entregarse cuando estén listos, independientemente de que se hayan o no completado todos los cálculos para el trabajo.
El método 300 puede incluir adicionalmente continuar recibiendo porciones adicionales del conjunto de datos del primer sistema. Las porciones adicionales se reciben en un orden optimizado en base a los cálculos identificados a realizar en el conjunto de datos. Por ejemplo, el planificador 114 puede saber qué datos se necesitan y el orden en que se intervendrán los datos para completar el trabajo. De este modo, el planificador puede reposicionar datos para el sistema remoto 104 según sea necesario, y en un orden basado en los cálculos que se realicen en el sistema remoto 104.
El método 300 puede incluir adicionalmente, en el servicio del segundo sistema, con anterioridad a haber recibido la descripción completa de un trabajo a realizar en un conjunto de datos almacenados en el primer sistema, enviar al primer sistema una indicación de la cantidad de recursos disponibles en el segundo servicio del sistema. En algunas de tales realizaciones, la prioridad del trabajo se determina en base a la cantidad de recursos disponibles en el segundo sistema.
El método 300 se puede practicar cuando la prioridad del trabajo se determine en base a los tiempos de ejecución de los trabajos en el primer sistema.
El método 300 se puede practicar cuando la prioridad del trabajo se determina en base al tiempo para transportar datos de trabajos en el primer sistema.
Además, los métodos pueden ser practicados por un sistema de ordenador que incluya uno o más procesadores y medios legibles por ordenador tales como una memoria de ordenador. En particular, la memoria de ordenador puede almacenar instrucciones ejecutables por ordenador que, cuando son ejecutadas por uno o más procesadores, hacen que se realicen varias funciones, tales como en los pasos enumerados en las realizaciones.
Las realizaciones de la presente invención pueden comprender o utilizar un ordenador de fines especiales o de fines generales que incluya hardware de ordenador, como se analiza con mayor detalle más adelante. Las realizaciones dentro del alcance de la presente invención también incluyen medios físicos y otros medios legibles por ordenador para llevar o almacenar instrucciones y/o estructuras de datos ejecutables por ordenador. Tales medios legibles por ordenador pueden ser cualquier medio disponible al que se pueda acceder mediante un sistema de ordenador de fines generales o de fines especiales. Los medios legibles por ordenador que almacenan instrucciones ejecutables por ordenador son medios de almacenamiento físico. Los medios legibles por ordenador que contienen instrucciones ejecutables por ordenador son medios de transmisión. De este modo, a modo de ejemplo, y no de limitación, las realizaciones de la invención pueden comprender al menos dos tipos claramente diferentes de medios legibles por ordenador: medios físicos de almacenamiento legibles por ordenador y medios de transmisión legibles por ordenador.
Los medios de almacenamiento físicos legibles por ordenador incluyen RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico (como CD, DVD, etc.), almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda utilizarse para almacenar medios de código de programa deseados en forma de instrucciones ejecutables por ordenador o de estructuras de datos y a las que se pueda acceder mediante un ordenador de fines generales o de fines especiales.
Una "red" se define como uno o más enlaces de datos que permiten el transporte de datos electrónicos entre sistemas de ordenador y/o módulos y/u otros dispositivos electrónicos. Cuando la información se transfiere o se proporciona a través de una red o de otra conexión de comunicaciones (ya sea cableada, inalámbrica o una combinación de cableada o inalámbrica) a un ordenador, el ordenador considera correctamente la conexión como un medio de transmisión. Los medios de transmisión pueden incluir una red y/o enlaces de datos que pueden usarse para transporte, o medios de código de programa deseados en forma de instrucciones ejecutables por ordenador o estructuras de datos y a los que se puede acceder por un ordenador de fines generales o de fines especiales. Las combinaciones de los anteriores también se incluyen dentro del alcance de los medios legibles por ordenador.
Además, al llegar a diversos componentes del sistema de ordenador, los medios de código de programa en forma de instrucciones ejecutables por ordenador o de estructuras de datos pueden transferirse automáticamente desde medios de transmisión legibles por ordenador a medios físicos de almacenamiento legibles por ordenador (o viceversa). Por ejemplo, las instrucciones ejecutables por ordenador o las estructuras de datos recibidas a través de una red o de un enlace de datos pueden almacenarse en la memoria RAM dentro de un módulo de interfaz de red (por ejemplo, una "NIC"), y, eventualmente, transferirse luego a la RAM del sistema de ordenador y/o a unos medios físicos de almacenamiento legibles por ordenador menos volátiles en un sistema de ordenador. De este modo, los medios de almacenamiento físicos legibles por ordenador pueden incluirse en componentes de sistemas de ordenador que también (o incluso principalmente) utilicen medios de transmisión.
Las instrucciones ejecutables por ordenador comprenden, por ejemplo, instrucciones y datos que hacen que un ordenador de fines generales, un ordenador de fines especiales o un dispositivo de procesamiento de fines especiales realice una determinada función o grupo de funciones. Las instrucciones ejecutables por ordenador pueden ser, por ejemplo, binarias, instrucciones de formato intermedio tales como lenguaje de ensamblaje, o incluso código fuente. Aunque el objeto se ha descrito en un lenguaje específico de características estructurales y/o pasos metodológicos, debe entenderse que el objeto definido en las reivindicaciones adjuntas no se limita necesariamente a las características o pasos descritos anteriormente. Por el contrario, las características y pasos descritos se divulgan como formas de ejemplo de implantación de las reivindicaciones.
El experto en la técnica apreciará que la invención se puede practicar en entornos informáticos de red con muchos tipos de configuraciones de sistemas de ordenador, incluyendo ordenadores personales, ordenadores de sobremesa, ordenadores portátiles, procesadores de mensajes, dispositivos de mano, sistemas de multiprocesador, sistemas electrónicos de consumo programables o basados en microprocesadores, PC de red, miniordenadores, ordenadores centrales, teléfonos móviles, PDA, buscapersonas, enrutadores, conmutadores y similares. La invención también se puede practicar en entornos de sistemas distribuidos donde los sistemas de ordenador locales y remotos, que están vinculados (ya sea mediante enlaces de datos cableados, mediante enlaces de datos inalámbricos o mediante una combinación de enlaces de datos cableados e inalámbricos) a través de una red, realizan, ambos, tareas. En un entorno de sistema distribuido, los módulos de programa pueden estar ubicados en dispositivos de almacenamiento de memoria local y remota.
Alternativamente, o además, la funcionalidad descrita en el presente documento puede ser realizada, al menos en parte, por uno o más componentes lógicos de hardware. Por ejemplo, y sin limitación, los tipos ilustrativos de componentes lógicos de hardware que se pueden usar incluyen matrices de puertas programables en campo (FPGA), circuitos integrados específicos del programa (ASIC), productos estándar específicos del programa (ASSP), sistemas de sistema en microprocesador (SOC), dispositivos lógicos programables complejos (CPLD), etc.
Las realizaciones descritas deben considerarse en todos los aspectos sólo como ilustrativas y no restrictivas. El alcance de la invención está, por lo tanto, indicado por las reivindicaciones adjuntas en lugar de por la descripción anterior. Todos los cambios que entren dentro del significado y del intervalo de equivalencias de las reivindicaciones deben adoptarse dentro de su alcance.

Claims (7)

REIVINDICACIONES
1. En un entorno informático de red, un método (200) para mover datos desde un primer sistema a un segundo sistema remoto con respecto al primer sistema, y para realizar cálculos sobre los datos, comprendiendo el método: en el primer sistema, recibir, de uno o más usuarios, una pluralidad de trabajos (202), especificando, el uno o más trabajos, tanto los datos a intervenir como las operaciones a realizar en los datos en el segundo sistema, estando, el segundo sistema, remoto con respecto al primer sistema;
en un servicio (204) de datos, seleccionar uno de los trabajos para cargar en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos; comenzar a cargar el trabajo priorizado (206), incluyendo reposicionar datos del trabajo, reportándose el progreso de reposicionamiento de datos a un planificador implantado en el primer sistema, de modo que el planificador decida comenzar a ejecutar el trabajo en el segundo sistema; en el que, después, en el segundo sistema, una vez que se ha recibido una porción de los datos, el segundo sistema comienza a realizar la operación especificada sobre los datos para el trabajo priorizado, donde comenzar la realización de la operación especificada se realiza con anterioridad a que todos los datos del trabajo priorizado se hayan cargado en el segundo sistema.
2. El método de la reivindicación 1, en el que seleccionar uno de los trabajos para cargar en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos comprende seleccionar un trabajo en base a los tiempos de ejecución del trabajo.
3. El método de la reivindicación 1, en el que seleccionar uno de los trabajos para cargar en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos comprende seleccionar un trabajo en base al orden en el que los trabajos se colocaron en una cola.
4. El método de la reivindicación 1, en el que seleccionar uno de los trabajos para cargar en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos comprende seleccionar un trabajo en base al tiempo para transportar datos de los trabajos.
5. El método de la reivindicación 1, en el que seleccionar uno de los trabajos para cargar en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos comprende seleccionar un trabajo en base a la disponibilidad de recursos en el segundo sistema.
6. El método de la reivindicación 1, en el que seleccionar uno de los trabajos para cargar en el segundo sistema con prioridad sobre otros trabajos dentro de la pluralidad de trabajos comprende seleccionar un trabajo en base a la disponibilidad de la red.
7. El método de la reivindicación 1, que comprende adicionalmente reposicionar porciones adicionales de los datos del trabajo en el segundo sistema en base al orden en el que el trabajo intervendrá los datos.
ES13765871T 2012-09-07 2013-09-06 Reposicionamiento inteligente de datos en base a políticas de planificación Active ES2924809T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/606,268 US8954529B2 (en) 2012-09-07 2012-09-07 Smart data staging based on scheduling policy
PCT/US2013/058356 WO2014039739A1 (en) 2012-09-07 2013-09-06 Smart data staging based on scheduling policy

Publications (1)

Publication Number Publication Date
ES2924809T3 true ES2924809T3 (es) 2022-10-11

Family

ID=49226542

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13765871T Active ES2924809T3 (es) 2012-09-07 2013-09-06 Reposicionamiento inteligente de datos en base a políticas de planificación

Country Status (5)

Country Link
US (2) US8954529B2 (es)
EP (1) EP2893442B1 (es)
CN (1) CN104769549B (es)
ES (1) ES2924809T3 (es)
WO (1) WO2014039739A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014052843A1 (en) * 2012-09-28 2014-04-03 Cycle Computing, Inc. Real time optimization of compute infrastructure in a virtualized environment
CN106572904B (zh) 2014-07-15 2019-06-18 爱尔康制药有限公司 具有温度补偿的眼内透镜插入器
US9948704B2 (en) 2016-04-07 2018-04-17 International Business Machines Corporation Determining a best fit coordinator node in a database as a service infrastructure
CN108462817B (zh) * 2017-02-22 2021-01-05 佳能株式会社 通信装置及其控制方法和存储介质
CN108776862B (zh) * 2018-05-02 2021-08-10 华南理工大学 支持工序任务量拆分的智能排产方法
US10810231B2 (en) 2019-02-05 2020-10-20 Bank Of America Corporation Data transmission using smart clusters
JP2020154391A (ja) * 2019-03-18 2020-09-24 富士ゼロックス株式会社 情報処理システムおよびプログラム
CN112363848B (zh) * 2020-10-23 2024-07-19 岭东核电有限公司 移动终端远程控制方法、装置、计算机设备和存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038348A (en) 1988-07-01 1991-08-06 Sharp Kabushiki Kaisha Apparatus for debugging a data flow program
US5615127A (en) 1994-11-30 1997-03-25 International Business Machines Corporation Parallel execution of a complex task partitioned into a plurality of entities
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US6766376B2 (en) * 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
US7174536B1 (en) 2001-02-12 2007-02-06 Iowa State University Research Foundation, Inc. Integrated interactive software visualization environment
US7110936B2 (en) 2001-02-23 2006-09-19 Complementsoft Llc System and method for generating and maintaining software code
EP1318453A1 (en) 2001-12-07 2003-06-11 Hewlett-Packard Company Scheduling system, method and apparatus for a cluster
US7290048B1 (en) 2002-03-29 2007-10-30 Hyperformix, Inc. Method of semi-automatic data collection, data analysis, and model generation for the performance analysis of enterprise applications
US7610575B2 (en) 2003-01-08 2009-10-27 Consona Crm Inc. System and method for the composition, generation, integration and execution of business processes over a network
US20050165631A1 (en) 2004-01-28 2005-07-28 Microsoft Corporation Time management representations and automation for allocating time to projects and meetings within an online calendaring system
WO2005089239A2 (en) * 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method of providing a self-optimizing reservation in space of compute resources
US20110016214A1 (en) 2009-07-15 2011-01-20 Cluster Resources, Inc. System and method of brokering cloud computing resources
EP1955152A1 (en) 2005-12-01 2008-08-13 Cassatt Corporation Automated deployment and configuration of applications in an autonomically controlled distributed computing system
US8201142B2 (en) 2006-09-29 2012-06-12 Microsoft Corporation Description language for structured graphs
CN101169741B (zh) * 2006-10-25 2010-06-16 国际商业机器公司 确定作业的调度优先级的方法和系统
US8250215B2 (en) 2008-08-12 2012-08-21 Sap Ag Method and system for intelligently leveraging cloud computing resources
CN101599026A (zh) * 2009-07-09 2009-12-09 浪潮电子信息产业股份有限公司 一种具有弹性架构的集群作业调度系统
KR101104164B1 (ko) 2009-09-21 2012-01-13 애니포인트 미디어 그룹 Bd―j규격을 지원하는 재생 장치를 위한 순차적 다운로드 서비스 제공 방법 및 이를 실현시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
CN101719931B (zh) * 2009-11-27 2012-08-15 南京邮电大学 一种基于多智能主体的层次式云端计算模型构建方法
US8276148B2 (en) 2009-12-04 2012-09-25 International Business Machines Corporation Continuous optimization of archive management scheduling by use of integrated content-resource analytic model
US20110161391A1 (en) 2009-12-30 2011-06-30 Nelson Araujo Federated distributed workflow scheduler
US8959217B2 (en) 2010-01-15 2015-02-17 Joyent, Inc. Managing workloads and hardware resources in a cloud resource
US8607242B2 (en) 2010-09-02 2013-12-10 International Business Machines Corporation Selecting cloud service providers to perform data processing jobs based on a plan for a cloud pipeline including processing stages
US8707275B2 (en) 2010-09-14 2014-04-22 Microsoft Corporation Simulation environment for distributed programs
US8453152B2 (en) * 2011-02-01 2013-05-28 International Business Machines Corporation Workflow control of reservations and regular jobs using a flexible job scheduler
CN103092683B (zh) * 2011-11-07 2017-12-26 Sap欧洲公司 用于数据分析的基于启发式的调度

Also Published As

Publication number Publication date
US8954529B2 (en) 2015-02-10
EP2893442A1 (en) 2015-07-15
US9658884B2 (en) 2017-05-23
CN104769549B (zh) 2019-01-08
US20140074965A1 (en) 2014-03-13
EP2893442B1 (en) 2022-07-20
CN104769549A (zh) 2015-07-08
US20150154049A1 (en) 2015-06-04
WO2014039739A1 (en) 2014-03-13

Similar Documents

Publication Publication Date Title
US9658884B2 (en) Smart data staging based on scheduling policy
Garcia-Aviles et al. Nuberu: Reliable RAN virtualization in shared platforms
Gu et al. FaST-GShare: Enabling efficient spatio-temporal GPU sharing in serverless computing for deep learning inference
CN103092683B (zh) 用于数据分析的基于启发式的调度
US8924977B2 (en) Sequential cooperation between map and reduce phases to improve data locality
US11036547B2 (en) File operation task optimization
CN106775977B (zh) 任务调度方法、装置及系统
US9940162B2 (en) Realtime optimization of compute infrastructure in a virtualized environment
WO2013107012A1 (zh) 分布式计算任务处理系统和任务处理方法
JP6934468B2 (ja) ネットワーク上でのソフトウェア更新プロセスを促進するための方法及び機器
CN115454589A (zh) 一种任务调度方法、装置及Kubernetes调度器
US20140223131A1 (en) Optimizing data transfers between heterogeneous memory arenas
CN104965755B (zh) 基于预算约束的云服务工作流调度方法
JP2015144020A5 (es)
US20160261687A1 (en) Defragmenting clusters with reserved resources
WO2023136943A4 (en) On-demand co-processing resources for quantum computing
CN103150213A (zh) 负载平衡方法和装置
US20210141667A1 (en) Information processing apparatus, job scheduling method, and non-transitory computer-readable storage medium
US10031776B2 (en) Workflow job distribution in a data processing system with agent time window constraints
JP2018072907A5 (es)
CN114995981B (zh) 一种并行任务调度方法、系统、存储介质和终端
CN106934537A (zh) 基于反向工作流调度的子期限获取优化方法
US20250013465A1 (en) Managing a carbon footprint associated with executing a job on computer nodes
Kang et al. Scheduling multiple divisible loads in a multi-cloud system
Lipari The slurm scheduler design