RU2714373C1 - Способ и система для планирования выполнения операций ввода/вывода - Google Patents

Способ и система для планирования выполнения операций ввода/вывода Download PDF

Info

Publication number
RU2714373C1
RU2714373C1 RU2018144176A RU2018144176A RU2714373C1 RU 2714373 C1 RU2714373 C1 RU 2714373C1 RU 2018144176 A RU2018144176 A RU 2018144176A RU 2018144176 A RU2018144176 A RU 2018144176A RU 2714373 C1 RU2714373 C1 RU 2714373C1
Authority
RU
Russia
Prior art keywords
operations
scheduler
source
hybrid
drive
Prior art date
Application number
RU2018144176A
Other languages
English (en)
Inventor
Алексей Алексеевич Станкевичус
Сергей Владимирович Трифонов
Original Assignee
Общество С Ограниченной Ответственностью "Яндекс"
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 Общество С Ограниченной Ответственностью "Яндекс" filed Critical Общество С Ограниченной Ответственностью "Яндекс"
Priority to RU2018144176A priority Critical patent/RU2714373C1/ru
Priority to US16/504,040 priority patent/US10996986B2/en
Application granted granted Critical
Publication of RU2714373C1 publication Critical patent/RU2714373C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Группа изобретений относится к средствам планирования операций ввода/вывода (I/O) в накопителях. Технический результат – обеспечение возможности сбалансированного управления накопителем за счет планирования операций I/O. Для этого описан гибридный планировщик и способ выполнения этим планировщиком операций I/O. Гибридный планировщик содержит два планировщика. Способ включает в себя прием операций I/O от двух источников операций I/O и выполнение первым планировщиком первого алгоритма для определения спланированного порядка операций I/O на основе производительности накопителя. Способ также включает в себя передачу этого порядка операций I/O во второй планировщик, который выполняет второй алгоритм для определения перепланированного порядка операций I/O на основе соответствующих предельных сроков выполнения. Способ также включает в себя контроль соблюдения соответствующих предельных сроков выполнения операций I/O и приостановку приема дополнительных операций I/O вторым планировщиком от первого планировщика, если определено несоблюдение соответствующего предельного срока выполнения операции I/O. 2 н. и 28 з.п. ф-лы, 4 ил.

Description

