Управление оперативной памятью в реляционных системах баз данных

Педро Мехия Альварес, Марсело Леон Айяла, Сусана Ортега Сиснерос

 

Первое издание на английском языке: август 2022

Эта работа является объектом авторского права. Все права исключительно и исключительно лицензируются Издателем, независимо от того, касается ли материал всего или его части, в частности, права на перевод, перепечатку, повторное использование иллюстраций, декламацию, трансляцию, воспроизведение на микрофильмах или любым другим физическим способом, а также передачу или хранение и поиск информации, электронная адаптация, компьютерное программное обеспечение или аналогичная или непохожая методология, известная в настоящее время или разработанная в будущем.

Применение общих описательных наименований, зарегистрированных наименований, товарных знаков, знаков обслуживания и т.п. в этой публикации не означает, даже при отсутствии конкретного заявления, что такие наименования освобождаются от соответствующих законов и положений об охране и, следовательно, свободны для общего использования.

Издатель, авторы и редакторы могут с уверенностью предположить, что советы и информация, содержащиеся в этой книге, считаются верными и точными на дату публикации. Ни издатель, ни авторы, ни редакторы не дают гарантий, выраженных или подразумеваемых, в отношении материалов, содержащихся в данном документе, или в отношении любых ошибок или упущений, которые могли быть допущены. Издатель остаётся нейтральным в отношении претензий юрисдикции в отношении опубликованных карт и институциональной принадлежности.

Эти выходные данные Springer опубликованы зарегистрированной компанией Springer Nature Switzerland AG.

Зарегистрированный адрес компании: Gewerbestrasse 11, 6330 Cham, Швейцария.

ISBN 978-3-031-13294-0

SpringerLink

SpringerLink

SpringerBriefs in Computer Science

2022-08-13

 Состав исполнителей

Издания на английском языке
Авторы
Педро Мехия Альварес
Марсело Леон Айяла
Сусана Ортега Сиснерос

SpringerBriefs представляет собой краткие сводки передовых исследований и практических приложений в широком спектре отраслей. Данная серия компактных томов объёмом от 50 до 125 страниц охватывает широкий диапазон содержимого от профессионального до академического.

Типичные темы могут включать:

  • Своевременный отчёт о современных аналитических методах

  • Связующий мост между новыми результатами опубликованных в журнальных статьях исследований и контекстуального обзора литературы

  • Моментальный снимок горячей и только что возникшей темы

  • Подробное тематическое исследование или клинический пример

  • Представление основных понятий для понимания обучающимися, чтобы вносить независимый вклад

Краткие сводки позволяют авторам представлять свои идеи, а читателям усваивать их с минимальными временными затратами. Краткие сводки будут публиковаться как часть коллекции электронных книг Springer, которой пользуются миллионы пользователей по всему миру. Кроме того, Сводки будут доступны для индивидуальной покупки в печатном или электронном виде. Сводки характеризуются быстрым глобальным электронным распространением, стандартными контрактами на публикацию, простыми в использовании инструкциями по подготовке и форматированию рукописей, а также ускоренными графиками производства. Мы стремимся к публикации через 8-12 недель после принятия как запрошенные, так и добровольно предоставленные рукописи.

**Indexing: This series is indexed in Scopus, Ei-Compendex, and zbMATH **

 www.Springer.com

Эта книга посвящается моей дочери Каролине Мехия-Мойя

 Предисловие

Приложения для работы с Большими данными инициировали множество исследований по разработке систем поддержки исполнения с малой задержкой и анализом данных в реальном времени. Имеющиеся дисковые системы больше не способны обеспечивать современное реагирование по причине высокой задержки доступа к дискам. Низкая производительность в наши дни также становится препятствием для предоставляющих в режиме реального времени организаций (например, торги в реальном масштабе времени, реклама, социальные игры). Торговым организациям, скажем, требуется обнаруживать внезапные изменения рыночных цен и реагировать мгновенно (в течение нескольких миллисекунд), чего невозможно достичь при помощи традиционных дисковых систем обработки и хранения. Для соответствия высоким требованиям к реальному времени анализа массивных объёмов данных и обслуживания запросов на протяжении миллисекунд необходима система баз данных в оперативной памяти, которая постоянно хранит данные в памяти с произвольным доступом (RAM, random access memory - оперативной памяти).

