УПРАВЛЕНИЕ РАЗДЕЛАМИ В РАЗДЕЛЕННОМ, МАСШТАБИРУЕМОМ И ДОСТУПНОМ СТРУКТУРИРОВАННОМ ХРАНИЛИЩЕ

1. Способ, реализуемый одним или более вычислительными устройствами внутри структурированной системы хранения, в которой структурированное хранилище представляется одной или более таблицами, причем каждая таблица включает в себя множество строк, а каждая строка представляет объект данных, хранящийся структурированной системой хранения, и включает в себя один или более ключей для идентификации строки, при этом множество строк делится между множеством разделов, а каждый раздел включает в себя диапазон строк из множества строк внутри таблицы, причем множество разделов хранится на множестве узлов обслуживания таблицы, и при этом главный узел таблицы управляет назначением разделов на множество узлов обслуживания таблицы, при этом способ предназначен для разбиения разделов на дочерние разделы и содержит этапы, на которых:
идентифицируют (504) раздел для разбиения, основываясь на информации о загрузке для раздела, при этом информация о загрузке включает в себя информацию, задающую загрузку на каждой из двух или более частей раздела;
определяют (506) при помощи главного узла таблицы коэффициент разбиения для разбиения раздела на основе загрузки на каждой из двух или более частей раздела;
запрашивают (508) у узла обслуживания таблицы информацию о ключах, указывающую фактическую позицию внутри раздела, соответствующую коэффициенту разбиения;
принимают (510) информацию о ключах на главном узле таблицы от узла обслуживания таблицы, при этом информация о ключах указывает фактическую позицию внутри раздела, соответствующую коэффициенту разбиения;
отправляют (516) запрос на разбиение от главного узла таблицы на узел обслуживания таблицы, при этом запрос на разбиение указывает на разбиение раздела на основании информации о ключах;
разбивают (518, 520, 522) раздел в позиции, соответствующей информации о ключах, для создания дочерних разделов;
уведомляют (524) главный узел таблицы о завершении разбиения; и
обновляют (526) схему разделов с учетом раздела, разбиваемого на дочерние разделы, при этом схема разделов сохраняет сопоставления между множеством разделов и множеством узлов обслуживания таблицы, обслуживающих это множество разделов.
2. Способ по п.1, в котором способ дополнительно содержит этап, на котором формируют при помощи главного узла таблицы поток, по меньшей мере, для одного из дочерних разделов.
3. Способ по п.1, в котором этап разбиения раздела содержит этапы, на которых:
прекращают обслуживание раздела со стороны узла обслуживания таблицы;
компонуют дочерние разделы из раздела; и
загружают и обслуживают дочерние разделы со стороны узла обслуживания таблицы,
при этом этап прекращения обслуживания раздела содержит этап, на котором создают контрольную точку раздела, тем самым, сокращая объем журналов регистрации, которые должны воспроизводиться в ходе перезагрузки раздела, при этом этап создания контрольной точки раздела содержит этап, на котором эффективно укорачивают регистрационные потоки в течение контрольной точки, атомарно создавая новый регистрационный поток, жестко увязывая экстенты после контрольной точки из старого регистрационного потока с новым регистрационным потоком, удаляя старый регистрационный поток и переименовывая новый регистрационный поток с именем старого регистрационного потока.
4. Способ по п.3, в котором этап компоновки дочерних разделов из раздела содержит этап, на котором эффективно формируют потоки дочерних разделов, атомарно жестко увязывая экстенты из потоков раздела, без дорогостоящего копирования данных.
5. Способ по п.1, в котором способ дополнительно содержит этапы, на которых назначают, по меньшей мере, один из дочерних разделов на второй узел обслуживания таблицы и обновляют схему разделов для указания того, что, по меньшей мере, один из дочерних разделов располагается на втором узле обслуживания таблицы.
6. Способ по п.1, в котором способ дополнительно содержит этап, на котором регулируют границы двух или более частей раздела, основываясь на информации о загрузке, посредством объединения или разбиения, по меньшей мере, подмножества этих двух или более частей раздела в целях контролирования загрузки.
7. Один или более носителей для хранения информации на компьютере, хранящие используемые компьютером команды для выполнения способа управления структурированной системой хранения, представленной одной или более таблицами, причем каждая таблица включает в себя множество строк, а каждая строка представляет объект данных, хранящийся структурированной системой хранения, и включает в себя один или более ключей для идентификации строки, при этом множество строк делится между множеством разделов, а каждый раздел включает в себя диапазон строк из множества строк внутри таблицы, причем множество разделов хранится на множестве узлов обслуживания таблицы, и при этом главный узел таблицы управляет назначением разделов на множество узлов обслуживания таблицы, при этом способ предназначен для объединения, по меньшей мере, двух разделов таблицы в объединенный раздел и включает в себя этапы, на которых:
следят (802) за информацией о загрузке для множества разделов на множестве узлов обслуживания таблицы;
идентифицируют (804) при помощи главного узла таблицы, по меньшей мере, два раздела для объединения, основываясь на информации о загрузке;
создают (808) при помощи главного узла таблицы, поток метаданных для объединенного раздела;
выгружают (810), по меньшей мере, два раздела, по меньшей мере, с одного узла обслуживания таблицы, обслуживающего эти, по меньшей мере, два раздела;
назначают (814) при помощи главного узла таблицы объединенный раздел на выбранный узел обслуживания таблицы из множества узлов обслуживания таблицы; и
загружают и обслуживают (816) объединенный раздел на выбранном узле обслуживания таблицы.
8. Один или более носителей для хранения информации на компьютере по п.7, в котором, по меньшей мере, два раздела сохраняются на одном и том же узле обслуживания таблицы.
9. Один или более носителей для хранения информации на компьютере по п.7, в котором выбранный узел обслуживания таблицы содержит узел обслуживания таблицы, на котором, по меньшей мере, один из этих, по меньшей мере, двух разделов размещался до объединения в объединенный раздел.
10. Один или более носителей для хранения информации на компьютере по п.7, в котором способ дополнительно содержит этап, на котором обновляют схему разделов на основе, по меньшей мере, двух разделов, объединяемых в объединенный раздел, при этом схема разделов сохраняет сопоставления между множеством разделов и множеством узлов обслуживания таблицы, обслуживающих это множество разделов.
11. Один или более носителей для хранения информации на компьютере по п.7, в котором способ дополнительно содержит этап, на котором отправляют сообщение подготовки объединения от главного узла таблицы, по меньшей мере, на один узел обслуживания таблицы, обслуживающий, по меньшей мере, два раздела, при этом сообщение подготовки объединения побуждает, по меньшей мере, один узел обслуживания таблицы сжимать эти, по меньшей мере, два раздела перед объединением, чтобы сократить время загрузки для объединенного раздела.
12. Один или более носителей для хранения информации на компьютере, хранящие используемые компьютером команды для выполнения способа управления структурированной системой хранения, представленной одной или более таблицами, причем каждая таблица включает в себя множество строк, а каждая строка представляет объект данных, хранящийся структурированной системой хранения, и включает в себя один или более ключей для идентификации строки, при этом множество строк делится между множеством разделов, при этом каждый раздел включает в себя непрерывный диапазон строк из множества строк внутри таблицы, причем множество разделов хранится на множестве узлов обслуживания таблицы, и при этом главный узел таблицы управляет назначением разделов на множество узлов обслуживания таблицы, при этом способ предназначен для разбиения раздела таблицы, по меньшей мере, на два дочерних раздела и содержит этапы, на которых:
следят (702) за информацией о загрузке для множества разделов на множестве узлов обслуживания таблицы;
идентифицируют (704) при помощи главного узла таблицы для разбиения раздела, основываясь на информации о загрузке, при этом информация о загрузке для раздела идентифицирует различные загрузки на разных частях раздела;
определяют (706) на главном узле таблицы коэффициент разбиения для разбиения раздела, причем коэффициент разбиения задается на основании информации о загрузке и представляет точку в разделе, в которой первая часть раздела включает в себя первый объем загрузки, а вторая часть раздела включает в себя второй объем загрузки;
отправляют (708) запрос от главного узла таблицы на узел обслуживания таблицы, при этом запрос на информацию о ключах указывает фактическую позицию в разделе, соответствующую коэффициенту разбиения;
определяют (710) при помощи узла обслуживания таблицы информацию о ключах, идентифицирующую фактическую позицию в разделе, соответствующую коэффициенту разбиения;
передают (712) информацию о ключах от узла обслуживания таблицы на главный узел таблицы;
формируют (714) на главном узле таблицы поток метаданных для каждого из дочерних разделов;
отправляют (716) запрос на разбиение от главного узла таблицы на узел обслуживания таблицы;
компонуют (718) на обслуживающем узле таблицы дочерние разделы из раздела;
прекращают (720) обслуживание раздела на узле обслуживания таблицы;
загружают и обслуживают (722) дочерние разделы на узле обслуживания таблицы;
отправляют (724) уведомление о завершении разбиения от узла обслуживания таблицы на главный узел таблицы; и
обновляют (726) схему разделов на основе раздела, разбиваемого на дочерние разделы, при этом схема разделов сохраняет сопоставления между множеством разделов и множеством узлов обслуживания таблицы, обслуживающих это множество разделов.
13. Один или более носителей для хранения информации на компьютере по п.12, в котором способ дополнительно содержит этапы, на которых назначают, по меньшей мере, один из дочерних разделов на второй узел обслуживания таблицы и обновляют схему разделов для указания того, что, по меньшей мере, один из дочерних разделов располагается на втором узле обслуживания таблицы.
14. Один или более носителей для хранения информации на компьютере по п.12, в котором этап прекращения обслуживания раздела содержит этап, на котором создают контрольную точку раздела, тем самым, сокращая объем журналов регистрации, которые должны воспроизводиться в течение перезагрузки раздела, причем этап создания контрольной точки раздела содержит этап, на котором эффективно укорачивают регистрационные потоки в течение контрольной точки атомарно создавая новый регистрационный поток, жестко увязывая экстенты после контрольной точки из старого регистрационного потока с новым регистрационным потоком, удаляя старый регистрационный поток, и переименовывая новый регистрационный поток с именем старого регистрационного потока.
15. Один или более носителей для хранения информации на компьютере по п.12, в котором этап компоновки дочерних разделов из раздела содержит этап, на котором эффективно формируют потоки дочерних разделов, атомарно жестко увязывая экстенты из потоков раздела, без дорогостоящего копирования данных.