From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: devel@lists.altlinux.org References: <32d3ca33-a1ed-ba90-2583-1bae3dcdb5f0@altlinux.org> <979f1e23-aa85-1476-59e2-67db933d812a@basealt.ru> <578e0a83-62bc-ca72-2171-3fb3d9c034ca@altlinux.org> <10866469-c138-402e-4362-64aed07ee5af@altlinux.org> <2d65a61b-6272-4918-77f8-0853048a3240@basealt.ru> <7de22131-8dfb-7537-bcb8-aa166fa09e5e@altlinux.org> <5d57e170-9f20-83e2-c965-97dc68d76538@basealt.ru> <4ca340f9-6938-763a-8d84-b1819aff5acf@altlinux.org> From: Anton Farygin Organization: BaseALT Message-ID: <848c33f9-c129-607d-3b77-15168cf20a5a@basealt.ru> Date: Thu, 8 Apr 2021 08:13:20 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: <4ca340f9-6938-763a-8d84-b1819aff5acf@altlinux.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [devel] =?utf-8?b?YWx0cmVwb2RiIC0g0LDRgNGF0LjRgtC10LrRgtGD0YA=?= =?utf-8?b?0LAg0JHQlA==?= 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: Thu, 08 Apr 2021 05:13:20 -0000 Archived-At: List-Archive: List-Post: Данил, в структуре ещё не хватает содержимого plan/* В частности - какие пакеты в task будут добавлены/удалены для каждой архитектуры + src.rpm Эта информация пригодится, если нам в дальнейшем захочется по запросу генерить репозиторий и его apt'овые хеши для каждого задания. On 07.04.2021 13:55, Danil Shein wrote: > > Обновлённая архитектура БД для altrepodb во вложении. > > Добавлены таблицы для хранения данных по таскам. > > 01.04.2021 18:31, Anton Farygin пишет: >> ok. >> >> On 01.04.2021 16:15, Danil Shein wrote: >>> После изменения первичного ключа и полей группировки получим >>> существенное уменьшение объёма (почти в 4 раза) таблицы при >>> незначительном увеличении времени исполнения запросов: >>> >>> CREATE TABLE Depends >>> ( >>>     pkg_hash   UInt64, >>>     dp_name    String, >>>     dp_version String, >>>     dp_flag    UInt32, >>>     dp_type    Enum8('require' = 1, 'conflict' = 2, 'obsolete' = 3, >>> 'provide' = 4) >>> ) ENGINE = MergeTree ORDER BY (dp_name, dp_version, dp_type) PRIMARY >>> KEY dp_name; >>> >>> Дальнейшие оптимизации имеет смысл производить уже в момент >>> доработки серверной части. >>> >>> 01.04.2021 15:17, Anton Farygin пишет: >>>> Спасибо. >>>> >>>> а какая Cardinality у поля dpname в таблице Depends ? >>>> Может быть стоит сделать её LowCardinality ? >>>> >>>> Вопрос не простой, поиск по этому полю активно будет использоваться >>>> в сложных запросах, анализирующих зависимости исходных и бинарных >>>> пакетов. Позволит ли это изменение нам уменьшить объём данных и >>>> увеличить скорость работы с ними. >>>> >>>> >>>> CREATE TABLE Depends >>>> ( >>>>     pkg_hash   UInt64, >>>>     dp_name    String, >>>>     dp_version String, >>>>     dp_flag    UInt32, >>>>     dp_type    Enum8('require' = 1, 'conflict' = 2, 'obsolete' = 3, >>>> 'provide' = 4) >>>> ) ENGINE = MergeTree ORDER BY (pkg_hash, dp_type, dp_name, >>>> dp_version, dp_flag) PRIMARY KEY pkg_hash; >>>> >>>> >>>> On 01.04.2021 12:41, Danil Shein wrote: >>>>> >>>>> Обновлённая структура БД во вложении >>>>> >>>>> 31.03.2021 14:06, Anton Farygin пишет: >>>>>> On 31.03.2021 13:58, Danil Shein wrote: >>>>>>> Поле pkgset_class добавлю вво вложенную структуру pkgset_kv c >>>>>>> ключом 'class'. >>>>>>> >>>>>>> Выбрать его можно будет как и другие значения в запросе вида: >>>>>>> >>>>>>>> select *,pkgset_kv.v[indexOf(pkgset_kv.k,'type')] as >>>>>>>> pkgset_class from PackageSetName >>>>>>> >>>>>>> В таблице PackageSetName колонка pkgset_name переименована в >>>>>>> pkgset_nodename >>>>>> >>>>>> >>>>>> Сбрось сюда, пожалуйста, новую структуру целиком. >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>>> 31.03.2021 10:40, Anton Farygin пишет: >>>>>>>> Данил, есть предложение добавить в PackageSetName ещё enum поле >>>>>>>> pkgset_class, в который записывать такие варианты: >>>>>>>> 'repository','iso','rootfs','squashfs','installer' >>>>>>>> >>>>>>>> Может быть вместо enum использовать lowcardinality string. >>>>>>>> >>>>>>>> Для того, что бы идентифицировать наборы пакетов ещё и типам. >>>>>>>> т.к. этот class будет использоваться довольно часто, то лучше >>>>>>>> его в nested структуру не класть. >>>>>>>> >>>>>>>> Ну и было бы неплохо обновить версию с последними исправлениями. >>>>>>>> >>>>>>>> On 29.03.2021 15:57, Danil Shein wrote: >>>>>>>>> Добрый день, коллеги! >>>>>>>>> >>>>>>>>> В настоящее время идёт активная переработка altrepodb - >>>>>>>>> решения реализующее загрузку в единую БД на ClickHouse >>>>>>>>> информации о структуре и содержании всех репозиториев и тасков >>>>>>>>> для последующего анализа, хранения истории и т.п. >>>>>>>>> >>>>>>>>> Сейчас репозитории и таски грузятся в БД, анализ и получение >>>>>>>>> данных работает через сервер altrepo_server (JSON API). >>>>>>>>> >>>>>>>>> На текущий момент переделана базовая схема БД для загрузки >>>>>>>>> репозиториев. >>>>>>>>> Структура репозитория сохраняется в БД в виде дерева, пакеты >>>>>>>>> привязываются к соответствующим веткам. >>>>>>>>> >>>>>>>>> Новая структура таблиц для хранения информации о тасках в >>>>>>>>> процессе разработки. >>>>>>>>> >>>>>>>>> SQL файл во вложении. >>>>>>>>> >>>>>>>>> Обсуждение, замечания и предложения приветствуются. >>>>>>>>> >>>>>>>>> Спасибо!