Система и способ для создания выборочных моментальных снимков базы данных - заявка 2017104121 на патент на изобретение в РФ

1. Система (200) для создания выборочных моментальных снимков базы данных, хранящейся в виде одного или более сегментов (32, 131-134), причем сегмент содержит одну или несколько страниц памяти, причем данная система содержит:
- блок (203, 205) определения для определения, будет ли процесс (230, 232) моментального снимка обращаться к выбранному сегменту из одного или более сегментов,
- блок (222) присвоения для присвоения положительного статуса отображения вызываемому сегменту (210, 212), для которого блок определения определил, что к нему обращается процесс моментального снимка, и для присвоения отрицательного статуса отображения невызываемому сегменту, для которого блок определения определил, что к нему не обращается процесс моментального снимка, и
- блок (224) моментального снимка для создания моментального снимка, в котором создание моментального снимка содержит этап порождения процесса моментального снимка, адресное пространство которого содержит подмножество одного или более сегментов, причем сегмент, которому был присвоен отрицательный статус отображения, в это адресное пространство не отображается.
2. Система (200) по п.1, в которой блок (203, 205) определения выполнен с возможностью определения, будет ли процесс (230, 232) моментального снимка обращаться к выбранному сегменту (32, 131-134), до начала выполнения процесса моментального снимка.
3. Система (200) по п.1, в которой блок (203, 205) определения выполнен с возможностью определения во время выполнения активного процесса (232, 234) моментального снимка, будет ли активный процесс моментального снимка обращаться к выбранному сегменту (32, 131-134) в течение оставшегося времени своего выполнения.
4. Система (200) по п.1, в которой блок (222) присвоения содержит блок компиляции, выполненный с возможностью компиляции физического плана выполнения, предназначенного для выполнения процессом моментального снимка, при этом предпочтительно, чтобы скомпилированный физический план выполнения содержал команду снятия отображения для сегмента в той позиции физического плана выполнения, начиная с которой к данному сегменту уже не потребуется обращаться в течение оставшегося времени выполнения физического плана выполнения.
5. Система (200) по п.1, в которой присвоение положительного статуса отображения вызываемому сегменту содержит этап (S28) вызова функции madvise операционной системы с аргументами, содержащими адрес и размер вызываемого сегмента и параметр MADV_NORMAL, и/или присвоение отрицательного статуса отображения невызываемому сегменту содержит этап (S36) вызова функции madvise операционной системы с аргументами, содержащими адрес и размер невызываемого сегмента и параметр MADV_DONTFORK.
6. Способ для создания выборочных моментальных снимков базы данных, хранящейся в виде одного или более сегментов (32, 131-134), причем сегмент содержит одну или несколько страниц памяти, причем данный способ содержит следующие этапы:
- определение родительским процессом, будет ли процесс моментального снимка обращаться к выбранному сегменту из одного или более сегментов,
- присвоение (S22, S24, S28) родительским процессом положительного статуса отображения сегменту, если определено, что к сегменту обращается процесс моментального снимка, и/или присвоение родительским процессом отрицательного статуса отображения сегменту, если определено, что к сегменту не обращается процесс моментального снимка,
- создание (S38) родительским процессом моментального снимка, где создание моментального снимка содержит этап (S38) порождения процесса моментального снимка и где сегмент, которому был присвоен отрицательный статус отображения, в адресное пространство этого процесса моментального снимка не отображается.
7. Способ по п.6, в котором присвоение положительного статуса отображения вызываемому сегменту содержит:
- установку (S22) переменной статуса вызываемого сегмента в переменную статуса, объединенную с переменной маски оператором ИЛИ,
- вставку (S24) указателя на вызываемый сегмент в хэш-таблицу, и
- при вновь осуществляемой вставке (S26) указателя в хэш-таблицу - установку (S28) положительного статуса отображения, при этом создание родительским процессом моментального снимка содержит этап (S12) обновления переменной маски, который, в свою очередь, содержит этап (S12) циклического сдвига значений битов переменной маски.
8. Способ по п.7, в котором создание моментального снимка дополнительно содержит этап (S36) установки отрицательного статуса отображения для каждого сегмента из хэш-таблицы, переменная статуса которого дает значение 0 в объединении с переменной маски оператором И.
9. Способ по п.8, где указанный способ представляет собой способ копирования в контрольных точках, при этом процесс (230, 232) моментального снимка выполнен с возможностью записи выборочного моментального снимка базы данных, который содержит подмножество одного или более сегментов (32, 131-134), в постоянную память.
10. Способ по п.9, в котором определение родительским процессом, будет ли процесс (230, 232) моментального снимка обращаться к выбранному сегменту из одного или более сегментов (32, 131-134), содержит этап определения, был ли выбранный сегмент изменен за предыдущий интервал между контрольными точками.
11. Способ по п.8, где указанный способ представляет собой способ для поддержания системы базы данных с гибридом оперативной транзакционной обработки (OLTP) и оперативной аналитической обработки (OLAP), причем данный способ содержит следующие этапы:
- получение родительским процессом OLAP-запроса, и
- выполнение процессом (230) моментального снимка соответствующего OLAP-запроса.
12. Способ по п.11, который дополнительно содержит этап компиляции родительским процессом процесса моментального снимка на основе OLAP-запроса.
13. Способ по п.11, в котором определение родительским процессом того, будет ли процесс моментального снимка обращаться к выбранному сегменту, содержит этап создания родительским процессом физического плана выполнения, в котором, в частности, упоминаемому в этом физическом плане сегменту родительский процесс присваивает положительный статус отображения.
14. Способ по любому из пп.8-13, дополнительно содержащий следующие этапы:
- определение невызываемого сегмента, к которому процессу моментального снимка больше не потребуется обращаться, и
- снятие отображения невызываемого сегмента.
15. Компьютерно-читаемый носитель, на котором хранится программный код, содержащий команды для реализации способа по любому из пп.8-13.
Наверх