В наши дни наблюдается тенденция к тому, что со временем оперативная память заменит диск, а роль дисков неизбежно должна свестись к архивной. Кроме того, многоядерные процессоры и доступность больших объёмов основной памяти по низкой цене создают новые прорывные моменты, делая возможным создание систем с оперативной памятью (in- memory), в которых основная часть базы данных размещается в памяти.

Точно так же были достигнуты значительные успехи в энергонезависимой памяти (NVM, энергонезависимой памяти), например, SSD и недавний запуск различных NVM, таких как память с фазовым переходом (PCM, phase change memory) {Прим. пер.: подробнее в нашем переводе Высокопроизводительные вычисления Больших данных Дхабалешвар К. Панда, Сяойи Лу и Дипти Шанкар, Copyright © 2022 Massachusetts Institute of Technology}. Число операций ввода/ вывода в секунду у таких устройств намного выше чем у жёстких дисков. Современные высокопроизводительные серверы обладают несколькими разъёмами (сокетами), каждый из которых обладает десятками и сотнями гигабайт динамической памяти (DRAM) и десятками ядер. А всего сервер способен обладать несколькими терабайт динамической памяти и сотнями ядер. Более того, в распределённых системах можно агрегировать память большого числа серверных узлов до такой степени, что такая агрегированная память способна хранить все данные для множества приложений крупного масштаба.

На протяжении последних нескольких десятилетий системы баз данных увеличивали ёмкость в основном за счёт достижений в области аппаратного обеспечения, доступности больших объёмов данных, сбора данных с беспрецедентной скоростью, новых приложений и тому подобного. Имеющийся ландшафт систем управления данными становится всё более фрагментированным в зависимости от областей приложений (например, полагающихся на реляционные данные, графические данные, потоковые данные приложений).

В деловых операциях предсказуемость в реальном масштабе времени и высокая скорость это не возможность, а необходимость. Следовательно, требуется применять любую возможность для повышения производительности, в том числе уменьшать зависимость от жёсткого диска, добавлять больше памяти для размещения большего объёма данных в памяти и даже развёртывать всю систему в памяти (in-memory), в которой все данные способны храниться в памяти.

Большинство поставщиков коммерческих баз данных в последнее время внедрили обработку баз данных в памяти с целью полной поддержки в памяти приложений крупного масштаба. Таким образом, действенное управление данными в памяти выступает потребностью для различных приложений. Тем не менее, управление данными памяти всё ещё пребывает в зачаточном состоянии и, скорее всего, будет развиваться на протяжении последующих нескольких лет.

В данной книге мы сосредоточимся на системах реляционных баз данных в оперативной памяти; за обзором дисковых систем читатели могут обратиться к [65].

CINVESTAV-Guadalajara, Mexico Педро Мехия Альварес

Oracle, Redwood City California, USA Марсело Леон Айяла

CINVESTAV-Guadalajara, Mexico Сусана Ортега Сиснерос

Глава 1. Системы памяти

Глава 2. Управление памятью

Глава 3. Виртуальная память

Глава 4. Базы данных и их система памяти

Глава 5. Базы данных: реальные образцы

 Благодарности

Мы хотели бы поблагодарить CONACYT и Секретариат инноваций, науки и технологий штата Халиско, Мексика, за их поддержку в проекте: Centro de Инновации, разработки, технологии и приложения Интернета вещей. Проект №Jal-2015-C03-272478.

Об авторах

Педро Мехия Альварес

Марсело Леон Айяла

Сусана Ортега Сиснерос

Об обложке

 Содержание