Область техники
Данная технология относится к распределенной обработке данных и, в частности, к способам и системам для планирования выполнения операций ввода/вывода.
Уровень техники
Требования к запоминающим устройствам для хранения цифровых данных постоянно повышаются, поскольку большие объемы цифровых данных создаются ежедневно. Например, хранения могут требовать пользовательские данные, данные организаций и/или данные приложений различных видов. Это повышает требования к емкости хранилищ данных. Такие потребности пользователей и/или организаций способны удовлетворить «облачные» системы удаленного хранения данных.
В общем случае «облачное» хранилище данных представляет собой вид компьютерного запоминающего устройства, в котором цифровые данные хранятся в логических пулах. Физическая память, в которой фактически хранятся цифровые данные, распределяется между несколькими серверами, возможно, расположенными в различных местах (т.е. в различных центрах обработки данных), и обычно управляется компанией, предоставляющей услуги «облачного» хранения данных. Пользователи и/или организации обычно покупают или арендуют некоторый объем памяти у поставщиков услуг «облачного» хранения данных, чтобы хранить свои цифровые данные. Со своей стороны, поставщики услуг «облачного» хранения данных отвечают за доступность цифровых данных и защиту физической памяти с целью предотвращения утраты данных.
Раскрытие изобретения
Разработчики данной технологии обнаружили определенные технические недостатки, связанные с существующими решениями для обеспечения доступности и предотвращения утраты данных.
В соответствии с первым аспектом данной технологии реализован способ планирования операций ввода/вывода (I/O, Input/Output) для их выполнения накопителем. Накопитель представляет собой часть системы распределенной компьютерной обработки информации, содержащей множество источников операций I/O, от которых поступают операции I/O. Множество источников операций I/O содержит первый источник операций I/O и второй источник операций I/O. Первый источник операций I/O и второй источник операций I/O связаны с соответствующими заранее заданными долями производительности накопителя для выполнения соответствующих операций I/O, поступивших от первого источника операций I/O и второго источника операций I/O. Система распределенной компьютерной обработки информации содержит гибридный планировщик операций I/O. Гибридный планировщик операций I/O содержит первый планировщик операций I/O и второй планировщик операций I/O. Способ выполняется гибридным планировщиком операций I/O. Способ включает в себя прием первым планировщиком операций I/O (а) по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником операций I/O. Способ включает в себя выполнение первым планировщиком операций I/O первого алгоритма планирования с целью определения спланированного порядка для по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O. Первый алгоритм планирования основан на соответствующих заранее заданных долях производительности накопителя, связанных с первым источником операций I/O и вторым источником операций I/O. Результатом выполнения первого алгоритма планирования является первый спланированный порядок операций I/O.
Способ включает в себя передачу первого спланированного порядка операций I/O во второй планировщик операций I/O. Способ также включает в себя выполнение вторым планировщиком операций I/O второго алгоритма планирования с целью определения перепланированного порядка операций I/O для первого спланированного порядка операций I/O. Второй алгоритм планирования основан на соответствующих предельных сроках выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O. Способ включает в себя контроль гибридным планировщиком операций I/O соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O. Способ включает в себя приостановку приема вторым планировщиком операций I/O дополнительных операций I/O от первого планировщика операций I/O, если выявлено несоблюдение соответствующего предельного срока выполнения по меньшей мере одной операции I/O.
В некоторых вариантах осуществления способа контроль соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, включает в себя контроль вторым планировщиком операций I/O возможности выполнения до истечения соответствующих предельных сроков по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
В некоторых вариантах осуществления способа определение несоблюдения соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя определение вторым планировщиком операций I/O невозможности выполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O, передаваемой в накопитель согласно перепланированному порядку операций I/O.
В некоторых вариантах осуществления способа определение несоблюдения соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя определение вторым планировщиком операций I/O невозможности выполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O, если от первого планировщика операций I/O принимается дополнительная операция I/O.
В некоторых вариантах осуществления способа контроль соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, включает в себя контроль гибридным планировщиком операций I/O фактического выполнения до истечения соответствующих предельных сроков по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
В некоторых вариантах осуществления способа определение несоблюдения соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя определение гибридным планировщиком операций I/O фактического невыполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O.
В некоторых вариантах осуществления способа приостановка приема включает в себя прекращение приема дополнительных операций I/O вторым планировщиком операций I/O.
В некоторых вариантах осуществления способа приостановка приема включает в себя передачу вторым планировщиком операций I/O в первый планировщик операций I/O сигнала обратной связи, при получении которого первый планировщик операций I/O прекращает отправку дополнительных операций I/O во второй планировщик операций I/O.
В некоторых вариантах осуществления способ дополнительно включает в себя прием первым планировщиком операций I/O по меньшей мере одной дополнительной операции I/O, сформированной первым источником операций I/O, и прием первым планировщиком операций I/O по меньшей мере одной дополнительной операции I/O, сформированной вторым источником операций I/O.
В некоторых вариантах осуществления способ дополнительно включает в себя возобновление вторым планировщиком операций I/O приема дополнительных операций I/O от первого планировщика операций I/O.
В некоторых вариантах осуществления способа возобновление приема выполняется, если гибридный планировщик операций I/O определяет, что дополнительные операции I/O, принятые вторым планировщиком операций I/O, выполняются с соблюдением соответствующих предельных сроков.
В некоторых вариантах осуществления способа первый планировщик операций I/O представляет собой планировщик на основе циклической диспетчеризации по дефициту (DRR, Deficit Round Robin).
В некоторых вариантах осуществления способа второй планировщик операций I/O представляет собой планировщик на основе диспетчеризации по ближайшему предельному сроку завершения (EDF, Earliest Deadline First).
В некоторых вариантах осуществления способа гибридный планировщик операций I/O работает в обычном режиме, когда второй планировщик операций I/O принимает дополнительные операции I/O от первого планировщика операций I/O, или в режиме высокой нагрузки, когда второй планировщик операций I/O приостанавливает прием дополнительных операций I/O от первого планировщика операций I/O.
В некоторых вариантах осуществления способа в обычном режиме работы гибридный планировщик операций I/O обеспечивает «справедливое» распределение производительности накопителя для первого и второго источников операций I/O и выполнение требования первого и второго источников операций I/O относительно режима реального времени. В режиме высокой нагрузки гибридный планировщик операций I/O обеспечивает «справедливое» распределение производительности накопителя для первого и второго источников операций I/O.
Согласно второму аспекту данной технологии реализован гибридный планировщик операций I/O для планирования операций I/O с целью их выполнения накопителем, представляющим собой часть системы распределенной компьютерной обработки информации, содержащей множество источников операций I/O, от которых поступают операции I/O. Множество источников операций I/O содержит первый источник операций I/O и второй источник операций I/O. Первый источник операций I/O и второй источник операций I/O связаны с соответствующими заранее заданными долями производительности накопителя для выполнения соответствующих операций I/O, поступающих от первого источника I/O и второго источника I/O. Система распределенной компьютерной обработки информации включает в себя гибридный планировщик операций I/O, содержащий первый планировщик операций I/O и второй планировщик операций I/O. Гибридный планировщик операций I/O выполнен с возможностью приема первым планировщиком I/O (а) по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником операций I/O. Гибридный планировщик операций I/O выполнен с возможностью выполнения первым планировщиком операций I/O первого алгоритма планирования с целью определения спланированного порядка для по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O. Первый алгоритм планирования основан на соответствующих заранее заданных долях производительности накопителя, связанных с первым источником операций I/O и вторым источником операций I/O. Результатом выполнения первого алгоритма планирования является первый спланированный порядок операций I/O. Гибридный планировщик операций I/O выполнен с возможностью передачи первого спланированного порядка операций I/O во второй планировщик операций I/O. Гибридный планировщик операций I/O выполнен с возможностью выполнения вторым планировщиком операций I/O второго алгоритма планирования с целью определения перепланированного порядка операций I/O для первого спланированного порядка операций I/O. Второй алгоритм планирования основан на соответствующих предельных сроках выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O. Гибридный планировщик операций I/O выполнен с возможностью контроля соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O. Гибридный планировщик операций I/O выполнен с возможностью приостановки приема вторым планировщиком операций I/O дополнительных операций I/O от первого планировщика операций I/O, если выявлено несоблюдение соответствующего предельного срока выполнения по меньшей мере одной операции I/O.
В некоторых вариантах осуществления способность гибридного планировщика операций I/O контролировать соблюдение соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, включает в себя способность контролировать возможность выполнения до истечения соответствующих предельных сроков по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
В некоторых вариантах осуществления способность гибридного планировщика операций I/O определять превышение соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя способность определять невозможность выполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O, передаваемой в накопитель согласно перепланированному порядку операций I/O.
В некоторых вариантах осуществления способность гибридного планировщика операций I/O определять превышение соответствующего предельного срока выполнения по меньшей мере одной операции I/O, включает в себя способность определять невозможность выполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O, если от первого планировщика операций I/O принимается дополнительная операция I/O.
В некоторых вариантах осуществления способность гибридного планировщика операций I/O контролировать соблюдение соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, включает в себя способность контролировать фактическое выполнение до истечения соответствующих предельных сроков по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
В некоторых вариантах осуществления способность гибридного планировщика операций I/O определять превышение соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя способность определять фактическое невыполнение накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O.
В некоторых вариантах осуществления способность гибридного планировщика операций I/O приостанавливать прием включает в себя способность прекращать прием дополнительных операций I/O вторым планировщиком операций I/O.
В некоторых вариантах осуществления способность гибридного планировщика операций I/O приостанавливать прием включает в себя способность второго планировщика операций I/O передавать сигнал обратной связи в первый планировщик операций I/O, при получении которого первый планировщик операций I/O прекращает отправку дополнительных операций I/O во второй планировщик операций I/O.
В некоторых вариантах осуществления гибридного планировщика операций I/O он выполнен с возможностью приема первым планировщиком операций I/O по меньшей мере одной дополнительной операции I/O, сформированной первым источником операций I/O, и приема первым планировщиком операций I/O по меньшей мере одной дополнительной операции I/O, сформированной вторым источником операций I/O.
В некоторых вариантах осуществления гибридного планировщика операций I/O он дополнительно выполнен с возможностью возобновления приема вторым планировщиком операций I/O дополнительных операций I/O от первого планировщика операций I/O.
В некоторых вариантах осуществления гибридного планировщика операций I/O он выполнен с возможностью возобновления приема, если гибридный планировщик операций I/O определяет, что дополнительные операции I/O, принятые вторым планировщиком операций I/O, выполняются с соблюдением соответствующих предельных сроков.
В некоторых вариантах осуществления гибридного планировщика операций I/O первый планировщик операций I/O представляет собой планировщик типа DRR.
В некоторых вариантах осуществления гибридного планировщика операций I/O второй планировщик операций I/O представляет собой планировщик типа EDF.
В некоторых вариантах осуществления гибридного планировщика операций I/O он работает в обычном режиме, если второй планировщик операций I/O принимает дополнительные операции I/O от первого планировщика операций I/O, и в режиме высокой нагрузки, если второй планировщик операций I/O приостанавливает прием дополнительных операций I/O от первого планировщика операций I/O.
В некоторых вариантах осуществления гибридного планировщика операций I/O в обычном режиме работы он обеспечивает «справедливое» распределение производительности накопителя для первого и второго источников операций I/O и выполнение требований первого и второго источников операций I/O относительно режима реального времени. В режиме высокой нагрузки гибридный планировщик операций I/O обеспечивает «справедливое» распределение производительности накопителя для первого и второго источников операций I/O.
В контексте настоящего описания термин «сервер» означает компьютерную программу, выполняемую соответствующими аппаратными средствами и способную принимать запросы (например, от клиентских устройств) через сеть и выполнять эти запросы или инициировать их выполнение. Аппаратные средства могут представлять собой один физический компьютер или одну компьютерную систему и это не существенно для данной технологии. В настоящем контексте выражение «сервер» не означает, что каждая задача (например, принятая команда или запрос) или некоторая определенная задача принимается, выполняется или запускается одним и тем же сервером (т.е. одними и теми же программными и/или аппаратными средствами); это выражение означает, что любое количество программных средств или аппаратных средств может принимать, отправлять, выполнять или запускать выполнение любой задачи или запроса либо результатов любых задач или запросов; все эти программные и аппаратные средства могут представлять собой один сервер или несколько серверов, причем оба эти случая подразумеваются в выражении «по меньшей мере один сервер».
В контексте настоящего описания термин «клиентское устройство» означает любое компьютерное аппаратное средство, способное выполнять программы, подходящие для решения поставленной задачи. Таким образом, некоторые (не имеющие ограничительного характера) примеры клиентских устройств включают в себя персональные компьютеры (настольные, ноутбуки, нетбуки и т.п.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что в данном контексте устройство, функционирующее как клиентское устройство, также может функционировать как сервер для других клиентских устройств. Использование выражения «клиентское устройство» не исключает использования нескольких клиентских устройств для приема, отправки, выполнения или инициирования выполнения любой задачи или запроса либо результатов любых задач или запросов, либо шагов любого описанного здесь способа.
В контексте настоящего описания выражение «информация» включает в себя информацию любого рода или вида, допускающую хранение в базе данных. Таким образом, информация включает в себя аудиовизуальные произведения (изображения, фильмы, звукозаписи, презентации и т.д.), данные (данные о местоположении, числовые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы, списки слов и т.д., но не ограничивается ими.
В контексте настоящего описания значение выражения «компонент» включает в себя программное обеспечение (подходящее для определенных аппаратных средств), необходимое и достаточное для выполнения соответствующей определенной функции (или функций).
В контексте настоящего описания выражение «пригодный для использования в компьютере носитель информации» означает носители любого типа и вида, включая ОЗУ, ПЗУ, диски (CD-ROM, DVD, гибкие диски, жесткие диски и т.д.), USB-накопители, твердотельные накопители, накопители на магнитных лентах и т.д.
В контексте настоящего описания числительные «первый» «второй», «третий» и т.д. используются лишь для указания различия между существительными, к которым они относятся, но не для описания каких-либо определенных взаимосвязей между этими существительными. Например, должно быть понятно, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо определенного порядка, вида, хронологии, иерархии или классификации, в данном случае, серверов, и что их использование (само по себе) не подразумевает обязательного наличия «второго сервера» в любой ситуации. Кроме того, как встречается в настоящем описании в другом контексте, ссылка на «первый» элемент и «второй» элемент не исключает того, что эти два элемента могут быть одним и тем же реальным элементом. Таким образом, например, в некоторых случаях «первый» сервер и «второй» сервер могут представлять собой одно и то же программное и/или аппаратное средство, а в других случаях - различные программные и/или аппаратные средства.
Каждый вариант осуществления данной технологии имеет отношение к по меньшей мере одной из вышеупомянутых целей и/или одному из вышеупомянутых аспектов, но не обязательно ко всем ним. Должно быть понятно, что некоторые аспекты данной технологии, связанные с попыткой достижения вышеупомянутой цели, могут не соответствовать этой цели и/или могут соответствовать другим целям, явным образом здесь не упомянутым.
Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления данной технологии содержатся в дальнейшем описании, в приложенных чертежах и в формуле изобретения.
Краткое описание чертежей
Дальнейшее описание приведено для лучшего понимания данной технологии, а также других аспектов и их признаков, и должно использоваться совместно с приложенными чертежами.
На фиг. 1 представлена схема системы, пригодной для реализации вариантов осуществления данной технологии, не имеющих ограничительного характера.
На фиг. 2 представлено соответствующее некоторым вариантам осуществления данной технологии устройство для хранения данных подсистемы распределенного хранения данных с фиг. 1.
На фиг. 3 изображен гибридный планировщик для планирования операций I/O, предназначенных для выполнения накопителем с фиг. 1.
На фиг. 4 приведена блок-схема способа, выполняемого гибридным планировщиком с фиг. 3 и реализованного согласно вариантам осуществления данной технологии, не имеющим ограничительного характера.
Осуществление изобретения
Дальнейшее подробное описание представляет собой лишь описание примеров, иллюстрирующих данную технологию. Это описание не предназначено для определения объема или границ данной технологии.
Кроме того, если в некоторых случаях примеры модификаций не описаны, это не означает, что модификации невозможны и/или что описание содержит единственный вариант осуществления определенного аспекта данной технологии. Кроме того, следует понимать, что настоящее подробное описание в некоторых случаях касается упрощенных вариантов осуществления данной технологии, и что такие варианты представлены для того, чтобы способствовать лучшему ее пониманию. Различные варианты осуществления данной технологии могут быть значительно сложнее.
На фиг. 1 представлена система 100 распределенной компьютерной обработки информации или сокращенно система 100 распределенной обработки информации. Система 100 распределенной обработки информации позволяет реализовать не имеющие ограничительного характера варианты осуществления данной технологии. Очевидно, что система 100 распределенной обработки информации приведена лишь в качестве иллюстративного варианта осуществления данной технологии. Таким образом, дальнейшее описание системы представляет собой описание примеров, иллюстрирующих данную технологию. Это описание не предназначено для определения объема или границ данной технологии.
В некоторых случаях также приводятся полезные примеры модификаций системы 100 распределенной обработки информации. Они способствуют пониманию, но также не определяют объем или границы данной технологии. Эти модификации не составляют исчерпывающего списка. Специалисту в данной области должно быть понятно, что возможны и другие модификации. Кроме того, если в некоторых случаях примеры модификаций не описаны, это не означает, что модификации невозможны и/или что описание содержит единственный вариант осуществления определенного элемента данной технологии. Специалисту в данной области должно быть понятно, что это не так. Кроме того, следует понимать, что система 100 распределенной обработки информации в некоторых случаях может представлять собой упрощенную реализацию данной технологии, и что такие варианты представлены, чтобы способствовать лучшему ее пониманию. Специалисту в данной области должно быть понятно, что различные варианты осуществления данной технологии могут быть значительно сложнее.
Система 100 распределенной обработки информации содержит источник 102 запросов, сеть 103 связи, подсистему 104 предварительной обработки запросов, подсистему 105 обработки транзакций, подсистему 106 маршрутизации транзакций, подсистему 108 распределенного хранения данных, подсистему 110 базы данных и операционную подсистему 111.
Далее описана реализация указанных выше компонентов системы 100 распределенной обработки информации в соответствии с различными не имеющими ограничительного характера вариантами осуществления данной технологии.
Источник запросов
Источник 102 запросов может представлять собой электронное устройство, связанное с конечным пользователем (например, клиентское устройство), или любую другую подсистему системы 100 распределенной обработки информации, способную обеспечивать пользовательские запросы к системе 100 распределенной обработки информации. Несмотря на то, что на фиг. 1 показан лишь один источник 102 запросов, система 100 распределенной обработки информации может содержать несколько источников 102 запросов. Как показано в данном документе, источник 102 запросов входит в состав системы 100 распределенной обработки информации. Тем не менее, в некоторых вариантах осуществления данной технологии источник 102 запросов может быть внешним по отношению к системе 100 распределенной обработки информации и может подключаться с использованием линии связи (не обозначена).
На практике типичный вариант осуществления системы 100 распределенной обработки информации может включать в себя большое количество источников 102 запросов (сотни, тысячи, миллионы и т.д.).
В некоторых вариантах осуществления данной технологии, когда система 100 распределенной обработки информации используется в среде бизнес-потребитель (В2С, Business-to-Customer), источник 102 запросов может представлять собой клиентское устройство, такое как смартфон, связанное с пользователем системы 100 распределенной обработки информации. Например, система 100 распределенной обработки информации может обеспечивать услуги «облачного» хранения данных для клиентского устройства определенного пользователя.
В некоторых вариантах осуществления данной технологии, когда система 100 распределенной обработки информации используется в среде бизнес-бизнес (В2В, Business-to-Business), источник 102 запросов может представлять собой подсистему, такую как удаленный сервер, обеспечивающую пользовательские запросы к системе 100 распределенной обработки информации. Например, в некоторых вариантах осуществления данной технологии система 100 распределенной обработки информации может обеспечивать услуги отказоустойчивой обработки и/или хранения данных для оператора такой подсистемы.
В целом, независимо от реализации системы 100 распределенной обработки данных в виде системы В2С или В2В (или любого другого варианта системы), источник 102 запросов может представлять собой клиентское устройство или другую подсистему, которые могут быть внутренними или внешними по отношению к системе 100 распределенной обработки информации.
Как указано выше, источник 102 запросов способен выдавать множество запросов 180, каждый из которых далее называется запросом 180. Характер запроса 180 зависит от вида источника 102 запросов. В частности, один из примеров запроса 180 представляет собой запрос, сформированный на языке структурированных запросов (SQL, Structured Query Language). Поэтому предполагается, что в некоторых вариантах осуществления данной технологии запрос 180 может быть сформирован на языке декларативного программирования, т.е. запрос 180 может представлять собой запрос декларативного вида.
В общем случае декларативное программирование относится к построению структуры и элементов компьютерных программ, которые отражают логику вычислений без описания потока управления. Распространенные языки декларативного программирования включают в себя SQL, XQuery и другие языки запросов к базам данных. В целом, запрос декларативного типа определяет действие в выражениях «что требуется выполнить», а не «как это требуется выполнить».
Это означает, что запрос декларативного типа может быть связан с условием выполнения определенного действия. В качестве условия, например, может быть указано, в каком элементе должно выполняться это действие или где следует получать значения для выполнения этого действия.
В качестве не имеющих ограничительного характера примеров можно привести следующие запросы декларативного вида: «Вставить значение 5 в ячейку, связанную с ключом, который равен значению ячейки, связанной с ключом А» и «Для всех ключей, связанных с ячейкой, имеющей значение 5, заменить это значение на значение 10». Тем не менее, должно быть понятно, что представленные выше примеры декларативных языков и примеры запросов декларативного вида приведены исключительно для лучшего понимания, и что другие декларативные языки и другие запросы декларативного вида могут использоваться источником 102 запросов в пределах объема данной технологии.
В некоторых вариантах осуществления данной технологии источник 102 запросов также способен принимать множество ответов 181, каждый из которых далее называется ответом 181. В общем случае в ответ на запрос 180, обработанный или не обработанный системой 100 распределенной обработки информации, система 100 распределенной обработки информации может формировать ответ 181, предназначенный для источника 102 запросов, связанного с соответствующим запросом 180. Характер ответа 181, среди прочего, зависит от вида источника 102 запросов, вида соответствующего запроса 180 и от того, обработала или не обработала система 100 распределенной обработки информации соответствующий запрос 180. В некоторых вариантах осуществления данной технологии система 100 распределенной обработки информации может формировать ответ 181, только если не удалось обработать запрос, или только в случае успешной обработки запроса, или в обоих случаях.
Например, во время обработки запроса 180 система 100 распределенной обработки информации может быть способна запрашивать дополнительные данные от источника 102 запросов для продолжения или завершения обработки запроса 180. В этом случае система 100 распределенной обработки информации может быть способна формировать ответ 181 в виде сообщения с запросом данных, в котором указываются дополнительные данные, запрашиваемые системой 100 распределенной обработки информации для продолжения или завершения обработки запроса 180.
В другом примере, если система 100 распределенной обработки информации успешно обработала соответствующий запрос 180, система 100 распределенной обработки информации может быть способна формировать ответ 181 в виде сообщения об успешном завершении, оповещающего об успешной обработке соответствующего запроса 180.
В другом примере, если системе 100 распределенной обработки информации не удалось успешно обработать соответствующий запрос 180, система 100 распределенной обработки информации может быть способна формировать ответ 181 в виде сообщения о неудачном завершении, оповещающий о том, что соответствующий запрос 180 обработать не удалось. В этом случае источник 102 запроса может быть способен выполнять дополнительные действия, такие как повторное направление запроса 180, выполнение диагностического контроля для определения причины неудачного завершения обработки запроса 180 системой 100 распределенной обработки информации, направление нового запроса, предназначенного для системы 100 распределенной обработки информации, и т.д.
Сеть связи
Источник 102 запросов связан с сетью 103 связи для направления запроса 180 в систему 100 распределенной обработки информации и для приема ответа 181 от системы 100 распределенной обработки информации. В некоторых не имеющих ограничительного характера вариантах осуществления данной технологии в качестве сети 103 связи может использоваться сеть Интернет. В других не имеющих ограничительного характера вариантах осуществления данной технологии сеть 103 связи может быть реализована иначе, например, в виде любой глобальной сети связи, локальной сети связи, частной сети связи и т.п. Реализация линии связи (отдельно не обозначена) между источником 102 запросов и сетью 103 связи зависит, среди прочего, от реализации источника 102 запросов.
Лишь в качестве примера, не имеющего ограничительного характера, в тех вариантах осуществления данной технологии, где источник 102 запросов реализован как беспроводное устройство связи (такое как смартфон), линия связи может быть реализована как беспроводная линия связи (такая как канал сети связи 3G, канал сети связи 4G, Wireless Fidelity или сокращенно WiFi®, Bluetooth® и т.п.). В тех примерах, где источник 102 запросов реализован как удаленный сервер, линия связи может быть беспроводной (такой как Wireless Fidelity или сокращенно WiFi®, Bluetooth® и т.д.) или проводной (такой как соединение по сети Ethernet).
Следует отметить, что сеть 103 связи, среди прочего, способна передавать пакет данных запроса, содержащий запрос 180, из источника 102 запросов в подсистему 104 предварительной обработки запросов системы 100 распределенной обработки информации. Например, этот пакет данных запроса может содержать выполняемые компьютером команды, составленные на языке программирования декларативного типа, на котором представлен запрос 180. Сеть 103 связи, среди прочего, также способна передавать пакет данных ответа, содержащий ответ 181, из системы 100 распределенной обработки информации в источник 102 запросов. Например, этот пакет данных ответа может содержать выполняемые компьютером команды, представляющие ответ 181.
Тем не менее, предполагается, что в некоторых вариантах осуществления данной технологии, где источник 102 запросов представляет собой, например, подсистему системы 100 распределенной обработки информации, сеть 103 связи может быть реализована способом, отличным от описанного выше, или в некоторых случаях может вовсе отсутствовать в пределах объема данной технологии.
Операционная подсистема (улей)
Как указано выше, система 100 распределенной обработки информации содержит операционную подсистему 111 или, сокращенно, улей. В общем случае улей 111 представляет собой программное приложение (например, конечный автомат), способное управлять по меньшей мере некоторыми подсистемами системы 100 распределенной обработки информации, такими как подсистема 104 предварительной обработки запросов и подсистема 105 обработки транзакций. Можно сказать, что улей 111 может быть реализован как конечный автомат (SM, State Machine), способный формировать, удалять и/или выравнивать нагрузку других автоматов SM, образующих по меньшей мере некоторые подсистемы системы 100 распределенной обработки информации.
Должно быть понятно, что автомат SM представляет собой вычислительную модель, реализованную в виде компьютерной системы и определяемую списком состояний. Автомат SM может изменять свое текущее состояние в ответ на некоторые внешние входные данные и может в конкретный момент времени находиться лишь в одном состоянии. Переход автомата SM из одного состояния в другое состояние называется изменением состояния.
Следует отметить, что в контексте данной технологии автоматы SM, образующие по меньшей мере некоторые подсистемы системы 100 распределенной обработки информации, являются детерминированными по свое природе, т.е. каждое изменение состояния каждого автомата SM однозначно определено (а) текущим состоянием соответствующего автомата SM и (б) внешними входными данными соответствующего автомата SM. Иными словами, для текущего состояния автомата SM и для внешних входных данных существует единственное следующее состояние этого автомата SM. Этот детерминированный характер изменения состояния не зависит от того, у какого именно автомата SM системы 100 распределенной обработки информации происходит изменение состояния.
Поэтому, как описано ниже, в некоторых вариантах осуществления данной технологии система 100 распределенной обработки информации должна принимать внешние входные данные определенного вида, соответствующие свойству детерминированности автоматов SM, от по меньшей мере некоторых подсистем системы 100 распределенной обработки информации.
Подсистема распределенного хранения данных
Как упомянуто ранее, система 100 распределенной обработки информации также содержит подсистему 108 распределенного хранения данных. В общем случае подсистема 108 распределенного хранения данных способна, среди прочего, хранить системные данные, указывающие состояния, изменения состояний, внешние входные и/или выходные данные по меньшей мере некоторых автоматов SM системы 100 распределенной обработки информации. Например, системные данные, связанные с автоматом SM системы 100 распределенной обработки информации, могут храниться в форме журнала, содержащего хронологический список состояний, изменений состояний, внешних входных и/или выходных данных данного автомата SM.
Подсистема 108 распределенного хранения данных также способна хранить клиентские данные, т.е. данные, связанные с внешними входными данными, обрабатываемыми системой 100 распределенной обработки информации. Например, в некоторых вариантах осуществления данной технологии клиентские данные могут храниться как часть системных данных в распределенной подсистеме 108 хранения данных в пределах объема данной технологии.
Для хранения системных и/или клиентских данных подсистема 108 распределенного хранения данных содержит множество устройств 112 хранения данных, каждое из которых далее называется устройством 112 хранения данных. Согласно различным вариантам осуществления данной технологии, некоторые или все устройства из множества устройств 112 хранения данных могут располагаться в одном или в различных местах. Например, некоторые или все устройства из множества устройств 112 хранения данных могут располагаться в одной серверной стойке, и/или в одном центре обработки данных, и/или могут быть распределены среди множества серверных стоек в одном или нескольких центрах обработки данных.
В некоторых вариантах осуществления данной технологии системные и/или клиентские данные, хранящиеся в одном устройстве 112 хранения данных, могут дублироваться и храниться в нескольких других устройствах 112 хранения данных. В некоторых вариантах осуществления такое дублирование и хранение системных и/или клиентских данных может обеспечивать отказоустойчивое хранение системных и/или клиентских данных в системе 100 распределенной обработки информации. Отказоустойчивое хранение системных и/или клиентских данных способно предотвратить утрату данных, когда устройство 112 хранения данных подсистемы 108 распределенного хранения данных становится временно или постоянно недоступным для хранения и извлечения данных. Такое отказоустойчивое хранение системных и/или клиентских данных также может предотвращать утрату данных, когда автомат SM системы 100 распределенной обработки информации становится временно или постоянно недоступным.
Предполагается, что устройство 112 хранения данных может быть реализовано в виде компьютерного сервера. Компьютерный сервер содержит по меньшей мере одно физическое запоминающее устройство (т.е. накопитель 126) и одно или несколько программных приложений, способных выполнять машиночитаемые команды. Накопитель 126 может представлять собой твердотельный накопитель (SSD, Solid State Drive), накопитель на жестких дисках (HDD, Hard Disk Drive) и т.п.Поэтому можно сказать, что по меньшей мере одно физическое запоминающее устройство может быть реализовано как устройство с подвижным или неподвижным диском.
Например, как показано на фиг. 1, данное устройство 112 хранения данных способно содержать, помимо прочего, следующие программные приложения: приложение 114 виртуального накопителя (Vdrive), приложение 116 физического накопителя (Pdrive), по меньшей мере одно приложение 118 моделирования накопителя, по меньшей мере одно приложение 120 планирования работы, приложение 122 обеспечения работы в реальном времени и по меньшей мере один прокси-сервер 124 автомата SM. Функции указанных выше программных приложений и накопителя 126, обеспечивающие хранение по меньшей мере некоторых системных и/или клиентских данных, более подробно описаны ниже со ссылками на фиг. 2.
Подсистема предварительной обработки запросов
Как указано выше, подсистема 105 обработки транзакций может содержать несколько детерминированных автоматов SM, которые должны получать входные данные определенного вида и которые соответствуют свойству детерминированности автоматов SM. Также следует еще раз отметить, что источник 102 запросов выдает запрос 180 в виде запроса декларативного типа.
Соответственно, подсистема 104 предварительной обработки запросов способна принимать запрос 180 декларативного типа от источника 102 запросов и предварительно обрабатывать или преобразовывать запрос 180 во множество детерминированных транзакций 182, которые соответствуют свойству детерминированности нескольких автоматов SM, образующих подсистему 105 обработки транзакций.
В целом, подсистема 104 предварительной обработки запросов предназначена для предварительной обработки или преобразования запроса 180 во множество детерминированных транзакций 182, которые могут быть обработаны детерминированными автоматами SM из подсистемы 105 обработки транзакций.
Следует отметить, что подсистема 104 предварительной обработки запросов также способна формировать ответ 181 для передачи в источник 102 запросов. Разумеется, что подсистема 104 предварительной обработки запросов связана с подсистемой 105 обработки транзакций не только для передачи множества детерминированных транзакций 182, но и для приема информации об обработке множества детерминированных транзакций 182. В некоторых не имеющих ограничительного характера вариантах осуществления данной технологии множество детерминированных транзакций 182 может содержать одну или несколько транзакций вида «считывание» или «запись».
В некоторых вариантах осуществления данной технологии подсистема 104 предварительной обработки запросов реализована в виде по меньшей мере одного автомата SM в пределах объема данной технологии.
В некоторых вариантах осуществления данной технологии предполагается, что представленная на фиг. 1 система 100 распределенной обработки информации способна поддерживать транзакции ACID (Atomicity, Consistency, Isolation and Durability). В целом, ACID - это аббревиатура для набора свойств транзакции (атомарность, согласованность, изолированность, долговечность), которые обеспечивают надежность базы данных при выполнении транзакций. Поэтому в некоторых вариантах осуществления данной технологии предполагается, что транзакции, предназначенные для подсистемы 105 обработки транзакций, могут быть атомарными, согласованными, изолированными и долговечными в пределах объема данной технологии.
Подсистема обработки транзакций
В общем случае подсистема 105 обработки транзакций способна принимать и обрабатывать множество детерминированных транзакций 182 и, таким образом, обрабатывать запрос 180 от источника 102 запросов. Подсистема 105 обработки транзакций содержит (а) подсистему 106 маршрутизации транзакций и (б) подсистему 110 базы данных, которые описаны далее.
Подсистема 110 базы данных содержит множество мест назначения транзакции (TDL, Transaction Destination Location) и разделена на множество сегментов 109, каждый из которых далее называется сегментом 109. В не имеющем ограничительного характера примере подсистема 110 базы данных может содержать базу данных, включающую в себя одну или несколько таблиц базы данных. Таблица базы данных может состоять из по меньшей мере двух столбцов, таких как первый столбец, содержащий ключи, и второй столбец, содержащий записи, в которых хранятся данные, связанные с соответствующими ключами. В этом не имеющем ограничительного характера примере место TDL может соответствовать строке таблицы базы данных, т.е. место TDL может соответствовать ключу и соответствующей записи в таблице базы данных.
В этом не имеющем ограничительного характера примере каждый сегмент 109 подсистемы 110 базы данных содержит часть таблицы базы данных. Следовательно, множество мест TDL, сопоставленных с соответствующими строками таблицы базы данных, разделяется между множеством сегментов 109 так, чтобы каждый сегмент 109 содержал соответствующее подмножество (например, диапазон) множества мест TDL.
В некоторых вариантах осуществления данной технологии предполагается, что каждый сегмент из множества сегментов 109 может быть реализован с использованием соответствующего детерминированного автомата SM. Это означает, что после приема транзакции, предназначенной для места TDL сегмента 109, реализованного с использованием автомата SM, этот автомат SM может обработать транзакцию и перейти из текущего состояния в новое состояние в соответствии с транзакцией, как описано выше.
Подсистема 106 маршрутизации транзакций способна маршрутизировать транзакции из множества детерминированных транзакций 182 в соответствующие места TDL и, таким образом, направлять их в соответствующие сегменты 109 подсистемы 110 базы данных. С этой целью подсистема 106 маршрутизации транзакций может включать в себя множество портов, которые обычно способны (а) принимать множество детерминированных транзакций 182 из подсистемы 104 предварительной обработки запросов, (б) разделять множество детерминированных транзакций 182 на подмножества детерминированных транзакций, предназначенных для соответствующих сегментов 109, и (в) формировать для каждого сегмента централизованный порядок выполнения детерминированных транзакций соответствующими сегментами 109.
Следует отметить, что каждый порт из множества портов, образующих подсистему 106 маршрутизации транзакций, может быть реализован как соответствующий автомат SM. В некоторых вариантах осуществления изобретения предполагается, что множество портов может включать в себя порты двух различных видов для маршрутизации транзакций из множества детерминированных транзакций 182 в соответствующие сегменты 109. В других вариантах осуществления изобретения по меньшей мере некоторые функции множества портов могут выполняться автоматами SM, соответствующими множеству сегментов 109.
Кроме того, как показано на фиг. 1, по меньшей мере некоторые из автоматов SM подсистемы 105 обработки транзакций могут быть связаны с подсистемой 108 распределенного хранения данных с использованием соответствующей линии 160 связи. В целом, линия 160 связи предназначена для передачи системных данных, таких как данные о состояниях, изменениях состояний, внешних входных и/или выходных данных соответствующих автоматов SM и т.д., в подсистему 108 распределенного хранения данных для хранения. Далее со ссылками на фиг. 2 более подробно описана реализация линий 160 связи и порядок конфигурирования подсистемы 108 распределенного хранения данных для хранения системных данных.
На фиг. 2 представлено устройство 112 хранения данных, входящее в состав подсистемы 108 распределенного хранения данных. Как описано выше, устройство 112 хранения данных содержит по меньшей мере один прокси-сервер 124 автомата SM. Прокси-сервер автомата SM предназначен для управления связью между автоматом SM и подсистемой 108 распределенного хранения данных. В некоторых вариантах осуществления данной технологии предполагается, что по меньшей мере один прокси-сервер 124 автомата SM устройства 112 хранения данных может представлять собой прикладной программный интерфейс (API, Application Programing Interface), управляющий связью между автоматом SM и устройством 112 хранения данных. В других вариантах осуществления данной технологии по меньшей мере один прокси-сервер 124 автомата SM сам может быть реализован как автомат SM. В других вариантах осуществления данной технологии по меньшей мере один прокси-сервер 124 автомата SM может быть реализован как программный модуль (не как автомат SM) для выполнения описанных выше функций.
В некоторых вариантах осуществления данной технологии прокси-сервер 124 автомата SM может быть способен (а) принимать системные данные обновления журнала этого автомата SM с использованием соответствующей линии 160 связи, (б) обрабатывать системные данные и (в) передавать обработанные системные данные соответствующему приложению 114 Vdrive для дальнейшей обработки.
По меньшей мере один прокси-сервер 124 автомата SM может быть способен обрабатывать системные данные, например, для обеспечения целостности и отказоустойчивости системных данных. В некоторых вариантах осуществления данной технологии предполагается, что по меньшей мере один прокси-сервер 124 автомата SM может быть способен выполнять стойкое к потере кодирование (erasure coding) системных данных. В целом, стойкое к потере кодирование представляет собой способ кодирования, предусматривающий получение данных с избыточностью и разделение их на несколько фрагментов. Такие избыточность и фрагментация способствуют восстановлению данных в случае потери одного или нескольких фрагментов вследствие отказов в системе.
Предполагается, что обработанные таким образом по меньшей мере одним прокси-сервером 124 автомата SM системные данные принимаются по меньшей мере одним соответствующим приложением 114 Vdrive устройства 112 хранения данных. Приложение 114 Vdrive предназначено для обработки системных данных, полученных от по меньшей мере одного прокси-сервера 124 автомата SM, и для ответного формирования соответствующих операций I/O, которые должны выполняться накопителем 126 для сохранения системных данных в накопителе 126 устройства 112 хранения данных. После формирования по меньшей мере одним приложением 114 Vdrive операций I/O, соответствующих принятым системным данным, по меньшей мере одно приложение 114 Vdrive передает эти операции I/O приложению 116 Pdrive.
Иными словами, предполагается, что устройство 112 хранения данных может содержать несколько прокси-серверов 124 автомата SM для обработки и передачи системных данных нескольким соответствующим приложениям 114 Vdrive, которые обрабатывают системные данные, формируют соответствующие операции I/O и передают соответствующие операции I/O в единое приложение 116 Pdrive устройства 112 хранения данных.
В целом, приложение 116 Pdrive предназначено для управления работой накопителя 126. Например, приложение 116 Pdrive может быть способным выполнять кодирование операций I/O, которые должны выполняться в накопителе 126, и различные другие функции, способствующие надежному хранению данных в накопителе 126.
Приложение 116 Pdrive связано с приложением 120 планирования работы для передачи операции I/O. Приложение 120 планирования работы способно планировать передачу операций I/O в накопитель 126. Предполагается, что приложение 120 планирования работы или сокращенно планировщик может использовать различные схемы планирования для определения порядка передачи операций I/O в накопитель 126 для их дальнейшего выполнения.
Предполагается, что в некоторых вариантах осуществления данной технологии планировщик 120 может быть реализован как часть приложения 116 Pdrive. Иными словами, приложением 116 Pdrive могут выполняться различные схемы планирования в пределах объема данной технологии.
Предполагается, что планировщик 120 может обеспечивать гибридную схему планирования. Например, планировщик 120 может обеспечивать схему «справедливого» планирования, которая при определенных условиях также представляет собой схему планирования «для реального времени».
Следует отметить, что для данного устройства 112 хранения данных может потребоваться хранение операций I/O, соответствующих системным данным, связанным с несколькими автоматами SM. Кроме того, каждый из нескольких автоматов SM связан с заранее заданной долей производительности накопителя, которую накопитель 126 может выделить для выполнения операций I/O, связанных с соответствующим автоматом SM. В целом, схемы «справедливого» планирования способны упорядочивать операции I/O, передаваемые в накопитель 126, так, чтобы производительность накопителя 126, предназначенная для выполнения упорядоченных операций I/O, использовалась согласно заранее заданным долям, выделенным нескольким автоматам SM.
Следует еще раз отметить, что система 100 распределенной обработки информации может использоваться для предоставления услуг «облачного» хранения данных. Во многих таких вариантах осуществления может быть желательным обрабатывать и сохранять системные данные в реальном времени, т.е. в течение очень короткого интервала времени. Чтобы обеспечить выполнение требования относительно режима реального времени к системе 100 распределенной обработки информации, операции I/O могут быть связаны с соответствующими предельными сроками, которые указывают момент времени, по прошествии которого соответствующие операции I/O уже не попадают в пределы допустимого времени, соответствующие требованиям относительно режима реального времени к системе 100 распределенной обработки информации. В целом, схемы планирования реального времени способны упорядочивать операции I/O, передаваемые в накопитель 126, так, чтобы операции I/O выполнялись накопителем 126 с соблюдением соответствующих предельных сроков.
В целом, планировщик 120 способен обеспечивать гибридную схему планирования, позволяющую упорядочивать операции I/O, передаваемые для выполнения в накопитель 126, так, чтобы учитывались и заранее заданные доли производительности накопителя для каждого соответствующего SM, и соответствующие предельные сроки операций I/O.
Как было упомянуто ранее, накопитель 126 представляет собой носитель информации для выполнения операций I/O и, соответственно, для хранения системных данных, переданных в устройство 112 хранения данных. Например, накопитель 126 может быть реализован в виде накопителя HDD или накопителя SSD. Накопитель 126 включает в себя внутреннее логическое устройство 250 накопителя для выбора операции I/O среди всех переданных в накопитель операций I/O для выполнения в текущий момент времени.
Следует отметить, что операции I/O могут направляться для выполнения в накопитель 126 по одной, но это может приводить к увеличению задержек между накопителем 126 и другими компонентами устройства 112 хранения данных. Поэтому операции I/O могут предаваться в накопитель 126 пакетами или группами. После приема пакета или группы операций I/O накопителем 126 внутреннее логическое устройство 250 накопителя способно выбрать для выполнения наиболее эффективную операцию I/O среди имеющихся в пакете операций I/O.
Например, наиболее эффективная операция I/O может выбираться на основе различных критериев, таких как место выполнения предыдущей операции I/O в накопителе 126 и место выполнения операций I/O, имеющихся в накопителе 126. Иными словами, внутреннее логическое устройство 250 накопителя способно выбирать для текущего выполнения наиболее эффективную операцию (с точки зрения накопителя 126) среди всех операций I/O, имеющихся в накопителе 126 в текущий момент времени.
Поэтому в некоторых случаях, несмотря на то, что планировщик 120 упорядочил операции I/O для передачи определенным образом с учетом требований относительно режима реального времени к системе 100 распределенной обработки информации, внутреннее логическое устройство 250 накопителя 126 может выдавать в накопитель 126 команды для формирования порядка выполнения операций I/O, отличного от порядка передачи, выбранного планировщиком 120. Поэтому порядок выполнения иногда может не соответствовать требованиям относительно режима реального времени системы 100 распределенной обработки информации (в частности, когда от планировщика 120 принимаются дополнительные операции I/O, которые могут быть более «эффективными» с точки зрения накопителя 126 и могут выбираться среди еще не выполненных операций I/O).
Чтобы обеспечить работу устройства 112 хранения данных в реальном времени и предотвратить описанную выше проблему, также известную как «торможение работы» (operation stagnation), устройство 112 хранения данных может содержать приложение 122 обеспечения работы в реальном времени. В целом, приложение 122 обеспечения работы в реальном времени позволяет управлять тем, какие операции I/O из числа уже упорядоченных планировщиком 120 передаются в текущий момент времени для выполнения в накопитель 126.
Предполагается, что в некоторых вариантах осуществления данной технологии приложение 122 обеспечения работы в реальном времени может быть реализовано как часть приложения 116 Pdrive. Иными словами, вышеупомянутые функции приложения 122 обеспечения работы в реальном времени могут выполняться приложением 116 Pdrive в пределах объема данной технологии.
Устройство 112 хранения данных также может содержать по меньшей мере одно соответствующее приложение 118 моделирования накопителя для каждого накопителя 126 в устройстве 112 хранения данных. В целом, приложение 118 моделирования накопителя способно эмулировать идеальную работу накопителя 126 для контроля накопителя 126 в диагностических целях. Тем не менее, в других вариантах осуществления изобретения планировщик 120 также может использовать приложение 118 моделирования накопителя, чтобы упорядочивать операции I/O для их передачи в накопитель 126.
Предполагается, что в некоторых вариантах осуществления данной технологии по меньшей мере одно соответствующее приложение 118 моделирования накопителя может быть реализовано как часть приложения 116 Pdrive. Иными словами, вышеупомянутые функции по меньшей мере одного соответствующего приложения 118 моделирования накопителя могут выполняться приложением 116 Pdrive в пределах объема данной технологии.
Гибридный планировщик операций I/O
Как указано выше, приложение 116 Pdrive может быть связано с планировщиком 120. В других вариантах осуществления предполагается, что планировщик 120 может быть реализован как часть приложения 116 Pdrive, т.е. различные схемы планирования могут выполняться приложением 116 Pdrive в пределах объема данной технологии.
Кроме того, как было упомянуто ранее, планировщик 120 способен обеспечивать гибридную схему планирования. Иными словами, планировщик 120 может обеспечивать схему планирования, позволяющую упорядочивать операции I/O, передаваемые для выполнения в накопитель 126 (или передаваемые в приложение 122 обеспечения работы в реальном времени, которое затем передает операции I/O в накопитель 126), так, чтобы учитывались и заранее заданные доли производительности накопителя для каждого соответствующего SM, и соответствующие предельные сроки операций I/O.
На фиг. 3 представлен гибридный планировщик 300 для операций I/O. В одном не имеющем ограничительного характера примере планировщик 120, использующий гибридную схему планирования, может быть реализован как гибридный планировщик 300. Разумеется, это означает, что гибридный планировщик 300 может быть связан приложением 116 Pdrive и/или может быть реализован как часть приложения 116 Pdrive.
Гибридный планировщик 300 содержит первый планировщик 310 и второй планировщик 320. В общем случае первый планировщик 310 способен обеспечивать схему «справедливого» планирования, а второй планировщик 320 способен обеспечивать схему планирования «для реального времени». С этой целью первый планировщик 310 может быть способен реализовывать алгоритм «справедливого» планирования, а второй планировщик 320 может быть способен реализовывать алгоритм планирования «для реального времени».
В общем случае тот или иной алгоритм планирования может использоваться планировщиком, чтобы упорядочивать принятые им операции I/O на основе некоторых заранее заданных критериев и, следовательно, обеспечивать схему планирования для операций I/O на основе некоторых заранее заданных критериев. Например, алгоритм «справедливого» планирования может использоваться первым планировщиком 310, чтобы упорядочивать операции I/O (принятые первым планировщиком 310) с учетом, среди прочего, производительности накопителя 126. Например, алгоритм планирования «для реального времени» может использоваться вторым планировщиком 320, чтобы упорядочивать операции I/O (принятые вторым планировщиком 320) с учетом, среди прочего, предельных сроков выполнения соответствующих операций I/O.
Далее описана реализация первого планировщика 310 для обеспечения схемы «справедливого» планирования для операций I/O, принятых первым планировщиком 310, и реализация второго планировщика 320 для обеспечения схемы планирования «для реального времени» для операций I/O, принятых вторым планировщиком 320.
Следует отметить, что операции I/O могут передаваться в гибридный планировщик 300, например, из нескольких приложений 114 Vdrive. Поэтому можно сказать, что гибридный планировщик 300 способен принимать операции I/O от нескольких источников операций I/O, которые могут быть реализованы в виде соответствующих приложений 114 Vdrive. Например, первое приложение 114 Vdrive может быть способно формировать операции I/O на основе системных данных, сформированных первым автоматом SM. В другом примере второе приложение 114 Vdrive может быть способно формировать операции I/O на основе системных данных, сформированных вторым автоматом SM. Иными словами, гибридный планировщик 300 может быть способен принимать операции I/O, сформированные несколькими источниками I/O (например, первым приложением 114 Vdrive и вторым приложением 114 Vdrive) на основе системных данных, сформированных соответствующими автоматами SM.
В представленном на фиг. 3 не имеющем ограничительного характера примере первый планировщик 310 может быть способен принимать первый набор 302 операций I/O и второй набор 304 операций I/O. Первый планировщик 310 способен принимать операции I/O из первого набора 302 операций I/O по первой линии 312 связи, которая соответствует операциям I/O, сформированным первым источником операций I/O. В этом примере первая линия 312 связи может связывать первое приложение 114 Vdrive с приложением 116 Pdrive для передачи первого набора 302 операций I/O в приложение 116 Pdrive, реализующее гибридный планировщик 300.
Первый планировщик 310 также может быть способен принимать операции I/O из второго набора 304 операций I/O по второй линии 314 связи, которая соответствует операциям I/O, сформированным вторым источником операций I/O. В этом примере вторая линия 314 связи может связывать второе приложение 114 Vdrive с приложением 116 Pdrive для передачи второго набора 304 операций I/O в приложение 116 Pdrive, реализующее гибридный планировщик 300.
Следует отметить, что первый источник операций I/O связан с первой заранее заданной долей производительности накопителя, которую накопитель 126 может выделить для выполнения операций I/O из первого набора 302 операций I/O. Аналогично, второй источник операций I/O связан со второй заранее заданной долей производительности накопителя, которую накопитель 126 может выделить для выполнения операций I/O из второго набора 304 операций I/O.
Предполагается, что первая и вторая заранее заданные доли могут быть определены оператором системы 100 распределенной обработки информации. Также следует отметить, что в пределах объема данной технологии в первый планировщик 310 могут направляться операции I/O из более чем двух источников операций I/O подобно тому, как первый набор 302 операций I/O и второй набор 304 операций I/O направляются в первый планировщик 310.
Первый планировщик 310 способен реализовать схему «справедливого» планирования, которая позволяет упорядочивать операции I/O из первого набора 302 операций I/O и из второго набора 304 операций I/O таким образом, чтобы производительность накопителя 126 для выполнения упорядоченных операций I/O использовалась согласно первой и второй заранее заданным долям. Иными словами, схема «справедливого» планирования упорядочивает операции I/O из первого набора 302 операций I/O и из второго набора 304 операций I/O таким образом, чтобы производительность накопителя 126 использовалось «справедливо», т.е. согласно соответствующим первой и второй заранее заданными долям производительности накопителя, по меньшей мере в некоторых вариантах осуществления данной технологии.
Можно сказать, что первый планировщик 310, как упомянуто ранее, использует алгоритм «справедливого» планирования для формирования «справедливо» спланированного порядка операций I/O на основе первой и второй заранее заданных долей производительности накопителя 126.
На реализуемый первым планировщиком 310 алгоритм «справедливого» планирования не накладывается каких-либо особых ограничений. Тем не менее, в одном не имеющем ограничительного характера примере первый планировщик 310 может быть реализован с использованием алгоритма планирования DRR, т.е. первый планировщик 310 может быть реализован как планировщик типа DRR.
Независимо от реализуемого первым планировщиком 310 конкретного вида алгоритма «справедливого» планирования, первый планировщик 310 способен определять порядок, в котором операции I/O из первого набора 302 операций I/O и из второго набора 304 операций I/O должны передаваться, чтобы производительность накопителя 126 использовалась в соответствии с (а) первой заранее заданной долей производительности, выделенной первому источнику I/O, и (б) второй заранее заданной долей производительности, выделенной второму источнику I/O.
Первый планировщик 310 способен передавать операции I/O в «справедливо» спланированном порядке, как описано выше, во второй планировщик 320 по линии 316 связи. Поэтому можно сказать, что второй планировщик 320 способен принимать операции I/O от первого планировщика 310. Также можно сказать, что операции I/O принимаются вторым планировщиком 320 по линии 316 связи в «справедливо» спланированном порядке, определенном первым планировщиком 310.
Следует отметить, что операции I/O могут связываться с соответствующими предельными сроками, которые указывают момент времени, после которого соответствующие операции I/O уже не попадают в пределы допустимого времени, соответствующие требованиям относительно режима реального времени к системе 100 распределенной обработки информации.
Для выполнения требований относительно режима реального времени к системе 100 распределенной обработки информации, второй планировщик 320 способен обеспечивать схему планирования «для реального времени», которая позволяет выполнять операции I/O до истечения соответствующих предельных сроков. Иными словами, второй планировщик 320 способен упорядочивать (или в данном случае переупорядочивать) операции I/O для их передачи в накопитель 126 так, чтобы операции I/O могли выполняться накопителем 126 до истечения соответствующих предельных сроков.
Можно сказать, что, как упомянуто выше, второй планировщик 320 использует алгоритм планирования «для реального времени» для формирования спланированного «для реального времени» порядка операций I/O на основе соответствующих предельных сроков выполнения операций I/O.
На реализуемый вторым планировщиком 320 алгоритм планирования «для реального времени» не накладывается каких-либо особых ограничений. Тем не менее, в одном не имеющем ограничительного характера примере второй планировщик 320 может быть реализован с использованием алгоритма планирования EDF, т.е. второй планировщик 320 может быть реализован как планировщик типа EDF.
Независимо от реализуемого вторым планировщиком 320 конкретного вида алгоритма планирования «для реального времени», второй планировщик 320 способен определять спланированный «для реального времени» порядок принятых операций I/O, передаваемых далее в накопитель 126 для их выполнения до истечения соответствующих предельных сроков.
Второй планировщик 320 способен передавать операции I/O в спланированном «для реального времени» порядке, как описано выше, в накопитель 126 (или в приложение 122 обеспечения работы в реальном времени, которое затем передает операции I/O в накопитель 126) по линии 318 связи.
Следует отметить, что гибридный планировщик 300 передает единый поток операций I/O. Иными словами, предполагается, что гибридный планировщик 300 не способен «демультиплексировать» принятые операции I/O в несколько потоков операций I/O. Поэтому можно сказать, что гибридный планировщик 300 представляет собой гибридный планировщик без демультиплексирования, обеспечивающий единый поток операций I/O (упорядоченных вторым планировщиком 320).
В некоторых вариантах осуществления данной технологии предполагается, что гибридный планировщик 300 способен селективно работать в обычном режиме или в режиме высокой нагрузки. Далее описаны реализация гибридного планировщика 300 для работы в обычном режиме, реализация гибридного планировщика 300 для работы в режиме высокой нагрузки и условия селективного переключения гибридного планировщика 300 из обычного режима в режим высокой нагрузки.
Обычный режим работы
В обычном режиме работы гибридный планировщик 300 способен принимать операции I/O по нескольким линиям связи, таким как первая линия 312 связи и вторая линия 314 связи, от нескольких приложений 114 Vdrive (например, от источников операций I/O).
Каждая принятая гибридным планировщиком 300 операция I/O может быть связана с соответствующим предельным сроком выполнения и заранее заданной долей производительности накопителя, выделенной соответствующему источнику I/O.
Принятые первым накопителем 300 операции I/O, такие как операции I/O из первого набора 302 операций I/O и из второго набора 304 операций I/O, передаются в первый планировщик 310. Первый планировщик 310 использует алгоритм «справедливого» планирования, чтобы упорядочивать принятые операции I/O на основе заранее заданных долей производительности накопителя, выделенных соответствующим источникам I/O, как описано выше. В результате в обычном режиме работы первый планировщик 310 передает принятые операции I/O в «справедливо» спланированном порядке во второй планировщик 320 по линии 316 связи.
В обычном режиме работы второй планировщик 320 принимает операции I/O в «справедливо» спланированном порядке. Второй планировщик 320 использует алгоритм планирования «для реального времени», чтобы упорядочивать принятые операции I/O на основе соответствующих предельных сроков, как описано выше. В результате второй планировщик 320 передает операции I/O, спланированные «для реального времени», по линии 318 связи.
Можно сказать, что работающий в обычном режиме гибридный планировщик 300 выполняет следующие действия: (а) прием операций I/O из нескольких источников операций I/O, (б) их «справедливое» упорядочивание с использованием первого планировщика 310, (в) передача их в «справедливом» порядке во второй планировщик 320, (г) упорядочивание их для режима «реального времени» с использованием второго планировщика 320, (д) передача их по линии 318 связи в накопитель 126 для выполнения (или в приложение 122 обеспечения работы в реальном времени, которое затем передает их в накопитель 126 для выполнения).
Предполагается, что в обычном режиме работы гибридный планировщик 300 способен обеспечить такое выполнение операций I/O, чтобы (а) производительность накопителя 126 использовалась в соответствии с заранее заданными долями производительности, выделенными соответствующим источникам I/O, и (б) эти операции выполнялись до истечения соответствующих предельных сроков. Иными словами, работающий в обычном режиме гибридный планировщик 300 способен обеспечить, чтобы связанные с несколькими источниками I/O операции I/O выполнялись так, чтобы производительность накопителя 126 «справедливо» использовалась для выполнения операций I/O, связанных с несколькими источниками I/O, и одновременно выполнялись требования относительно режима реального времени к системе 100 распределенной обработки информации.
Условия для селективного переключения режимов работы
В определенный момент времени гибридный планировщик 300 может принимать для планирования большое количество операций I/O для их дальнейшего выполнения накопителем 126. Таким образом, в некоторых случаях, даже если накопитель 126 выполняет операции I/O, накопитель 126 может не соответствовать высоким требованиям к обработке из-за большого количества операций I/O, которые необходимо выполнить.
Следует еще раз отметить, что в обычном режиме работы первый планировщик 310 принимает операции I/O и отправляет их в «справедливо» спланированном порядке во второй планировщик 320. Таким образом, чем больше операций I/O принимается гибридным планировщиком 300, тем больше операций I/O передается во второй планировщик 320. Поэтому второй планировщик 320 должен быть способен применять алгоритм планирования «для реального времени» в отношении большего количества операций I/O с целью определения спланированного «для реального времени» порядка операций I/O. Иными словами, алгоритм планирования «для реального времени» требуется, чтобы до известной степени учитывать большее количество операций I/O и их соответствующие предельные сроки выполнения с целью определения порядка операций I/O «для реального времени».
Предполагается, что во время пиков высокой нагрузки (когда в гибридный планировщик 300 направляется довольно большое количество операций I/O) гибридный планировщик 300 способен селективно переключать режимы работы. Это означает, что во время пиков высокой нагрузки гибридный планировщик 300 способен селективно переключаться из обычного режима в режим высокой нагрузки.
Предполагается, что селективное переключение между режимами работы может выполняться гибридным планировщиком 300 за счет контроля ситуации, в которой по меньшей мере одна операция I/O выполняется без соблюдения соответствующего предельного срока. Например, второй планировщик 320 может быть способен контролировать выполнение операций I/O, сформированных первым и вторым источниками I/O, согласно соответствующим срокам.
Этот осуществляемый гибридным планировщиком 300 контроль может включать в себя априорный анализ выполнения операций I/O и/или апостериорный анализ выполнения операций I/O. Далее описаны априорный и апостериорный анализ, которые могут выполняться в процессе контроля, осуществляемого гибридным планировщиком 300 с целью селективного переключения режимов работы.
В процессе контроля с использованием априорного анализа второй планировщик 320 может контролировать возможность выполнения принятых операций I/O до истечения их соответствующих предельных сроков. С одной стороны, если второй планировщик 320 может определить спланированный «для реального времени» порядок принятых операций I/O, в котором возможно выполнение операций I/O до истечения их соответствующих предельных сроков, второй планировщик 320 может селективно определить, что гибридный планировщик 300 должен работать в обычном режиме. С другой стороны, если второй планировщик 320 не может определить порядок принятых операций I/O для «реального времени», в котором возможно выполнение операций I/O до истечения их соответствующих предельных сроков, второй планировщик 320 может селективно определить, что гибридный планировщик 300 должен работать в режиме высокой нагрузки.
Следовательно, можно сказать, что второй планировщик 320 способен селективно определять, что гибридный планировщик 300 должен работать в режиме высокой нагрузки, если определена невозможность выполнения накопителем 126 до истечения соответствующего предельного срока по меньшей мере одной принятой операции I/O, передаваемой в накопитель 126 согласно перепланированному порядку операций I/O.
Когда контроль осуществляется с использованием априорного анализа, второй планировщик 320 дополнительно или в качестве альтернативы может селективно определить, что гибридный планировщик 300 должен работать в режиме высокой нагрузки, если определена невозможность выполнения накопителем 126 до истечения соответствующего предельного срока по меньшей мере одной операции I/O, если вторым планировщиком 320 принимается дополнительная операция I/O от первого планировщика 310. Например, второй планировщик 320 может определить, что после приема дополнительной операции I/O и добавления ее в перепланированный порядок операций I/O на основе соответствующего предельного срока выполнения накопитель 126 не будет способен выполнить до истечения соответствующего предельного срока по меньшей мере одну операцию I/O согласно перепланированному порядку.
В процессе контроля с использованием апостериорного анализа гибридный планировщик 300 может контролировать фактическое выполнение до истечения соответствующих предельных сроков переданных в накопитель 126 операций I/O согласно перепланированному порядку. Это означает, что гибридный планировщик 300 может селективно определить, что гибридный планировщик 300 должен работать в режиме высокой нагрузки, если определено фактическое невыполнение накопителем 126 до истечения соответствующего предельного срока по меньшей мере одной операции I/O.
Предполагается, что в некоторых вариантах осуществления данной технологии, когда контроль выполняется с использованием апостериорного анализа, гибридный планировщик 300 может быть способен принимать подтверждения выполнения операций I/O, переданных гибридным планировщиком 300 в накопитель 126 для выполнения. Иными словами, если выполнение данных операций I/O происходит после истечения соответствующего срока, гибридный планировщик 300 может быть способен селективно переключаться в режим высокой нагрузки.
Гибридный планировщик 300 может осуществлять этот контроль с использованием апостериорного анализа в различных ситуациях. В одном не имеющем ограничительного характера примере такая ситуация может возникать вследствие того, что описанное выше внутреннее логическое устройство 250 накопителя способно выбирать наиболее эффективный порядок выполнения операций I/O среди имеющихся операций I/O. В результате этого в некоторых случаях, даже несмотря на передачу гибридным планировщиком 300 операций I/O в порядке «для реального времени», в котором операции I/O могут быть выполнены до истечения их соответствующих предельных сроков, внутреннее логическое устройство 250 накопителя может выдавать в накопитель 126 команды для выполнения операций I/O в другом порядке, согласно которому некоторые операции I/O фактически не будут выполнены до истечения их соответствующих предельных сроков.
В целом, селективное переключение между режимами работы может выполняться гибридным планировщиком 300 с использованием контроля ситуации, в которой по меньшей мере одна операция I/O выполняется без соблюдения соответствующего предельного срока. Этот контроль может включать в себя выполнение априорного анализа с целью определения возможности выполнения принятых вторым планировщиком 320 операций I/O до истечения их соответствующих предельных сроков. Дополнительно или в качестве альтернативы этот контроль может включать в себя выполнение апостериорного анализа с целью контроля фактического выполнения накопителем 126 операций I/O (переданных гибридным планировщиком 300 в порядке «для реального времени») до истечения их соответствующих предельных сроков.
Режим работы с высокой нагрузкой
Когда гибридный планировщик 300 определяет, что гибридный планировщик 300 должен селективно переключиться в режим высокой нагрузки, второй планировщик 320 способен приостанавливать прием дополнительных операций I/O от первого планировщика 310.
В некоторых вариантах осуществления данной технологии второй планировщик 320 может приостанавливать прием дополнительных операций I/O от первого планировщика 310 путем прекращения приема дополнительных операций I/O, которые первый планировщик 310 передает по линии 316 связи.
В других вариантах осуществления данной технологии второй планировщик 320 может приостанавливать прием дополнительных операций I/O от первого планировщика 310 путем передачи сигнала 342 обратной связи по линии 340 связи в первый планировщик 310 (см. фиг. 3). При получении сигнала 342 обратной связи первый планировщик 310 прекращает отправку дополнительных операций I/O во второй планировщик 320.
Например, сигнал 342 обратной связи может указывать на информацию, определенную вторым планировщиком 320 в ходе контроля. В другом примере сигнал 342 обратной связи может указывать на отправленные в первый планировщик 310 машиночитаемые команды, согласно которым первый планировщик 310 должен прекратить отправку дополнительных операций I/O во второй планировщик 320.
Поэтому предполагается, что в режиме высокой нагрузки второй планировщик 320 приостанавливает прием дополнительных операций I/O от первого планировщика 310. В результате этого второй планировщик 320 может обработать операции I/O, уже принятые и требующие упорядочивания для передачи, перед приемом дополнительных операций I/O от первого планировщика 310.
Тем не менее, следует отметить, что приостановка вторым планировщиком 320 приема дополнительных операций I/O от первого планировщика 310 не означает, что первый планировщик 310 должен прекратить прием операций I/O. Например, в режиме высокой нагрузки первый планировщик 310 может принять по меньшей мере одну дополнительную операцию I/O из первого набора 302 операций I/O. В другом примере в режиме высокой нагрузки первый планировщик 310 может принять по меньшей мере одну дополнительную операцию I/O из второго набора 304 операций I/O.
Предполагается, что эта по меньшей мере одна дополнительная операция I/O, принятая первым планировщиком 310 в режиме высокой нагрузки, не возвращается в соответствующий источник операций I/O. Эта по меньшей мере одна дополнительная операция I/O, принятая первым планировщиком 310 в режиме высокой нагрузки, сохраняется в первом планировщике 310, пока гибридный планировщик 300 селективно не переключится в обычный режим работы.
Предполагается, что в некоторых вариантах осуществления изобретения гибридный планировщик 300 может быть способен работать в режиме высокой нагрузки, пока гибридный планировщик 300 не определит возможность селективного переключения из режима высокой нагрузки в обычный режим.
В некоторых вариантах осуществления предполагается, что гибридный планировщик 300 способен селективно переключаться из режима высокой нагрузки в обычный режим, если гибридный планировщик 300 определяет, что операции I/O в данный момент времени выполняются с соблюдением соответствующих предельных сроков.
Например, в некоторый момент времени количество операций I/O, оставшихся во втором планировщике 320 и требующих передачи для выполнения, может быть меньше чем в момент времени, когда гибридный планировщик 300 селективно переключился в режим высокой нагрузки. Поэтому второму планировщику 320 требуется учитывать меньшее количество операций I/O и, следовательно, меньшее количество предельных сроков выполнения при определении перепланированного порядка операций I/O. Следовательно, в такой момент времени второй планировщик 320 может определить спланированный «для реального времени» порядок принятых операций I/O, согласно которому операции I/O могут быть выполнены до истечения их соответствующих предельных сроков. В результате гибридный планировщик 300 может селективно переключиться из режима высокой нагрузки в обычный режим.
В другом примере в некоторый момент времени гибридный планировщик 300 может определить, что переданные для выполнения операции I/O фактически выполняются до истечения соответствующих предельных сроков (например, путем приема подтверждений выполнения из накопителя 126). В результате гибридный планировщик 300 может селективно переключиться из режима высокой нагрузки в обычный режим.
В еще одном примере в некоторый момент времени гибридный планировщик 300 может определить, что все принятые вторым планировщиком 320 операции I/O переданы для выполнения. В результате гибридный планировщик 300 может селективно переключиться из режима высокой нагрузки в обычный режим.
Когда гибридный планировщик 300 селективно переключается из режима высокой нагрузки в обычный режим, второй планировщик 320 может селективно возобновлять прием дополнительных операций I/O от первого планировщика 310.
Например, когда гибридный планировщик 300 принимает решение о селективном переключении из режима высокой нагрузки в обычный режим, второй планировщик 320 может передавать другой сигнал обратной связи (не показан) в первый планировщик 310 по линии 340 связи для возобновления передачи операций I/O в «справедливо» спланированном порядке во второй планировщик 320 по линии 316 связи. В результате гибридный планировщик 300 селективно переключается в обычный режим работы.
В некоторых вариантах осуществления данной технологии гибридный планировщик 300 может быть способен выполнять представленный на фиг. 4 способ 400 для планирования операций I/O с целью их выполнения накопителем 126. Далее описан такой способ 400.
Шаг 402: прием первым планировщиком операций I/O (а) по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
Способ 400 начинается на шаге 402, где первый планировщик 310 принимает по меньшей мере одну операцию I/O, сформированную первым источником операций I/O. Например, первый планировщик 310 может быть способен принимать по меньшей мере одну операцию I/O из первого набора 302 операций I/O по первой линии 312 связи от первого приложения 114 Vdrive.
На шаге 402 первый планировщик 310 также принимает по меньшей мере одну операцию I/O, сформированную вторым источником операций I/O. Например, первый планировщик 310 может быть способен принимать по меньшей мере одну операцию I/O из второго набора 304 операций I/O по второй линии 314 связи от второго приложения 114 Vdrive.
Шаг 404: выполнение первым планировщиком операций I/O первого алгоритма планирования с целью определения спланированного порядка для по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, причем первый алгоритм планирования основан на соответствующих заранее заданных долях производительности накопителя, связанных с первым источником операций I/O и вторым источником операций I/O, а результатом выполнения первого алгоритма планирования является первый спланированный порядок операций I/O.
Способ 400 продолжается на шаге 404, где первый планировщик 310 выполняет первый алгоритм «справедливого» планирования.
Как описано выше, первый планировщик 310 способен реализовать схему «справедливого» планирования, позволяющую упорядочивать операции I/O из первого набора 302 операций I/O и из второго набора 304 операций I/O так, чтобы производительность накопителя 126 для выполнения упорядоченных операций I/O использовалась согласно первой и второй заранее заданным долям.
Иными словами, схема «справедливого» планирования упорядочивает операции I/O из первого набора 302 операций I/O и из второго набора 304 операций I/O так, чтобы производительность накопителя 126 использовалось «справедливо», т.е. согласно соответствующим первой и второй заранее заданными долям производительности накопителя, по меньшей мере в некоторых вариантах осуществления данной технологии.
Можно сказать, что первый планировщик 310, как упомянуто ранее, использует алгоритм «справедливого» планирования для формирования «справедливо» спланированного порядка операций I/O на основе первой и второй заранее заданных долей производительности накопителя 126.
Поэтому результатом выполнения первого алгоритма планирования (например, алгоритма «справедливого» планирования) является первый спланированный порядок операций I/O (например, «справедливо» спланированный порядок операций I/O).
На реализуемый первым планировщиком 310 алгоритм «справедливого» планирования не накладывается каких-либо особых ограничений. Тем не менее, в одном не имеющем ограничительного характера примере первый планировщик 310 может быть реализован с использованием алгоритма планирования DRR, т.е. первый планировщик 310 может быть реализован как планировщик типа DRR.
Независимо от реализуемого первым планировщиком 310 конкретного вида алгоритма «справедливого» планирования (т.е. независимо от конкретного первого алгоритма планирования), первый планировщик 310 способен определять порядок, в котором операции I/O из первого набора 302 операций I/O и из второго набора 304 операций I/O должны передаваться для выполнения накопителем 126, чтобы производительность накопителя 126 использовалась «справедливо».
Шаг 406: передача первого спланированного порядка операций I/O во второй планировщик операций I/O.
Способ продолжается на шаге 406, где первый планировщик 310 способен передать первый спланированный порядок («справедливо» спланированный порядок) операций I/O во второй планировщик 320. Например, первый спланированный порядок операций I/O может передаваться первым планировщиком 310 во второй планировщик 320 по линии 316 связи. Как упомянуто выше, первый спланированный порядок операций I/O может включать в себя «справедливо» спланированные операции I/O из первого набора 302 операций I/O и из второго набора 304 операций I/O.
Предполагается, что в некоторых вариантах осуществления данной технологии первый планировщик 310 может передавать первый спланированный порядок («справедливо» спланированный порядок) операций I/O непосредственно во второй планировщик 320.
Например, вместо передачи первого спланированного порядка операций I/O в промежуточный стек операций I/O, расположенный между первым планировщиком 310 и вторым планировщиком 320, и последующей передачи операций I/O из промежуточного стека операций I/O во второй планировщик 320, первый планировщик 310 может передавать первый спланированный порядок операций I/O непосредственно во второй планировщик 320 без использования промежуточного стека операций I/O.
Следовательно, предполагается, что линия 316 связи может представлять собой прямую линию связи между первым планировщиком 310 и вторым планировщиком 320, чтобы операции I/O, передаваемые от первого планировщика 310 во второй планировщик 320 не принимались или не перехватывались каким-либо промежуточным стеком операций I/O, расположенным между первым планировщиком 310 и вторым планировщиком 320. Предполагается, что в гибридном планировщике 300 может не требоваться промежуточный стек операций I/O между первым планировщиком 310 и вторым планировщиком 320.
Шаг 408: выполнение вторым планировщиком операций I/O второго алгоритма планирования с целью определения перепланированного порядка операций I/O для первого спланированного порядка операций I/O, причем второй алгоритм планирования основан на соответствующих предельных сроках выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
Способ 400 продолжается на шаге 408, где второй планировщик 320 выполняет второй алгоритм планирования «для реального времени».
Как описано выше, чтобы выполнить требования относительно режима реального времени к системе 100 распределенной обработки информации, второй планировщик 320 способен обеспечивать схему планирования «для реального времени», позволяющую выполнять операции I/O до истечения соответствующих предельных сроков. Иными словами, второй планировщик 320 способен упорядочивать (или в данном случае переупорядочивать) операции I/O для их передачи в накопитель 126 с целью выполнения так, чтобы операции I/O могли выполняться накопителем 126 до истечения соответствующих предельных сроков.
Можно сказать, что, как упомянуто выше, второй планировщик 320 использует алгоритм планирования «для реального времени» с целью формирования спланированного «для реального времени» порядка операций I/O на основе соответствующих предельных сроков выполнения операций I/O.
Поэтому результатом выполнения второго алгоритма планирования (например, алгоритма планирования «для реального времени») на основе первого спланированного порядка операций I/O (например, «справедливо» спланированного порядка операций I/O) является перепланированный порядок операций I/O (например, спланированный «для реального времени» порядок операций I/O).
На реализуемый вторым планировщиком 320 алгоритм планирования «для реального времени» не накладывается каких-либо особых ограничений. Тем не менее, в одном не имеющем ограничительного характера примере второй планировщик 320 может быть реализован с использованием алгоритма планирования EDF, т.е. второй планировщик 320 может быть реализован как планировщик типа EDF.
Независимо от реализуемого вторым планировщиком 320 конкретного вида алгоритма планирования «для реального времени» (т.е. независимо от конкретного второго алгоритма планирования), второй планировщик 320 способен определять спланированный «для реального времени» порядок принятых операций I/O, позволяющий накопителю 126 выполнять операции I/O до истечения их соответствующих предельных сроков.
Шаг 410: контроль гибридным планировщиком операций I/O соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
Способ 400 продолжается на шаге 410, где гибридный планировщик 300 осуществляет контроль соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
В некоторых вариантах осуществления это означает, что гибридный планировщик 300 способен контролировать возможность выполнения до истечения соответствующих предельных сроков по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O (например, этот контроль, помимо прочего, может включать в себя априорный анализ, как описано выше).
Это также означает, что гибридный планировщик 300 дополнительно или в качестве альтернативы способен контролировать фактическое выполнение до истечения соответствующих предельных сроков по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O (например, этот контроль, помимо прочего, может включать в себя апостериорный анализ, как описано выше).
Шаг 412: приостановка приема вторым планировщиком операций I/O дополнительных операций I/O от первого планировщика операций I/O, если определено несоблюдение соответствующего предельного срока выполнения по меньшей мере одной операции I/O.
Способ продолжается на шаге 412, где приостанавливается прием вторым планировщиком 320 дополнительных операций I/O от первого планировщика 310, если определено несоблюдение соответствующего предельного срока выполнения по меньшей мере одной операции I/O.
В некоторых вариантах осуществления гибридный планировщик 300, выполняющий на шаге 410 контроль с использованием априорного анализа, может определить невозможность выполнения накопителем 126 до истечения соответствующего предельного срока по меньшей мере одной операции I/O, передаваемой в накопитель 126 согласно перепланированному порядку операций I/O.
Например, гибридный планировщик 300 может определить невозможность выполнения накопителем 126 до истечения соответствующего предельного срока по меньшей мере одной операции I/O, передаваемой в накопитель 126 согласно перепланированному порядку операций I/O, когда второй планировщик 320 неспособен определить спланированный «для реального времени» порядок, согласно которому операции I/O могут быть выполнены до истечения их соответствующих предельных сроков.
В других вариантах осуществления гибридный планировщик 300, выполняющий на шаге 410 контроль с использованием априорного анализа, может определить невозможность выполнения накопителем 126 до истечения соответствующего предельного срока по меньшей мере одной операции I/O, если от первого планировщика 310 принимается дополнительная операция I/O.
Например, второй планировщик 320 может определить, что после приема дополнительной операции I/O и добавления ее в перепланированный порядок операций I/O на основе соответствующего предельного срока выполнения накопитель 126 будет неспособен выполнить до истечения соответствующего предельного срока по меньшей мере одну операцию I/O согласно перепланированному порядку.
Гибридный планировщик 300, выполняющий на шаге 410 контроль с использованием априорного анализа, дополнительно или в качестве альтернативы может определять выполнение по меньшей мере одной операции I/O без соблюдения соответствующего предельного срока путем определения фактического невыполнения накопителем 126 до истечения соответствующего предельного срока по меньшей мере одной операции I/O.
Например, гибридный планировщик 300 может быть способен принимать подтверждения выполнения операций I/O, ранее переданных гибридным планировщиком 300 в накопитель 126 для их выполнения. Если выполнение этих операций I/O происходит после истечения соответствующего срока, гибридный планировщик 300 может определить несоблюдение соответствующего предельного срока выполнения по меньшей мере одной операции I/O.
Следует отметить, что приостановка приема вторым планировщиком 320 дополнительных операций I/O от первого планировщика 310 выполняется в результате селективного переключения гибридного планировщика 300 из обычного режима в режим высокой нагрузки.
В некоторых вариантах осуществления изобретения приостановка приема вторым планировщиком 320 дополнительных операций I/O от первого планировщика 310 включает в себя прекращение приема вторым планировщиком 320 дополнительных операций I/O.
В других вариантах осуществления изобретения приостановка приема вторым планировщиком 320 дополнительных операций I/O от первого планировщика 310 включает в себя передачу вторым планировщиком 320 сигнала 342 обратной связи в первый планировщик 310. При получении сигнала 342 обратной связи первый планировщик 310 прекращает отправку дополнительных операций I/O во второй планировщик 320, как описано выше.
Предполагается, что гибридный планировщик 300, работающий в обычном режиме или в режиме высокой нагрузки, способен дополнительно принимать (а) по меньшей мере одну дополнительную операцию I/O, сформированную первым источником операций I/O, и (б) по меньшей мере одну дополнительную операцию I/O, сформированную вторым источником операций I/O.
Предполагается, что эта по меньшей мере одна дополнительная операция I/O, принятая первым планировщиком 310 в режиме высокой нагрузки, не возвращается в соответствующий источник операций I/O. Эта по меньшей мере одна дополнительная операция I/O, принятая первым планировщиком 310 в режиме высокой нагрузки, сохраняется в первом планировщике 310, пока гибридный планировщик 300 селективно не переключится в обычный режим работы.
Предполагается, что второй планировщик 320 способен возобновлять прием дополнительных операций I/O от первого планировщика 310.
В некоторых вариантах осуществления данной технологии гибридный планировщик 300 способен определять, что принятые вторым планировщиком 320 операции I/O выполняются с соблюдением соответствующих предельных сроков, как описано выше. Предполагается, что в других вариантах осуществления второй планировщик 320 способен возобновить прием дополнительных операций I/O от первого планировщика 310, если определено, что принятые вторым планировщиком 320 операции I/O выполняются с соблюдением соответствующих предельных сроков.
Следует отметить, что возобновление приема вторым планировщиком 320 дополнительных операций I/O от первого планировщика 310 выполняется в результате селективного переключения гибридного планировщика 300 из режима высокой нагрузки в обычный режим.
Предполагается, что в некоторых вариантах осуществления данной технологии гибридный планировщик 300 способен работать в обычном режиме, когда второй планировщик 320 принимает дополнительные операции I/O от первого планировщика 310. Гибридный планировщик 300 также способен работать в режиме высокой нагрузки, когда второй планировщик 320 приостанавливает прием дополнительных операций I/O от первого планировщика 310.
Предполагается, что гибридный планировщик 300 в обычном режиме работы способен обеспечивать (а) «справедливое» распределение производительности накопителя 126 для первого и второго источников операций I/O; и (б) выполнение требований первого и второго источников операций I/O относительно режима реального времени.
Также предполагается, что гибридный планировщик 300 в режиме высокой нагрузки способен обеспечивать «справедливое» распределение производительности накопителя 126 для первого и второго источников операций I/O.
Для специалиста в данной области техники очевидны возможные изменения и усовершенствования описанных выше вариантов осуществления данной технологии. Предшествующее описание приведено в качестве примера, а не для ограничения объема изобретения. Объем охраны данной технологии определяется исключительно объемом приложенной формулы изобретения.

Claims (57)

1. Способ планирования операций I/O (ввода/вывода) для их выполнения накопителем, реализованным как часть системы распределенной компьютерной обработки информации, содержащей:
- множество источников операций I/O, от которых поступают операции I/O, включая первый источник операций I/O и второй источник операций I/O, каждый из которых связан с соответствующей заранее заданной долей производительности накопителя для выполнения соответствующих операций I/O первого источника I/O и второго источника I/O; и
- гибридный планировщик операций I/O, содержащий первый планировщик операций I/O и второй планировщик операций I/O;
способ, выполняемый гибридным планировщиком операций I/O и включающий в себя:
- прием первым планировщиком операций I/O (а) по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником операций I/O;
- выполнение первым планировщиком операций I/O первого алгоритма планирования с целью определения спланированного порядка для по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, причем первый алгоритм планирования основан на соответствующих заранее заданных долях производительности накопителя, связанных с первым источником операций I/O и вторым источником операций I/O, причем результатом выполнения первого алгоритма планирования является первый спланированный порядок операций I/O;
- передачу первого спланированного порядка операций I/O во второй планировщик операций I/O;
- выполнение вторым планировщиком операций I/O второго алгоритма планирования с целью определения перепланированного порядка операций I/O для первого спланированного порядка операций I/O, причем второй алгоритм планирования основан на соответствующих предельных сроках выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O;
- контроль гибридным планировщиком операций I/O соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O;
- приостановку приема вторым планировщиком операций I/O дополнительных операций I/O от первого планировщика операций I/O, если определено несоблюдение соответствующего предельного срока выполнения по меньшей мере одной операции I/O.
2. Способ по п. 1, отличающийся тем, что контроль соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, включает в себя контроль вторым планировщиком операций I/O возможности выполнения до истечения соответствующих предельных сроков по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
3. Способ по п. 2, отличающийся тем, что определение несоблюдения соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя определение вторым планировщиком операций I/O невозможности выполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O, передаваемой в накопитель согласно перепланированному порядку операций I/O.
4. Способ по п. 2, отличающийся тем, что определение несоблюдения соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя определение вторым планировщиком операций I/O невозможности выполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O, если от первого планировщика операций I/O принимается дополнительная операция I/O.
5. Способ по п. 1, отличающийся тем, что контроль соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, включает в себя контроль гибридным планировщиком операций I/O фактического выполнения до истечения соответствующих предельных сроков по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
6. Способ по п. 5, отличающийся тем, что определение несоблюдения соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя определение гибридным планировщиком операций I/O фактического невыполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O.
7. Способ по п. 1, отличающийся тем, что приостановка приема включает в себя прекращение приема дополнительных операций I/O вторым планировщиком операций I/O.
8. Способ по п. 1, отличающийся тем, что приостановка приема включает в себя передачу вторым планировщиком операций I/O в первый планировщик операций I/O сигнала обратной связи, при получении которого первый планировщик операций I/O прекращает отправку дополнительных операций I/O во второй планировщик операций I/O.
9. Способ по п. 1, отличающийся тем, что дополнительно включает в себя:
- прием первым планировщиком операций I/O по меньшей мере одной дополнительной операции I/O, сформированной первым источником операций I/O; и
- прием первым планировщиком операций I/O по меньшей мере одной дополнительной операции I/O, сформированной вторым источником операций I/O.
10. Способ по п. 9, отличающийся тем, что дополнительно включает в себя возобновление вторым планировщиком операций I/O приема дополнительных операций I/O от первого планировщика операций I/O.
11. Способ по п. 10, отличающийся тем, что возобновление приема выполняется, если гибридный планировщик операций I/O определяет, что дополнительные операции I/O, принятые вторым планировщиком операций I/O, выполняются с соблюдением соответствующих предельных сроков.
12. Способ по п. 1, отличающийся тем, что первый планировщик операций I/O представляет собой планировщик типа DRR.
13. Способ по п. 1, отличающийся тем, что второй планировщик операций I/O представляет собой планировщик типа EDF.
14. Способ по п. 1, отличающийся тем, что гибридный планировщик операций I/O работает:
- в обычном режиме, когда второй планировщик операций I/O принимает дополнительные операции I/O от первого планировщика операций I/O; и
- в режиме высокой нагрузки, когда второй планировщик операций I/O приостанавливает прием дополнительных операций I/O от первого планировщика операций I/O.
15. Способ по п. 14, отличающийся тем, что:
- в обычном режиме гибридный планировщик операций I/O обеспечивает «справедливое» распределение производительности накопителя для первого и второго источников операций I/O и соответствует требованиям первого и второго источников операций I/O относительно режима реального времени; и
- в режиме высокой нагрузки гибридный планировщик операций I/O обеспечивает «справедливое» распределение производительности накопителя для первого и второго источников операций I/O.
16. Гибридный планировщик операций I/O (ввода/вывода) для планирования операций I/O с целью их выполнения накопителем, реализованным как часть системы распределенной компьютерной обработки информации, содержащей множество источников операций I/O, от которых поступают операции I/O, включая первый источник операций I/O и второй источник операций I/O, связанные с соответствующими заранее заданными долями производительности накопителя для выполнения соответствующих операций I/O первого источника I/O и второго источника I/O, содержащий первый планировщик операций I/O и второй планировщик операций I/O и выполненный с возможностью выполнения следующих действий:
- прием первым планировщиком операций I/O (а) по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником операций I/O;
- выполнение первым планировщиком операций I/O первого алгоритма планирования с целью определения спланированного порядка для по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, причем первый алгоритм планирования основан на соответствующих заранее заданных долях производительности накопителя, связанных с первым источником операций I/O и вторым источником операций I/O, а результатом выполнения первого алгоритма планирования является первый спланированный порядок операций I/O;
- передача первого спланированного порядка операций I/O во второй планировщик операций I/O;
- выполнение вторым планировщиком операций I/O второго алгоритма планирования с целью определения перепланированного порядка операций I/O для первого спланированного порядка операций I/O, причем второй алгоритм планирования основан на соответствующих предельных сроках выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O;
- контроль соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O;
- приостановка приема вторым планировщиком операций I/O дополнительных операций I/O от первого планировщика операций I/O, если определено несоблюдение соответствующего предельного срока выполнения по меньшей мере одной операции I/O.
17. Гибридный планировщик по п. 16, отличающийся тем, что возможность контроля гибридным планировщиком операций I/O соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, включает в себя возможность контроля возможности выполнения до истечения соответствующих предельных сроков по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
18. Гибридный планировщик по п. 17, отличающийся тем, что возможность определения гибридным планировщиком операций I/O несоблюдения соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя возможность определения невозможности выполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O, передаваемой в накопитель согласно перепланированному порядку операций I/O.
19. Гибридный планировщик по п. 17, отличающийся тем, что возможность определения гибридным планировщиком операций I/O несоблюдения соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя возможность определения невозможности выполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O, если от первого планировщика операций I/O принимается дополнительная операция I/O.
20. Гибридный планировщик по п. 16, отличающийся тем, что возможность контроля гибридным планировщиком операций I/O соблюдения соответствующих предельных сроков выполнения по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O, включает в себя возможность контроля фактического выполнения до истечения соответствующих предельных сроков по меньшей мере одной операции I/O, сформированной первым источником операций I/O, и по меньшей мере одной операции I/O, сформированной вторым источником операций I/O.
21. Гибридный планировщик по п. 20, отличающийся тем, что возможность определения гибридным планировщиком операций I/O несоблюдения соответствующего предельного срока выполнения по меньшей мере одной операции I/O включает в себя возможность определения фактического невыполнения накопителем до истечения соответствующего предельного срока по меньшей мере одной операции I/O.
22. Гибридный планировщик по п. 16, отличающийся тем, что возможность приостановки приема гибридным планировщиком операций I/O включает в себя возможность прекращения приема дополнительных операций I/O вторым планировщиком операций I/O.
23. Гибридный планировщик по п. 16, отличающийся тем, что возможность приостановки приема гибридным планировщиком операций I/O включает в себя возможность передачи вторым планировщиком операций I/O в первый планировщик операций I/O сигнала обратной связи, при получении которого первый планировщик операций I/O прекращает отправку дополнительных операций I/O во второй планировщик операций I/O.
24. Гибридный планировщик по п. 16, отличающийся тем, что он выполнен с возможностью выполнения следующих действий:
- прием первым планировщиком операций I/O по меньшей мере одной дополнительной операции I/O, сформированной первым источником операций I/O; и
- прием первым планировщиком операций I/O по меньшей мере одной дополнительной операции I/O, сформированной вторым источником операций I/O.
25. Гибридный планировщик по п. 24, отличающийся тем, что он дополнительно выполнен с возможностью возобновления приема вторым планировщиком операций I/O дополнительных операций I/O от первого планировщика операций I/O.
26. Гибридный планировщик по п. 25, отличающийся тем, что он выполнен с возможностью возобновления приема, если гибридный планировщик операций I/O определяет, что дополнительные операции I/O, принятые вторым планировщиком операций I/O, выполняются с соблюдением соответствующих предельных сроков.
27. Гибридный планировщик по п. 16, отличающийся тем, что первый планировщик операций I/O представляет собой планировщик типа DRR.
28. Гибридный планировщик по п. 16, отличающийся тем, что второй планировщик операций I/O представляет собой планировщик типа EDF.
29. Гибридный планировщик по п. 16, отличающийся тем, что он выполнен с возможностью работы:
- в обычном режиме, когда второй планировщик операций I/O принимает дополнительные операции I/O от первого планировщика операций I/O; и
- в режиме высокой нагрузки, когда второй планировщик операций I/O приостанавливает прием дополнительных операций I/O от первого планировщика операций I/O.
30. Гибридный планировщик по п. 16, отличающийся тем, что:
- в обычном режиме гибридный планировщик операций I/O обеспечивает «справедливое» распределение производительности накопителя для первого и второго источников операций I/O и соответствует требованиям первого и второго источников операций I/O относительно режима реального времени; и
- в режиме высокой нагрузки гибридный планировщик операций I/O обеспечивает «справедливое» распределение производительности накопителя для первого и второго источников операций I/O.
RU2018144176A 2018-12-13 2018-12-13 Способ и система для планирования выполнения операций ввода/вывода RU2714373C1 (ru)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2018144176A RU2714373C1 (ru) 2018-12-13 2018-12-13 Способ и система для планирования выполнения операций ввода/вывода
US16/504,040 US10996986B2 (en) 2018-12-13 2019-07-05 Method and system for scheduling i/o operations for execution

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018144176A RU2714373C1 (ru) 2018-12-13 2018-12-13 Способ и система для планирования выполнения операций ввода/вывода

Publications (1)

Publication Number Publication Date
RU2714373C1 true RU2714373C1 (ru) 2020-02-14

Family

ID=69626010

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018144176A RU2714373C1 (ru) 2018-12-13 2018-12-13 Способ и система для планирования выполнения операций ввода/вывода

Country Status (2)

Country Link
US (1) US10996986B2 (ru)
RU (1) RU2714373C1 (ru)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11295507B2 (en) * 2020-02-04 2022-04-05 Advanced Micro Devices, Inc. Spatial partitioning in a multi-tenancy graphics processing unit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845316A (en) * 1996-05-23 1998-12-01 Lucent Technologies Inc. Scheduling random I/O for data storage tape
EP1508850A3 (en) * 2003-08-20 2015-03-18 Microsoft Technology Licensing, LLC Continuous media priority aware storage scheduler
RU2547705C2 (ru) * 2010-06-23 2015-04-10 Интернэшнл Бизнес Машинз Корпорейшн Трансляция адресов ввода-вывода в адреса ячеек памяти
US9304694B2 (en) * 2010-09-15 2016-04-05 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment

Family Cites Families (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278984A (en) 1990-12-19 1994-01-11 Bull Hn Information Systems Inc. Method for managing requests by specifying time intervals for transmitting a minimum number of messages for specific destinations and priority levels
US5640563A (en) 1992-01-31 1997-06-17 International Business Machines Corporation Multi-media computer operating system and method
US5247677A (en) 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
US5577202A (en) 1992-08-24 1996-11-19 Trw Inc. Message handling system for automated gateway between first and second handling systems wherein first envelope is added to a second envelope respectively without changing text
US6023720A (en) 1998-02-09 2000-02-08 Matsushita Electric Industrial Co., Ltd. Simultaneous processing of read and write requests using optimized storage partitions for read and write request deadlines
US6256755B1 (en) 1998-10-19 2001-07-03 International Business Machines Corporation Apparatus and method for detecting defective NVRAM cells
US6851115B1 (en) 1999-01-05 2005-02-01 Sri International Software-based architecture for communication and cooperation among distributed electronic agents
IE20000203A1 (en) 1999-03-25 2001-02-21 Converge Net Technologies Inc Storage domain management system
US7774469B2 (en) 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US20030115410A1 (en) 1999-06-03 2003-06-19 Lucent Technologies Inc. Method and apparatus for improving file system response time
US6791992B1 (en) 1999-10-07 2004-09-14 The Regents Of The University Of California Earliest-deadline-first queuing cell switching architecture and method
US6757897B1 (en) 2000-02-29 2004-06-29 Cisco Technology, Inc. Apparatus and methods for scheduling and performing tasks
US7234126B2 (en) * 2000-08-23 2007-06-19 Interuniversitair Microelektronica Centrum Task concurrency management design method
US6553472B2 (en) 2001-01-12 2003-04-22 Sun Microsystems, Inc. Method for programming clock delays, command delays, read command parameter delays, and write command parameter delays of a memory controller in a high performance microprocessor
US7177866B2 (en) 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
GB0110542D0 (en) 2001-04-30 2001-06-20 Nokia Corp Messaging system
US7096498B2 (en) 2002-03-08 2006-08-22 Cipher Trust, Inc. Systems and methods for message threat management
RU2376635C2 (ru) 2002-10-23 2009-12-20 Закрытое акционерное общество "МедиаЛингва" Способ и система проведения транзакций в сети с использованием сетевых идентификаторов
US7073021B2 (en) 2003-03-21 2006-07-04 Seagate Technology Llc Semantically-aware, dynamic, window-based disc scheduling method and apparatus for better fulfilling application requirements
US6823347B2 (en) 2003-04-23 2004-11-23 Oracle International Corporation Propagating commit times
US7562362B1 (en) 2003-06-18 2009-07-14 Apple Inc. User control of task priority
US20050047425A1 (en) 2003-09-03 2005-03-03 Yonghe Liu Hierarchical scheduling for communications systems
US7698361B2 (en) 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US7474989B1 (en) 2005-03-17 2009-01-06 Rockwell Collins, Inc. Method and apparatus for failure prediction of an electronic assembly using life consumption and environmental monitoring
US20070002750A1 (en) 2005-07-01 2007-01-04 Nec Laboratories America, Inc. Generic Real Time Scheduler for Wireless Packet Data Systems
US8694668B2 (en) 2005-09-30 2014-04-08 Cleversafe, Inc. Streaming media software interface to a dispersed data storage network
WO2007088728A1 (ja) 2006-01-31 2007-08-09 Hewlett-Packard Development Company, L.P. 多層分散処理システム
US7962563B2 (en) 2006-03-24 2011-06-14 International Business Machines Corporation System and method for managing storage system performance as a resource
CN100596049C (zh) 2006-03-30 2010-03-24 阿里巴巴集团控股有限公司 一种消息重发方法和系统
US20070268516A1 (en) 2006-05-19 2007-11-22 Jamsheed Bugwadia Automated policy-based network device configuration and network deployment
US20070282660A1 (en) 2006-06-01 2007-12-06 Peter Forth Task management systems and methods
US8345561B2 (en) 2006-08-22 2013-01-01 Rueters America Inc. Time monitor
US7640412B2 (en) 2007-01-04 2009-12-29 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for improving the reliability of file systems
US20080320482A1 (en) * 2007-06-20 2008-12-25 Dawson Christopher J Management of grid computing resources based on service level requirements
US8117621B2 (en) 2007-10-24 2012-02-14 International Business Machines Corporation Simulating a multi-queue scheduler using a single queue on a processor
US20090158136A1 (en) 2007-12-12 2009-06-18 Anthony Rossano Methods and systems for video messaging
US7971093B1 (en) 2008-01-16 2011-06-28 Network Appliance, Inc. Apparatus and method to proactively address hard disk drive inefficiency and failure
US8595302B2 (en) 2008-02-22 2013-11-26 Qualcomm Incorporated Method and apparatus for monitoring message status in an asynchronous mediated communication system
JP5430587B2 (ja) 2008-03-03 2014-03-05 パナソニック株式会社 ネットワークベースのモビリティ管理による経路最適化のためのゲートウェイ間での情報交換
EP2110990B1 (en) 2008-04-16 2014-06-04 Nokia Solutions and Networks Oy Managing a network element
JP5223457B2 (ja) 2008-05-22 2013-06-26 富士通株式会社 分散トランザクションの2相コミットプロトコルにおけるインダウト状態の解決方法
US8037024B1 (en) 2008-06-04 2011-10-11 Google Inc. Data propagation in a multi-shard database system
US8850446B2 (en) 2008-06-19 2014-09-30 Freescale Semiconductor, Inc. System and method for using a task starvation indication to prevent starvations of tasks in a multiple processing entity system
US8966490B2 (en) 2008-06-19 2015-02-24 Freescale Semiconductor, Inc. System, method and computer program product for scheduling a processing entity task by a scheduler in response to a peripheral task completion indicator
US8407440B2 (en) 2008-07-08 2013-03-26 HGST Netherlands B.V. Techniques for scheduling requests for accessing storage devices using sliding windows
KR100939722B1 (ko) 2008-08-11 2010-02-01 엘지전자 주식회사 데이터 전송 방법 및 이를 위한 사용자 기기
US8458451B2 (en) 2009-01-20 2013-06-04 New York University Database outsourcing with access privacy
US8145838B1 (en) 2009-03-10 2012-03-27 Netapp, Inc. Processing and distributing write logs of nodes of a cluster storage system
KR20120004993A (ko) 2009-03-18 2012-01-13 록스타 비드코 엘피 입력/출력 데이터 전달용의 논리적 네트워크 계층을 제공하기 위한 방법 및 시스템
US8254172B1 (en) 2009-09-30 2012-08-28 Western Digital Technologies, Inc. Wear leveling non-volatile semiconductor memory based on erase times and program times
KR101080845B1 (ko) 2009-10-30 2011-11-07 (주)지노게임즈 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템
JP2011123817A (ja) 2009-12-14 2011-06-23 Fujitsu Ltd ジョブ振分装置、ジョブ振分プログラム及びジョブ振分方法
US8396831B2 (en) 2009-12-18 2013-03-12 Microsoft Corporation Optimistic serializable snapshot isolation
KR101644800B1 (ko) 2010-01-07 2016-08-02 삼성전자주식회사 컴퓨팅 시스템 및 방법
CN102123040A (zh) 2010-01-08 2011-07-13 华为技术有限公司 数据配置的方法和装置
US8862617B2 (en) 2010-02-09 2014-10-14 Google Inc. System and method for replicating objects in a distributed storage system
US9547528B1 (en) 2010-03-29 2017-01-17 EMC IP Holding Company LLC Pizza scheduler
US8576713B2 (en) 2010-04-23 2013-11-05 Ixia Traffic generator with priority flow control
US20110314070A1 (en) 2010-06-18 2011-12-22 Microsoft Corporation Optimization of storage and transmission of data
US8930954B2 (en) 2010-08-10 2015-01-06 International Business Machines Corporation Scheduling parallel data tasks
US20120046807A1 (en) 2010-08-18 2012-02-23 Snap-On Incorporated System and Method for Preventing Theft of Vehicle Diagnostic Equipment
US8862807B2 (en) 2010-08-20 2014-10-14 Samsung Electronics Co., Ltd. Semiconductor storage device and method of throttling performance of the same
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US20120102367A1 (en) 2010-10-26 2012-04-26 International Business Machines Corporation Scalable Prediction Failure Analysis For Memory Used In Modern Computers
US8806106B2 (en) 2010-11-12 2014-08-12 Seagate Technology Llc Estimating wear of non-volatile, solid state memory
US10997211B2 (en) 2010-12-23 2021-05-04 Mongodb, Inc. Systems and methods for database zone sharding and API integration
WO2012144985A1 (en) 2011-04-19 2012-10-26 Hewlett-Packard Development Company, L.P. Scheduling map and reduce tasks of jobs for execution according to performance goals
US9047331B2 (en) 2011-04-21 2015-06-02 International Business Machines Corporation Scalable row-store with consensus-based replication
US9172750B2 (en) 2011-04-26 2015-10-27 Brian J. Bulkowski Cluster-node load balancing in a distributed database system
US8924967B2 (en) 2011-04-28 2014-12-30 Vmware, Inc. Maintaining high availability of a group of virtual machines using heartbeat messages
US9251195B2 (en) 2011-07-05 2016-02-02 Murakumo Corporation Method of managing database
US8909996B2 (en) 2011-08-12 2014-12-09 Oracle International Corporation Utilizing multiple storage devices to reduce write latency for database logging
US9203900B2 (en) 2011-09-23 2015-12-01 Netapp, Inc. Storage area network attached clustered storage system
US8838539B1 (en) 2011-10-05 2014-09-16 Google Inc. Database replication
FR2981474B1 (fr) 2011-10-17 2013-12-27 Alstom Technology Ltd Procede de detection preventive d'une panne d'un appareil, programme d'ordinateur, installation et module de detection preventive d'une panne d'un appareil
US9395920B2 (en) 2011-11-17 2016-07-19 Mirosoft Technology Licensing, LLC Throttle disk I/O using disk drive simulation model
RU2494453C2 (ru) 2011-11-24 2013-09-27 Закрытое акционерное общество "Лаборатория Касперского" Способ распределенного выполнения задач компьютерной безопасности
WO2013095581A1 (en) 2011-12-22 2013-06-27 Intel Corporation Apparatus and method for sliding window data access
US8893140B2 (en) 2012-01-24 2014-11-18 Life Coded, Llc System and method for dynamically coordinating tasks, schedule planning, and workload management
US9037826B1 (en) 2012-02-29 2015-05-19 Amazon Technologies, Inc. System for optimization of input/output from a storage array
US20130326161A1 (en) 2012-05-31 2013-12-05 Oren Cohen Method and Host Device for Assessing Execution of Trim Commands
CN103514037B (zh) 2012-06-21 2018-06-01 中兴通讯股份有限公司 任务调度处理方法及装置
US20140074623A1 (en) 2012-09-10 2014-03-13 Bce Inc. Targeted messaging
GB2513532A (en) 2012-12-05 2014-11-05 Ibm Distributed transaction routing
US9400682B2 (en) 2012-12-06 2016-07-26 Hewlett Packard Enterprise Development Lp Ranking and scheduling of monitoring tasks
US9354813B1 (en) 2012-12-28 2016-05-31 Emc Corporation Data storage system modeling
US9086925B2 (en) 2013-01-18 2015-07-21 Nec Laboratories America, Inc. Methods of processing core selection for applications on manycore processors
KR101430077B1 (ko) 2013-03-04 2014-08-18 한국과학기술원 멀티프로세서 장치에서의 스케줄링 방법 및 멀티프로세서 장치에서 가상 마감시간을 이용하여 태스크에 대한 우선순위를 결정하는 방법
US20140282572A1 (en) * 2013-03-14 2014-09-18 Samsung Electronics Co., Ltd. Task scheduling with precedence relationships in multicore systems
US9489443B1 (en) 2013-05-24 2016-11-08 Amazon Technologies, Inc. Scheduling of splits and moves of database partitions
US9282125B2 (en) 2013-07-30 2016-03-08 Unify Gmbh & Co. Kg Apparatus and method for communications involving a legacy device
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US10061791B2 (en) 2013-10-30 2018-08-28 Microsoft Technology Licensing, Llc Data management for connected devices
US12223344B2 (en) 2013-11-01 2025-02-11 Comcast Cable Communications Management, Llc Managing fairness in task bundling of a queue
US9921557B2 (en) 2014-01-15 2018-03-20 SILVAIR Sp. z o.o. Automation system comprising a monitoring device and methods therefor
US9813516B2 (en) 2014-02-18 2017-11-07 Salesforce.Com, Inc. Transparent sharding of traffic across messaging brokers
RU2665212C2 (ru) 2014-03-31 2018-08-28 Хуавей Текнолоджиз Ко., Лтд. Система обработки событий
WO2015175411A1 (en) 2014-05-13 2015-11-19 Cloud Crowding Corp. Distributed secure data storage and transmission of streaming media content
US9207979B1 (en) 2014-05-28 2015-12-08 Freescale Semiconductor, Inc. Explicit barrier scheduling mechanism for pipelining of stream processing algorithms
US9477521B2 (en) 2014-05-29 2016-10-25 Netapp, Inc. Method and system for scheduling repetitive tasks in O(1)
US9659079B2 (en) 2014-05-30 2017-05-23 Wal-Mart Stores, Inc. Shard determination logic for scalable order and inventory management architecture with a sharded transactional database
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
WO2016003412A1 (en) 2014-06-30 2016-01-07 Hewlett-Packard Development Company, L.P. Concurrent dead actor collection
US9639396B2 (en) 2014-09-16 2017-05-02 Nxp Usa, Inc. Starvation control in a data processing system
EP3210112B1 (en) * 2014-10-22 2022-06-15 Telefonaktiebolaget LM Ericsson (publ) Coordinated scheduling between real-time processes
US20170374516A1 (en) 2014-12-14 2017-12-28 Zte Corporation Techniques for operating a distributed communication network
US20160188376A1 (en) 2014-12-26 2016-06-30 Universidad De Santiago De Chile Push/Pull Parallelization for Elasticity and Load Balance in Distributed Stream Processing Engines
EP3259665A4 (en) 2015-02-20 2018-10-10 Pristine Machine, LLC Method to split data operational function among system layers
US10073714B2 (en) 2015-03-11 2018-09-11 Western Digital Technologies, Inc. Task queues
US10191879B2 (en) 2015-03-31 2019-01-29 Veritas Technologies Llc System and method for creating snapshots in openflame environment
RU2714726C2 (ru) 2015-06-30 2020-02-20 Закрытое акционерное общество "Лаборатория Касперского" Архитектура безопасности автоматизированных систем
US9569339B1 (en) 2015-07-23 2017-02-14 Amazon Technologies, Inc. Debugging in an actor-based system
GB2540809B (en) 2015-07-29 2017-12-13 Advanced Risc Mach Ltd Task scheduling
US20170109203A1 (en) 2015-10-15 2017-04-20 International Business Machines Corporation Task scheduling
US9811391B1 (en) 2016-03-04 2017-11-07 Color Genomics, Inc. Load balancing and conflict processing in workflow with task dependencies
US10572510B2 (en) 2015-12-21 2020-02-25 Sap Se Distributed database transaction protocol
CN106980532A (zh) 2016-01-18 2017-07-25 西安中兴新软件有限责任公司 一种作业调度方法和装置
CN105653365A (zh) 2016-02-22 2016-06-08 青岛海尔智能家电科技有限公司 任务处理方法及装置
RU2016123959A (ru) 2016-06-16 2017-12-21 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запроса на транзакцию в распределенных системах обработки данных
KR102542375B1 (ko) 2016-08-19 2023-06-14 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그의 동작 방법
US10866945B2 (en) 2016-10-10 2020-12-15 AlphaPoint User account management via a distributed ledger
US10664942B2 (en) 2016-10-21 2020-05-26 Advanced Micro Devices, Inc. Reconfigurable virtual graphics and compute processor pipeline
US10146599B2 (en) 2016-12-06 2018-12-04 Synchronoss Technologies, Inc. System and method for a generic actor system container application
US10503427B2 (en) 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US10387239B2 (en) 2017-04-10 2019-08-20 Western Digital Technologies, Inc. Detecting memory failures in the runtime environment
US10552215B1 (en) 2017-08-05 2020-02-04 Jia Xu System and method of handling real-time process overruns on a multiprocessor
US10572323B1 (en) 2017-10-24 2020-02-25 EMC IP Holding Company LLC Predicting physical storage unit health
US10963330B2 (en) 2017-11-24 2021-03-30 Microsoft Technology Licensing, Llc Correlating failures with performance in application telemetry data
US10810268B2 (en) 2017-12-06 2020-10-20 Futurewei Technologies, Inc. High-throughput distributed transaction management for globally consistent sharded OLTP system and method of implementing
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845316A (en) * 1996-05-23 1998-12-01 Lucent Technologies Inc. Scheduling random I/O for data storage tape
EP1508850A3 (en) * 2003-08-20 2015-03-18 Microsoft Technology Licensing, LLC Continuous media priority aware storage scheduler
RU2547705C2 (ru) * 2010-06-23 2015-04-10 Интернэшнл Бизнес Машинз Корпорейшн Трансляция адресов ввода-вывода в адреса ячеек памяти
US9304694B2 (en) * 2010-09-15 2016-04-05 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment

Also Published As

Publication number Publication date
US20200192704A1 (en) 2020-06-18
US10996986B2 (en) 2021-05-04

Similar Documents

Publication Publication Date Title
RU2746042C1 (ru) Способ и система для передачи сообщения
US11599560B2 (en) Predictive and adaptive queue flushing for real-time data reconciliation between local and remote databases
US7779298B2 (en) Distributed job manager recovery
CN104081354B (zh) 在可缩放环境中管理分区
EP1771789B1 (en) Method of improving replica server performance and a replica server system
US20150067028A1 (en) Message driven method and system for optimal management of dynamic production workflows in a distributed environment
KR20200078382A (ko) 개시자 모드를 갖는 솔리드-스테이트 드라이브
US20150180813A1 (en) Message delivery in messaging networks
CN105393519A (zh) 故障切换系统及方法
RU2711348C1 (ru) Способ и система для обработки запросов в распределенной базе данных
RU2721235C2 (ru) Способ и система для маршрутизации и выполнения транзакций
RU2714373C1 (ru) Способ и система для планирования выполнения операций ввода/вывода
CN113472638A (zh) 边缘网关控制方法及系统、装置、电子设备、存储介质
RU2720951C1 (ru) Способ и распределенная компьютерная система для обработки данных
RU2749649C2 (ru) Способ и система для планирования обработки операций ввода/вывода
US9330709B2 (en) Tape library string request management
RU2714602C1 (ru) Способ и система для обработки данных
RU2718215C2 (ru) Система обработки данных и способ обнаружения затора в системе обработки данных
RU2714219C1 (ru) Способ и система для планирования передачи операций ввода/вывода
CN112632033B (zh) 集群数据迁移方法、装置及电子设备
US11275608B1 (en) Scalable job transformation and management
CN114138530B (zh) 基于云原生的消息处理方法、装置、设备及存储介质
JP5477122B2 (ja) コンピュータシステム、コンピュータシステムの管理方法、ゲートウェイ装置、及びプログラム
US11687561B2 (en) Systems and methods for cross-region data processing
Alimjon IDENTIFY KEY AREAS FOR IMPROVING THE REPLICATION MECHANISM IN ISLAMIC INSTITUTIONS