mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Updated roadmap
This commit is contained in:
parent
eb6db2bb54
commit
d2c39b40d5
@ -1,8 +1,8 @@
|
||||
# Планы разработки ClickHouse 2020.
|
||||
|
||||
Здесь собраны важные задачи на 2020 год. Также многие из них присутствуют в GitHub Issues или (редко) в Яндекс.Трекере, а также (очень редко) в Яндекс.Goals. Мы предпочитаем использовать Яндекс.Трекер только для секретных задач, а все публичные задачи размещать в GitHub Issues для того, чтобы сделать разработку более открытой наружу. В любом случае, для работы над задачами, таск-трекеры уступают в удобстве plaintext файлу.
|
||||
Здесь собраны важные задачи на 2020 год. Многие из них присутствуют в GitHub Issues. Данный текст следует рассматривать как рабочий черновик со сводкой и кратким описанием задач, ссылками и материалами для быстрого доступа на одной странице. Классификация задач условная.
|
||||
|
||||
Классификация задач условная и за её основу взята известная [классификация животных](https://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D0%B6%D0%B8%D0%B2%D0%BE%D1%82%D0%BD%D1%8B%D1%85_(%D0%91%D0%BE%D1%80%D1%85%D0%B5%D1%81)).
|
||||
Так как ClickHouse - open-source продукт, мы хотим, чтобы рабочий процесс был также максимально открытым. В связи с этим, вам следует ожидать наличия на данной странице несколько больше деталей описания рабочего процесса, чем вы могли бы предположить - настолько близко, насколько рабочий процесс видят разработчики. Так как неотъемлимой частью процесса разработки является исправление недостатков продукта и улучшение качества кода, на данной странице вы найдёте весьма подробные описания таких деталей. Для других open-source продуктов такой подход к разработке обычно нехарактерен. Благодаря тому, что для каждой задачи указаны её зависимости, вы сможете понять, какие подготовительные работы требуются, что позволяет более точно понимать сроки реализации.
|
||||
|
||||
|
||||
## 1. Хранение данных, индексация.
|
||||
@ -14,7 +14,7 @@
|
||||
Задача "normalized z-Order curve" в перспективе может быть полезна для БК и Метрики, так как позволяет смешивать OrderID и PageID и избежать дублирования данных.
|
||||
В задаче также вводится способ индексации путём обращения функции нескольких аргументов на интервале, что имеет смысл для дальнейшего развития.
|
||||
|
||||
Изначально делал [Андрей Чулков](https://github.com/achulkov2), ВШЭ, теперь доделывает [Ольга Хвостикова](https://github.com/stavrolia), но задача прокрастинирована из-за задачи 25.9. Сейчас оказалось, что задача 25.9 тоже не готова. Будем надеятся на реализацию к концу ноября. Впрочем, [Андрей Чулков](https://github.com/achulkov2) скоро выйдет на работу стажёром на пол ставки и сможет помочь её доделать.
|
||||
Изначально делал [Андрей Чулков](https://github.com/achulkov2), ВШЭ, теперь доделывает [Ольга Хвостикова](https://github.com/stavrolia), но сроки немного сдвинуты из-за задачи 25.9. Будем надеятся на реализацию к концу ноября. Впрочем, [Андрей Чулков](https://github.com/achulkov2) скоро выйдет на работу стажёром на пол ставки и сможет помочь её доделать.
|
||||
|
||||
### 1.2. Wait-free каталог баз данных.
|
||||
|
||||
@ -86,7 +86,7 @@
|
||||
|
||||
### 1.11. Виртуальная файловая система.
|
||||
|
||||
Нужно для Яндекс.Облака. Делает Александр Бурмак, Яндекс.Облако, а также Олег Ершов, ВШЭ и Яндекс.
|
||||
Нужно для Яндекс.Облака. Делает Александр, Яндекс.Облако, а также Олег Ершов, ВШЭ и Яндекс.
|
||||
|
||||
ClickHouse использует для хранения данных локальную файловую систему. Существует сценарий работы, в котором размещение старых (архивных) данных было бы выгодно на удалённой файловой системе. Если файловая система POSIX совместимая, то это не составляет проблем: ClickHouse успешно работает с Ceph, GlusterFS, MooseFS. Также востребованным является сценарий использования S3 (из-за доступности в облаке) или HDFS (для интеграции с Hadoop). Но эти файловые системы не являются POSIX совместимыми. Хотя для них существуют FUSE драйверы, но скорость работы сильно страдает и поддержка неполная.
|
||||
|
||||
@ -95,7 +95,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
### 1.12. Экспериментальная реализация VFS поверх S3 и HDFS.
|
||||
|
||||
Нужно для Яндекс.Облака. Требует 1.11. Желательно 1.6 и 1.18.
|
||||
Делает Александр Бурмак, Яндекс.Облако (сначала часть для S3), а также Олег Ершов, ВШЭ и Яндекс.
|
||||
Делает Александр, Яндекс.Облако (сначала часть для S3), а также Олег Ершов, ВШЭ и Яндекс.
|
||||
|
||||
### 1.13. Ускорение запросов с FINAL.
|
||||
|
||||
@ -156,7 +156,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 2.8. Декларативный парсер запросов.
|
||||
|
||||
Низкий приоритет. Задачу хочет сделать [Иван Лежанкин](https://github.com/abyss7) в свободное время, но за последний год никаких поползновений не видно.
|
||||
Низкий приоритет. Задачу хочет сделать [Иван Лежанкин](https://github.com/abyss7) в свободное время, но пока ничего нет.
|
||||
|
||||
### 2.9. Логгировние в format-стиле.
|
||||
|
||||
@ -201,7 +201,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 3.3. Исправить катастрофически отвратительно неприемлимый поиск по документации.
|
||||
|
||||
[Иван Блинков](https://github.com/blinkov/) - очень хороший человек. Сам сайт документации основан на треш-технологиях, которые трудно исправить.
|
||||
[Иван Блинков](https://github.com/blinkov/) - очень хороший человек. Сам сайт документации основан на технологиях, не удовлетворяющих требованиям задачи, и эти технологии трудно исправить.
|
||||
|
||||
### 3.4. Добавить японский язык в документацию.
|
||||
|
||||
@ -226,7 +226,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 4.3. Ограничение числа одновременных скачиваний с реплик.
|
||||
|
||||
Изначально делал Олег Алексеенков, но решение оказалось неудачным, хотя там не так уж много доделывать.
|
||||
Изначально делал Олег Алексеенков, но пока решение не готово, хотя там не так уж много доделывать.
|
||||
|
||||
### 4.4. Ограничение сетевой полосы при репликации.
|
||||
|
||||
@ -257,14 +257,14 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 5.5. LTS релизы.
|
||||
|
||||
Требует 7.5. Задачу хочет Метрика, Облако, БК, Маркет и Altinity. Первой LTS версией уже стала версия 19.14. Хотя мы не рекомендуем использовать LTS версии в продакшене, пользователи найдут их полезными для себя.
|
||||
Требует 7.5. Задачу хочет Метрика, Облако, БК, Маркет и Altinity. Первой LTS версией уже стала версия 19.14.
|
||||
|
||||
|
||||
## 6. Инструментирование.
|
||||
|
||||
### 6.1. Исправления сэмплирующего профайлера запросов.
|
||||
|
||||
[Никита Лапков](https://github.com/laplab), ноябрь 2019. Может не сделать, тогда будет делать Алексей Миловидов.
|
||||
Михаил Филимонов, Altinity. Ноябрь 2019.
|
||||
|
||||
### 6.2. Добавление memory profiler.
|
||||
|
||||
@ -311,7 +311,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
### 7.2. LLVM в submodules.
|
||||
|
||||
Уже добавлено, но старой версии, и поэтому не используется. Надо обновить.
|
||||
Георгий Кондратьев. Возможно, он не сможет сделать эту задачу, тогда будет делать Алексей Миловидов.
|
||||
Георгий - очень опытный разработчик, либо будет делать Алексей Миловидов.
|
||||
|
||||
### 7.3. Обновление Poco.
|
||||
|
||||
@ -328,7 +328,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 7.6. Правильный статистический тест для comparison mode в clickhouse-performance-test.
|
||||
|
||||
Задачу начал делать Дмитрий Рубашкин. Сейчас продолжает [Александр Кузьменков](https://github.com/akuzm).
|
||||
Задачу начал делать Дмитрий Рубашкин (ВШЭ). Сейчас продолжает [Александр Кузьменков](https://github.com/akuzm).
|
||||
|
||||
### 7.7. Доделать тесты под MSan.
|
||||
|
||||
@ -337,7 +337,7 @@ ClickHouse использует небольшое подмножество фу
|
||||
|
||||
### 7.8. Добавить clang-tidy.
|
||||
|
||||
Уже есть PVS-Studio, но этого недостаточно.
|
||||
Уже есть PVS-Studio. Мы очень довольны, но этого недостаточно.
|
||||
|
||||
### 7.9. Проверки на стиль имён с помощью clang-tidy.
|
||||
|
||||
@ -390,7 +390,7 @@ Wolf Kreuzerkrieg. Возможно, его уже не интересует э
|
||||
|
||||
### 7.15. Замена libressl обратно на openssl.
|
||||
|
||||
Поводом использования libressl послужило желание Константина podshumok Игнатова из QRator и то, что тогда openssl был опозорен и libressl считалась адекватной альтернативой. Но сейчас ситуация изменилась - openssl продолжает развиваться, а libressl не особо, и можно спокойно менять обратно.
|
||||
Поводом использования libressl послужило желание нашего хорошего друга из известной компании несколько лет назад. Но сейчас ситуация состоит в том, что openssl продолжает развиваться, а libressl не особо, и можно спокойно менять обратно.
|
||||
|
||||
### 7.16. tzdata внутри бинарника.
|
||||
|
||||
@ -470,12 +470,12 @@ Fuzzing тестирование - это тестирование случай
|
||||
|
||||
### 7.25. Синхронизация релизов в Аркадию.
|
||||
|
||||
Изначально занимался Олег Алексеенков. Сейчас он перешёл работать в Яндекс.Морду, но обещает продолжать синхронизацию.
|
||||
Затем, возможно, [Иван Лежанкин](https://github.com/abyss7). Но сейчас приостановлено, так как Максим Ахмедов должен исправить регрессию производительности в анализе индекса.
|
||||
Изначально занимался Олег Алексеенков. Сейчас он перешёл работать в дружественный отдел, но обещает продолжать синхронизацию.
|
||||
Затем, возможно, [Иван Лежанкин](https://github.com/abyss7). Но сейчас приостановлено, так как Максим из YT должен исправить регрессию производительности в анализе индекса.
|
||||
|
||||
### 7.26. Побайтовая идентичность репозитория с Аркадией.
|
||||
|
||||
Команда DevTools. Фактически никто ничего не делает.
|
||||
Команда DevTools. Прогресс по задаче под вопросом.
|
||||
|
||||
### 7.27. Запуск автотестов в Аркадии.
|
||||
|
||||
@ -523,8 +523,7 @@ Fuzzing тестирование - это тестирование случай
|
||||
|
||||
### 7.37. Разобраться с repo.yandex.ru.
|
||||
|
||||
Есть жалобы на скорость загрузки. Подозрение, что repo.yandex.ru не является нормальным CDN. Отсутствует простой доступ к мониторингу и логам.
|
||||
Очень редко бывает нужно удалить пакет, но сделать это можно только через одного человека.
|
||||
Есть жалобы на скорость загрузки и неудобство maintenance, operations, visibility.
|
||||
|
||||
|
||||
## 8. Интеграция с внешними системами.
|
||||
@ -626,12 +625,12 @@ ClickHouse предоставляет возможность обратитьс
|
||||
|
||||
### 10.1. Исправление зависания в библиотеке доступа к YT.
|
||||
|
||||
Библиотека для доступа к YT обладает катастрофически отвратительно неприемлимым поведением и не переживает учения.
|
||||
Библиотека для доступа к YT не переживает учения.
|
||||
Нужно для БК и Метрики. Поиск причин - [Александр Сапин](https://github.com/alesapin). Дальшейшее исправление возможно на стороне YT.
|
||||
|
||||
### 10.2. Исправление SIGILL в библиотеке доступа к YT.
|
||||
|
||||
Код YT зачем-то использует SIGILL вместо abort. Это, опять же, происходит при учениях.
|
||||
Код YT использует SIGILL вместо abort. Это, опять же, происходит при учениях.
|
||||
Нужно для БК и Метрики. Поиск причин - [Александр Сапин](https://github.com/alesapin). Дальшейшее исправление возможно на стороне YT.
|
||||
|
||||
### 10.3. Возможность чтения данных из статических таблиц в YT словарях.
|
||||
@ -640,7 +639,7 @@ ClickHouse предоставляет возможность обратитьс
|
||||
|
||||
### 10.4. Словарь из YDB (KikiMR).
|
||||
|
||||
Нужно для Метрики, а делать будет таинственный незнакомец из команды KikiMR. Или он сейчас это прочитает и скажет "я никогда не буду делать эту задачу".
|
||||
Нужно для Метрики, а делать будет таинственный незнакомец из команды KikiMR (под вопросом).
|
||||
|
||||
### 10.5. Закрытие соединений и уменьшение числа соединений для MySQL и ODBC.
|
||||
|
||||
@ -658,7 +657,7 @@ ClickHouse предоставляет возможность обратитьс
|
||||
|
||||
### 10.9. Уменьшение блокировок для cache словарей за счёт одновременных запросов одного и того же.
|
||||
|
||||
Нужно для БК, но на самом деле они так просто думают, а все проблемы из-за низко-качественной библиотеки для доступа в YT.
|
||||
Нужно для БК, но мотивация задачи находится под вопросом, так как есть рабочее предположение о том, что данная задача не устраняет причину проблемы.
|
||||
|
||||
### 10.10. Возможность использования старых значений из cache словаря пока они перезапрашиваются.
|
||||
|
||||
@ -711,7 +710,7 @@ ClickHouse предоставляет возможность обратитьс
|
||||
|
||||
### 11.5. Поддержка TLS в clickhouse-cpp.
|
||||
|
||||
Библиотеку clickhouse-cpp разрабатывал Павел Артёмкин в свободное время.
|
||||
А знаете ли вы, что библиотеку clickhouse-cpp разрабатывал один хороший человек в свободное время?
|
||||
|
||||
### 11.6. Интеграционные тесты clickhouse-cpp.
|
||||
|
||||
@ -792,7 +791,7 @@ zhang2014
|
||||
|
||||
### 14.5. Поддержка задания множества как массива в правой части секции IN.
|
||||
|
||||
Василий Немков, Altinity, делал эту задачу, но зачем-то забросил её.
|
||||
Василий Немков, Altinity, делал эту задачу, но временно приостановил работу над ней в пользу других задач.
|
||||
|
||||
### 14.6. Глобальный scope для WITH.
|
||||
|
||||
@ -885,7 +884,7 @@ zhang2014
|
||||
|
||||
### 16.1. DateTime64.
|
||||
|
||||
Василий Немков.
|
||||
Василий Немков, Altinity, декабрь 2019.
|
||||
|
||||
### 16.2. Тип данных для JSON.
|
||||
|
||||
@ -975,7 +974,7 @@ ClickHouse не является geospatial СУБД. Тем не менее, в
|
||||
|
||||
### 19.3. Подключение YT Cypress или YDB как альтернативы ZooKeeper.
|
||||
|
||||
Hold. Полезно для Яндекс.Облака и БК, но есть риски, что будет вредно, а не полезно.
|
||||
Hold. Полезно для заказчиков внутри Яндекса, но есть риски.
|
||||
|
||||
### 19.4. internal_replication = 'auto'.
|
||||
|
||||
@ -1057,7 +1056,7 @@ Hold. Полезно для Яндекс.Облака и БК, но есть р
|
||||
|
||||
### 21.8.1. Отдельный аллокатор для кэшей с ASLR.
|
||||
|
||||
В прошлом году задачу пытался сделать Данила Кутенин с помощью lfalloc из Аркадии и mimalloc из Microsoft, но оба решения оказались неудачными. Успешная реализация задачи 21.8 отменит необходимость в этой задаче, поэтому холд.
|
||||
В прошлом году задачу пытался сделать Данила Кутенин с помощью lfalloc из Аркадии и mimalloc из Microsoft, но оба решения не были квалифицированы для использования в продакшене. Успешная реализация задачи 21.8 отменит необходимость в этой задаче, поэтому холд.
|
||||
|
||||
### 21.9. Исправить push-down выражений с помощью Processors.
|
||||
|
||||
@ -1119,7 +1118,7 @@ Constraints позволяют задать выражение, истиннос
|
||||
### 21.19. Оптимизация сортировки.
|
||||
|
||||
Василий Морозов, Арслан Гумеров, Альберт Кидрачев, ВШЭ.
|
||||
В прошлом году задачу начинал делать Евгений Правда, ВШЭ, но почти полностью не сделал её.
|
||||
В прошлом году задачу начинал делать другой человек, но не добился достаточного прогресса.
|
||||
|
||||
1. Оптимизация top sort.
|
||||
|
||||
@ -1204,10 +1203,12 @@ zhang2014.
|
||||
|
||||
[Виталий Баранов](https://github.com/vitlibar), почти всё готово.
|
||||
|
||||
### 22.12. Исправление катастрофически отвратительно неприемлимо низкой производительности чтения из Kafka.
|
||||
### 22.12. Исправление низкой производительности чтения из Kafka.
|
||||
|
||||
[Иван Лежанкин](https://github.com/abyss7).
|
||||
|
||||
Для ClickHouse нехарактерно наличие кода, обладающего столь низкой производительностью. Практики разработки не подразумевают, что такой код должен попасть в продакшен без надлежащего тестирования производительности.
|
||||
|
||||
### 22.13. Посмотреть, почему не работают некоторые collations.
|
||||
|
||||
[Иван Лежанкин](https://github.com/abyss7), совмещается с 7.1.
|
||||
@ -1218,9 +1219,11 @@ zhang2014.
|
||||
|
||||
[Иван Лежанкин](https://github.com/abyss7), если он не сдастся.
|
||||
|
||||
### 22.16. Исправление катастрофически отвратительно неприемлимо низкой производительности кодека DoubleDelta.
|
||||
### 22.16. Исправление низкой производительности кодека DoubleDelta.
|
||||
|
||||
Василий Немков, Altinity - сейчас старательно динамит эту задачу.
|
||||
Василий Немков, Altinity - временно приостановлено, но намерения остаются в силе.
|
||||
|
||||
Мы считаем важным, что код в ClickHouse содержит разумные оптимизации, основанные на анализе производительности. Но иногда бывают досадные исключения.
|
||||
|
||||
### 22.17. Консистентно работающий POPULATE для MaterializedView.
|
||||
|
||||
@ -1264,7 +1267,7 @@ zhang2014.
|
||||
|
||||
### 22.28. Изучить и исправить поведение работы с Kafka при ребалансировке.
|
||||
|
||||
[Иван Лежанкин](https://github.com/abyss7), если он не сдастся.
|
||||
[Иван Лежанкин](https://github.com/abyss7).
|
||||
|
||||
|
||||
## 23. Default Festival.
|
||||
@ -1288,7 +1291,7 @@ zhang2014.
|
||||
|
||||
### 23.5. Включение compile_expressions.
|
||||
|
||||
Требует 7.2. Задачу изначально делал Денис Скоробогатов, ВШЭ и Яндекс, затем доделывал Алексей Миловидов, а затем [Александр Сапин](https://github.com/alesapin).
|
||||
Требует 7.2. Задачу изначально на 99% сделал Денис Скоробогатов, ВШЭ и Яндекс. Остальной процент доделывал Алексей Миловидов, а затем [Александр Сапин](https://github.com/alesapin).
|
||||
|
||||
### 23.6. Включение учёта порядка столбцов в CSV.
|
||||
|
||||
@ -1308,7 +1311,7 @@ zhang2014.
|
||||
|
||||
### 23.10. Включение mlock бинарника.
|
||||
|
||||
Возможность mlock бинарника сделал Олег Алексеенков. Поможет, когда на серверах кроме ClickHouse работает много треш-программ.
|
||||
Возможность mlock бинарника сделал Олег Алексеенков. Поможет, когда на серверах кроме ClickHouse работает много посторонних программ (мы иногда называем их в шутку "треш-программами").
|
||||
|
||||
|
||||
## 24. Экспериментальные задачи.
|
||||
@ -1544,25 +1547,25 @@ Amos Bird, но его решение слишком громоздкое и п
|
||||
|
||||
### 25.2. Вычитка и выкладка статьи про обфускацию данных на английском.
|
||||
|
||||
Эми Жанель Кришниевски, Александр Казаков, Алексей Миловидов, ноябрь 2019.
|
||||
Эми, Александр Казаков, Алексей Миловидов, ноябрь 2019.
|
||||
|
||||
### 25.3. Подготовка статьи "Секреты оптимизации производительности ClickHouse".
|
||||
|
||||
Алексей Миловидов, Леонид Клюев.
|
||||
Алексей Миловидов, Леонид.
|
||||
|
||||
### 25.4. Подготовка статьи "Профайлер запросов: трудный путь".
|
||||
|
||||
Алексей Миловидов, Леонид Клюев.
|
||||
Алексей Миловидов, Леонид.
|
||||
|
||||
### 25.5. Подготовка статьи "Тестирование ClickHouse, которое мы заслужили".
|
||||
|
||||
### 25.6. Перевод этих статей на английский.
|
||||
|
||||
Требует 25.3, 25.4, 25.5. Эми Жанель Кришниевски
|
||||
Требует 25.3, 25.4, 25.5. Эми
|
||||
|
||||
### 25.7. Перевод статьи Данилы Кутенина на английский.
|
||||
|
||||
Эми Жанель Кришниевски
|
||||
Эми
|
||||
|
||||
### 25.8. Выступление keynote на BDTC.
|
||||
|
||||
@ -1576,7 +1579,7 @@ Amos Bird, но его решение слишком громоздкое и п
|
||||
|
||||
### 25.10. Митапы в России и Беларуси: Москва x2 + митап для разработчиков или хакатон, Санкт-Петербург, Минск, Нижний Новгород, Екатеринбург, Новосибирск и/или Академгородок, Иннополис или Казань.
|
||||
|
||||
Екатерина Миназова - организация
|
||||
Екатерина - организация
|
||||
|
||||
### 25.11. Митапы зарубежные: восток США (Нью Йорк, возможно Raleigh), возможно северо-запад (Сиэтл), Китай (Пекин снова, возможно митап для разработчиков или хакатон), Лондон.
|
||||
|
||||
@ -1594,7 +1597,7 @@ Amos Bird, но его решение слишком громоздкое и п
|
||||
|
||||
Алексей Миловидов и все подготовленные докладчики
|
||||
|
||||
### 25.15. Конференции зарубежные: Percona, DataOps, возможно Big Data Warsaw, попытка попасть на более крупные.
|
||||
### 25.15. Конференции зарубежные: Percona, DataOps, попытка попасть на более крупные.
|
||||
|
||||
Алексей Миловидов и все подготовленные докладчики
|
||||
|
||||
@ -1649,4 +1652,4 @@ Amos Bird, но его решение слишком громоздкое и п
|
||||
|
||||
### 25.27. Обновить сайт ClickHouse.
|
||||
|
||||
Иван Блинков. Есть риск, что станет хуже.
|
||||
Иван Блинков. Есть риски.
|
||||
|
Loading…
Reference in New Issue
Block a user