Вводная часть
Предисловие
Благодарности
Об авторах
Глава 1. Системы памяти
Архитектура фон Неймана
Память
Организация памяти
Технологии памяти
Регистр
Кэш
SRAM: Статическая память с произвольным доступом
DRAM: Динамическая память с произвольным доступом
Флэш память
NVM: Энергонезависимая память
Магнитные диски
NUMA: Архитектура доступа к неоднородной памяти
Глава 2. Управление памятью
Основа
Привязка адресов
Логическое и физическое адресное пространство
Динамическая загрузка
Динамическая компоновка и общие библиотеки
Подкачка
Стандартная подкачка
Управление кэшированием
Пропуски кэша
Запись в кэш
Ассоциативность кэша
Блочная замена
Множество уровней кэша
Непрерывное выделение памяти
Фрагментация
Сегментирование
Разбиение на страницы
Аппаратная поддержка
Разделяемая память
Организация страниц памяти
Иерархическая организация страниц
Хэшированная таблица страниц
Обратная таблица страниц
Защита памяти
Защита при непрерывном выделении памяти
Постраничная защита памяти
Глава 3. Виртуальная память
Базовые понятия
Страничный доступ
TLB: Резервный буфер перевода
Вызовы виртуализации
Запрос страниц
Базовые понятия
Вопросы производительности
Замена страниц
Базовая замена страниц
FIFO и оптимальная замена страниц
LRU замена страниц
Замена страниц приближения LRU
Алгоритм второй возможности
Алгоритм расширенной второй возможности
Замена страниц на основе подсчёта
Буферизация страниц
Приложения и замена страниц
Выделение кадров
Алгоритмы выделения
Область выделения
Вопросы NUMA
Защита памяти в виртуальной памяти
Пробуксовка
Модель рабочего набора
Частота отказа страниц
Общая инфраструктура для управления памятью
Размещение блока
Доступ к блоку
Замена блока при промахе в кэше
Одновременность в иерархии памяти
Прочие вопросы
Предварительная выборка страниц
Размер страницы
Достижение TLB
Обратная таблица страниц
Структура программы
Блокирование страниц
Файлы соответствия памяти
Выделение памяти ядра
Метод близнецов
Выделение плит
Виртуальные машины
Примеры реальной практики управления аппаратной памятью
Управление памятью в архитектуре IA-32
Управление памятью в архитектуре AMD64
Сегментация AMD64
Подкачка страниц AMD64
Смешанные сегментация и подкачка страниц AMD64
Глава 4. Базы данных и их система памяти
Система управления базой данных
Команды языка определения данных
Обработка запроса
Управление хранением и буфером
Обработка транзакции
Процессор запросов
Базы данных в памяти
Типы баз данных
Модель объекта
Базы данных NoSQL в памяти
Реляционная модель
Структуры хранения реляционных баз данных
Таблицы
Индексы
Интерфейс пользователя
Рабочая нагрузка базы данных
Управление хранением базы данных
Данные во внешнем хранилище
Организация файла
Индексация
Кластерная организация индекса
Составной ключ поиска
Структуры индекса данных
Хранение данных: диски и файлы
Иерархия памяти
Диски
RAID
Чередование данных
Избыточность
Уровни избыточности
Выбор уровня RAID
Управление дисковым пространством
Управление буфером
Политики замены буфера
Сопоставление управления буфером в DBMS и в ОС
Реализация хранения данных
Реализация файла кучи
Связный список страниц
Каталог страниц
Форматы страниц
Записи фиксированной длины
Записи переменной длины
Форматы записи
Записи фиксированной длины
Записи переменной длины
Структурированные деревом индексы
ISAM (индексно- последовательный метод доступа)
Вопросы производительности индексов ISAM
B+ деревья
Индексы на основе хэша
Статическое хэширование
Расширенное хэширование
Линейное хэширование
Глава 5. Базы данных: реальные образцы
База данных в памяти TimesTen
Обзор
Управление памятью
Блоки памяти
Куча TimesTen
Форматы записей
База данных MySQL
Основа
Архитектура
Механизмы хранения
Системы баз данных H-Store / VoltDB
Обработка транзакции
Перекрытие данных
Устойчивость к отказам
Система базы данных Hekaton
Управление одновременностью множества версий
Bw-Tree без защёлки
Siberia в Hekaton
Системы баз данных HyPer/ScyPer
Моментальный снимок в HyPer
Компиляция с осознанием регистрации
Индексация ART
Система базы данных SAP HANA
Реляционные хранилища
Богатая поддержка аналитики данных
Временной запрос
Дополнение A. Ссылки
Указатель