Конференция VLDB (Very Large Data Bases, www.vldb.org), как несложно понять из названия, посвящена базам данных. Очень большим базам данных. О чем её название не говорит, так это о том, что там регулярно выступают очень серьезные люди. Много ли вы знаете конференций, где почти каждый год докладывается Майкл Стоунбрекер (Michael Stonebraker, создатель Vertica, VoltDB, PostgreSQL, SciDB)? Не думали ли вы, что было бы здорово узнать, над чем такие люди работают сейчас, чтобы через несколько лет, когда новая база разорвет рынок, не грызть локти?
VLDB — именно та конференция, которую вам нужно посетить, если вы думаете о будущем.
Она вам не очень поможет, если вы выбираете из существующих баз. Там есть небольшая доля industrial докладов (Microsoft, Oracle, Teradata, SAP Hana, Exadata, Tableau (!)), но самое интересное — это исследовательские доклады от университетов. Xотя очень быстро обнаруживается, что в командах университетов есть один-два человека, работающих на Google, Facebook, Alibaba… или перешедших туда сразу после подачи статьи.
Надеюсь, мне удалось вас базово заинтересовать, а теперь давайте пройдемся, собственно, по докладам.
Описать все 232 доклада не буду и пытаться, а постараюсь выделить ключевые группы, и для каждой группы продемонстрировать несколько выдающихся представителей.
1. Базы будущего
Очень скоро у нас появится дешевая энергонезависимая память (совмещение RAM+Hard Drive). Оперативная память, ядра и видеокарты стремительно дешевеют. Какими должны быть базы будущего, чтобы выиграть от всего этого технологического великолепия? Какие новые проблемы возникают?
1.1 Distributed Join Algorithms on Thousands of Cores
Понятно по названию: это исследование работы алгоритмов распределенного Join на системах с тысячами ядер.
1.2 Adaptive Work Placement for Query Processing on Heterogeneous Computing Resources
Распределение задач по разнородному кластеру.
1.3 SAP HANA Adoption of Non-Volatile Memory
Первые эксперименты с энергонезависимой памятью.
2. Транзакции в распределенных (кластерных) базах
Хорошо и легко жить на одном сервере. А вдруг базу нужно развернуть в кластер? Вдруг одну базу нужно расколоть на десятки мелких, согласно микросервисной архитектуре? Как быть с транзакциями?
2.1 An Evaluation of Distributed Concurrency Control
Статья Стоунбрекера. Просто и честно — взяли и написали с нуля базу, чтобы сравнить с полдюжины алгоритмов распределенных транзакций для OLTP-систем. Никакого пиара и рекламы: просто честные графики и асимптотика для разных сценариев.
2.2 The End of a Myth: Distributed Transactions Can Scale
Очень оптимистичная заявка о возможности масштабировать производительность распределенных транзакций.
3. Подмена хранения
Модный подход сейчас — подменить у старых баз инфраструктуру хранения и подложить туда что-то быстрое. Например, in-memory key-value хранилище. Или, например, сразу два параллельных хранилища — строчное и колоночное. Или шесть хранилищ на разных физических машинах...
3.1 Fast Scans on Key-Value Stores
Что нужно сделать для решения OLAP-задач на key-value базе.
3.2 PaxosStore: High-availability Storage Made Practical in WeChat
Статья о том, как устроены базы данных у TenCent (WeChat). 800 миллионов активных пользователей — расскажите им про высокую нагрузку.
3.3 Parallel Replication across Formats in SAP HANA for Scaling Out Mixed OLTP/OLAP Workloads
OLTP + OLAP нагрузка на одной базе.
4. Оптимизация запросов
Насколько я понял, главный тренд сейчас — оптимизация запросов в распределенных системах. В идеале — на лету, с подстройкой/перестройкой плана прямо по ходу поступления данных.
4.1 Runtime Optimization of Join Location in Parallel Data Management Systems
4.2 SquirrelJoin: Network-Aware Distributed Join Processing with Lazy Partitioning
Вы считаете запрос на кластере, кластер нагружен параллельными задачами, причем неравномерно. Что делать, если отдельные узлы начинают работать явно медленнее других? Ответ — в статье.
5. Визуализация и анализ данных
5.1 ASAP: Prioritizing Attention via Time Series Smoothing
Как сгладить графики, убрав шум, но оставив аномалии.
5.2 Effortless Data Exploration with zenvisage: An Expressive and Interactive Visual Analytics System
Очень любопытный интерактивный инструмент.
6. Человеко-машинный интерфейс :)
6.1 Data Vocalization: Optimizing Voice Output of Relational Data
"Data Vocalization" звучит совершенно фантастически, но суть проста: как сжать выборку, выданную запросом, в ограниченный набор слов, чтобы вы дослушали Siri, а не разбили телефон.
6.2 Provenance for natural language Queries
<Лучшая статья VLDB 2017>. Да, именно так. Про то, как писать запросы к данным на естественном языке. Точнее так: как транслировать вопросы на естественном языке в запросы к данным, а результаты — обратно на человеческий язык.
Напоследок
Собственно, на этом всё. Казалось бы немного: я собрал тут для вас всего 14 статей. Но мне было бы очень интересно узнать, сколько людей реально прочтут их все до конца. Если возьмётесь, напишите в комментариях, сколько времени это заняло. Для тех, кто смелый, по ссылке — оставшиеся 218 статей: http://confer.csail.mit.edu/vldb2017/papers. И вот фото с доклада организаторов конференции.
PS. VLDB 2017 была в Мюнхене, для участников был маленький Октоберфест (хороший :)). Следующая VLDB будет в Бразилии, вливайтесь! Я постараюсь пройти с докладом (в 2015 не смог).
Автор: Николай Голов