From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: devel@lists.altlinux.org References: <202008191221.13871.asy@altlinux.org> <20210207152126.GA22007@altlinux.org> <202102072000.27374.asy@altlinux.org> <466e44c3-6fa5-8f01-d8b7-acc3b9372eed@basealt.ru> <980c85da-6b5c-2b10-0179-b44889964fae@gmail.com> <218663d4-d50d-2e8f-209e-4e2e0e7b633b@basealt.ru> <3144a4d4-7e07-3cfe-0384-aa6be9211084@basealt.ru> From: Anton Farygin Organization: BaseALT Message-ID: <3e95e51b-326c-5e43-79b3-462138875de9@basealt.ru> Date: Fri, 12 Feb 2021 20:25:28 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [devel] =?utf-8?b?0JXRidC1INGA0LDQtyDQviDQv9GA0LDQstC40LvRjNC9?= =?utf-8?b?0L7QvCDQsNC90LDQu9C+0LPQtSBwYWNrYWdlcy5hbHRsaW51eC5vcmc=?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Feb 2021 17:25:33 -0000 Archived-At: List-Archive: List-Post: On 12.02.2021 12:38, Eugene Prokopiev wrote: > вт, 9 февр. 2021 г. в 11:26, Anton Farygin : > >>> curl >>> https://repodb.basealt.space/package_info?name=kernel-image-un-def |jq >>> >>> Мне понравилось. Отдаёт всё очень шустро. :-) >>> Использует rpmlib или данные лежат в какой-то базе? >> Лежит в clickhouse. >> >> в rpmlib невозможно в принципе держать данные для почти трёх миллионов >> пакетов. > Антон, а нельзя ли это переложить в elasticsearch и за счет некоторого > снижения производительности и/или увеличения требований к железу (вряд > ли критичному) получить возможность писать запросы к этой БД через > довольно удобный DSL over HTTP и рисовать в Kibana (и не только) > различные дашборды Мне не нравится эластик, Его практически невозможно упакетить. Поэтому после некоторых экспериментов мы взяли clickhouse и сейчас залили туда почти три миллиона пакетов (метаданных) включая списки файлов с контрольными суммами и правами. Т.е. - все метаданные, которые можно было взять из rpm. при этом структура базы содержит ошибки, которые нужно исправить перед публикацией. Ну и надо переосмыслить некоторые моменты с хранением. Например, мне не нравится как мы храним информацию о том, какой пакет в каком репозитории находится/находился. Сейчас это делается влоб - в отдельной таблице лежат пары . А т.к. мы ничего не удаляем и добавляем в базу ежедневные срезы всех репозиториев (если менялись), то эта таблица пухнет и сейчас в ней около 500 миллионов записей. Благодаря clickhouse, конечно, с ними работать получается довольно быстро, но на мой взгляд тут есть куда работать над оптимизацией хранения, в первую очередь в сторону хранения только изменений репозитория. Такая табличка будет очень маленькая (около 4 миллионов записей) и  должна будет вся помещаться в память, что очень сильно ускорит практически все запросы. ну и можно писать отдельные парсеры, заливающую разную полезную информацию в CH - например, данные из bugzilla, логи и статусы пересборки, активность ментейнеров в рассылках и т.д. > > Ок, я в курсе лицензионных вопросов по эластику, СlickHouse тоже > неплох - особенно если структура БД будет опубликована и к ней можно > будет писать SQL-запросы через HTTP > > На самом деле вопрос сводится к: > и и > * вменяемому HTTP API для поиска по репозиториям/пакетам Это уже есть, вменяемость API нужно обсуждать. curl https://repodb.basealt.space/|jq выводит HELP. > * возможности связать вывод такого API и сборочные логи/таски Тоже есть, API уже можно обсуждать. > * удобному фронтенду (но уже потом) > > Мне было бы интересно принять в этом посильное участие - но для начала > нужен какой-то список требований с приоритетами + понимание откуда > брать исходные данные > > Жень, сейчас Данил Шеин смотрит что у нас наработано по clickhouse и после рефакторинга структуры и базовового кода выложит все наработки в паблик. Не знаю, честно, сколько времени на это уйдёт, надеюсь что немного ;) Конечно, идея как раз в этом и заключается, что бы со стороны можно было ходить к базе и спрашивать у неё разные полезные ништяки, в том числе графики рисовать при необходимости. Код написан на питоне.