ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ ОПЕРАЦИЙ ЧТЕНИЯ ЗА СЧЕТ СОГЛАСОВАНИЯ УПРАВЛЕНИЯ КЭШЕМ ЧТЕНИЯ И АВТОМАТИЧЕСКОГО РАСПРЕДЕЛЕНИЯ ПО УРОВНЯМ

1. Устройство, содержащее:
множество взаимосвязанных вычислительных узлов, при этом каждый из вычислительных узлов содержит по меньшей мере один процессор и память;
множество дисков хранилища данных, на которых хранятся экстенты данных ведущего приложения, каждый диск хранилища данных соединен с по меньшей мере одним из вычислительных узлов, причем диски хранилища данных состоят из множества иерархических уровней, различающихся по производительности;
подсистему распределения по уровням, которая указывает выбранным экстентам данных ведущего приложения переместиться выше или ниже между иерархическими уровнями;
диспетчер памяти, который указывает скопировать выбранные экстенты данных ведущего приложения в общую память или же удалить их из нее; и
диспетчер ресурсов, который согласует решения об удалении, вынесенные диспетчером памяти, с решениями о повышении или понижения уровня, вынесенными подсистемой распределения по уровням.
2. Устройство по п. 1, в котором диспетчер ресурсов получает информацию, указывающую на то, на каких иерархических уровнях находятся экстенты данных ведущего приложения.
3. Устройство по п. 2, в котором диспетчер ресурсов использует информацию для вычисления затрат на удаление для каждого из экстентов данных ведущего приложения в одной из памятей.
4. Устройство по п. 3, в котором вычисленные затраты на удаление передаются в диспетчер памяти, и диспетчер памяти выбирает один из экстентов данных ведущего приложения для удаления из одной из памятей на основании вычисленных затрат на удаление.
5. Устройство по п. 4, в котором вычислительные узлы поддерживают множество объектов хранилища, на которых хранятся данные ведущего приложения, при этом информация содержит по меньшей мере одно из перечисленного далее: уровень хранилища, на котором находятся фрагменты каждого объекта хранилища; частота доступа на чтение к одному фрагменту и одному объекту хранилища; распределение частоты доступа на чтение к адресному пространству каждого объекта хранилища; и распределение частоты доступа на чтение к уровню хранилища каждого объекта хранилища.
6. Устройство по п. 1, в котором диспетчер ресурсов получает информацию, которая указывает на операции чтения из экстентов данных ведущего приложения в памятях, в том числе указывает, были ли экстенты извлечены из дисков хранилища данных для выполнения операций чтения.
7. Устройство по п. 6, в котором диспетчер ресурсов использует информацию для вычисления выгоды или затрат на повышение или понижение уровня экстентов данных ведущего приложения в одной из памятей.
8. Устройство по п. 7, в котором вычисленные выгоды или затраты передаются в подсистему распределения по уровням, и подсистема распределения по уровням выбирает, повышать или понижать уровень данных ведущего приложения на основании вычисленных выгод или затрат.
9. Устройство по п. 8, в котором вычислительные узлы поддерживают множество объектов хранилища, на которых хранятся данные ведущего приложения, причем информация содержит считанную информацию о попадании в кэше/промахах кэша для каждого объекта хранилища.
10. Способ, предусматривающий:
в массиве хранения, содержащем множество взаимосвязанных вычислительных узлов, причем каждый из вычислительных узлов содержит по меньшей мере один процессор и память; множество дисков хранилища данных, на которых хранятся экстенты данных ведущего приложения, каждый диск хранилища данных соединен с по меньшей мере одним из вычислительных узлов, причем диски хранилища данных состоят из множества иерархических уровней, различающихся по производительности; подсистему распределения по уровням, которая указывает выбранным экстентам данных ведущего приложения переместиться выше или ниже между иерархическими уровнями; и диспетчер памяти, который указывает скопировать выбранные экстенты данных ведущего приложения в общую память или же удалить их из нее:
получение информации от диспетчера памяти;
получение информации от подсистемы распределения по уровням; и
использование информации, полученной от диспетчера памяти, и информации, полученной от подсистемы распределения по уровням, для согласования решений об удалении, вынесенных диспетчером памяти, с решениями о повышении или понижении уровня, вынесенными подсистемой распределения по уровням.
11. Способ по п. 10, в котором получение информации от подсистемы распределения по уровням предусматривает получение информации, указывающей на то, на каких иерархических уровнях находятся экстенты данных ведущего приложения.
12. Способ по п. 11, предусматривающий вычисление затрат на удаление для каждого из экстентов данных ведущего приложения в одной из памятей на основании информации, полученной от подсистемы распределения по уровням.
13. Способ по п. 12, предусматривающий передачу вычисленных затрат на удаление в диспетчер памяти, и выбор диспетчером памяти одного из экстентов данных ведущего приложения для удаления из одной из памятей на основании вычисленных затрат на удаление.
14. Способ по п. 13, в котором вычислительные узлы поддерживают множество объектов хранилища, на которых хранятся данные ведущего приложения, предусматривающий вычисление затрат на удаление на основании по меньшей мере одного из: уровня хранилища, на котором находятся фрагменты каждого объекта хранилища; частоты доступа на чтение к одному фрагменту и одному объекту хранилища; распределения частоты доступа на чтение к адресному пространству каждого объекта хранилища; и распределения частоты доступа на чтение к уровню хранилища каждого объекта хранилища.
15. Способ по п. 10, в котором получение информации от диспетчера памяти предусматривает получение информации, которая указывает на операции чтения из экстентов данных ведущего приложения в памятях, в том числе указывает, были ли экстенты извлечены из дисков хранилища данных для выполнения операций чтения.
16. Способ по п. 15, предусматривающий вычисление выгоды или затрат на повышение или понижение уровня экстентов данных ведущего приложения в одной из памятей на основании информации, полученной от диспетчера памяти.
17. Способ по п. 16, предусматривающий передачу вычисленных выгоды или затраты в подсистему распределения по уровням, и повышение или понижение подсистемой распределения по уровням уровня данных ведущего приложения на основании вычисленных выгод или затрат.
18. Способ по п. 17, в котором вычислительные узлы поддерживают множество объектов хранилища, на которых хранятся данные ведущего приложения, при этом получение информации от диспетчера памяти предусматривает получение считанной информации о попадании в кэше/промахах кэша для каждого объекта хранилища.
19. Устройство, содержащее:
массив хранения, содержащий множество взаимосвязанных вычислительных узлов, причем каждый из вычислительных узлов содержит по меньшей мере один процессор и память; множество дисков хранилища данных, на которых хранятся экстенты данных ведущего приложения, каждый диск хранилища данных соединен с по меньшей мере одним из вычислительных узлов, причем диски хранилища данных состоят из множества иерархических уровней, различающихся по производительности; подсистему распределения по уровням, которая указывает выбранным экстентам данных ведущего приложения переместиться выше или ниже между иерархическими уровнями; и диспетчер памяти, который указывает скопировать выбранные экстенты данных ведущего приложения в общую память или же удалить их из нее; и
логику компьютерной программы, хранящуюся в физической памяти, содержащую:
инструкции по вычислению затрат на удаление, которые обеспечивают вычисление затрат на удаление для каждого из экстентов данных ведущего приложения в одной из памятей на основании информации, которая указывает, на каком из иерархических уровней находятся экстенты данных ведущего приложения;
инструкции по вычислению затрат/выгоды, которые обеспечивают вычисление выгоды или затрат на повышение или понижение уровня экстентов данных ведущего приложения в одной из памятей на основании информации, которая указывает на операции чтения из экстентов данных ведущего приложения в памятях, в том числе указывает, были ли экстенты извлечены из дисков хранилища данных для выполнения операций чтения;
инструкции по удалению экстентов данных ведущего приложения из одной или нескольких памятей на основании затрат на удаление; и
инструкции по повышению или понижению уровня экстентов данных ведущего приложения на один из иерархических уровней на основании вычисленных выгод или затрат на повышение или понижение уровня.
20. Устройство по п. 19, в котором вычислительные узлы поддерживают множество объектов хранилища, на которых хранятся данные ведущего приложения,
при этом вычисление затрат на удаление осуществляется на основании по меньшей мере одного из: уровня хранилища, на котором находятся фрагменты каждого объекта хранилища; частоты доступа на чтение к одному фрагменту и одному объекту хранилища; распределения частоты доступа на чтение к адресному пространству каждого объекта хранилища; и распределения частоты доступа на чтение к уровню хранилища каждого объекта хранилища; и
при этом вычисление выгоды или затрат на повышение или понижение уровня осуществляется на основании считанной информации о попадании в кэше/промахах кэша для каждого объекта хранилища.