<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=KOI8-R">
  </head>
  <body>
    <p><font face="DejaVu Sans">Обновлённая архитектура БД для altrepodb
        во вложении.<br>
        <br>
        Добавлены таблицы для хранения данных по таскам.</font><br>
    </p>
    <div class="moz-cite-prefix">01.04.2021 18:31, Anton Farygin пишет:<br>
    </div>
    <blockquote type="cite"
      cite="mid:5d57e170-9f20-83e2-c965-97dc68d76538@basealt.ru">ok.
      <br>
      <br>
      On 01.04.2021 16:15, Danil Shein wrote:
      <br>
      <blockquote type="cite">После изменения первичного ключа и полей
        группировки получим существенное уменьшение объёма (почти в 4
        раза) таблицы при незначительном увеличении времени исполнения
        запросов:
        <br>
        <br>
        CREATE TABLE Depends
        <br>
        (
        <br>
            pkg_hash   UInt64,
        <br>
            dp_name    String,
        <br>
            dp_version String,
        <br>
            dp_flag    UInt32,
        <br>
            dp_type    Enum8('require' = 1, 'conflict' = 2, 'obsolete' =
        3, 'provide' = 4)
        <br>
        ) ENGINE = MergeTree ORDER BY (dp_name, dp_version, dp_type)
        PRIMARY KEY dp_name;
        <br>
        <br>
        Дальнейшие оптимизации имеет смысл производить уже в момент
        доработки серверной части.
        <br>
        <br>
        01.04.2021 15:17, Anton Farygin пишет:
        <br>
        <blockquote type="cite">Спасибо.
          <br>
          <br>
          а какая Cardinality у поля dpname в таблице Depends ?
          <br>
          Может быть стоит сделать её LowCardinality ?
          <br>
          <br>
          Вопрос не простой, поиск по этому полю активно будет
          использоваться в сложных запросах, анализирующих зависимости
          исходных и бинарных пакетов. Позволит ли это изменение нам
          уменьшить объём данных и увеличить скорость работы с ними.
          <br>
          <br>
          <br>
          CREATE TABLE Depends
          <br>
          (
          <br>
              pkg_hash   UInt64,
          <br>
              dp_name    String,
          <br>
              dp_version String,
          <br>
              dp_flag    UInt32,
          <br>
              dp_type    Enum8('require' = 1, 'conflict' = 2, 'obsolete'
          = 3, 'provide' = 4)
          <br>
          ) ENGINE = MergeTree ORDER BY (pkg_hash, dp_type, dp_name,
          dp_version, dp_flag) PRIMARY KEY pkg_hash;
          <br>
          <br>
          <br>
          On 01.04.2021 12:41, Danil Shein wrote:
          <br>
          <blockquote type="cite">
            <br>
            Обновлённая структура БД во вложении
            <br>
            <br>
            31.03.2021 14:06, Anton Farygin пишет:
            <br>
            <blockquote type="cite">On 31.03.2021 13:58, Danil Shein
              wrote:
              <br>
              <blockquote type="cite">Поле pkgset_class добавлю вво
                вложенную структуру pkgset_kv c ключом 'class'.
                <br>
                <br>
                Выбрать его можно будет как и другие значения в запросе
                вида:
                <br>
                <br>
                <blockquote type="cite">select
                  *,pkgset_kv.v[indexOf(pkgset_kv.k,'type')] as
                  pkgset_class from PackageSetName
                  <br>
                </blockquote>
                <br>
                В таблице PackageSetName колонка pkgset_name
                переименована в pkgset_nodename
                <br>
              </blockquote>
              <br>
              <br>
              Сбрось сюда, пожалуйста, новую структуру целиком.
              <br>
              <br>
              <br>
              <blockquote type="cite">
                <br>
                <br>
                31.03.2021 10:40, Anton Farygin пишет:
                <br>
                <blockquote type="cite">Данил, есть предложение добавить
                  в PackageSetName ещё enum поле pkgset_class, в который
                  записывать такие варианты:
                  'repository','iso','rootfs','squashfs','installer'
                  <br>
                  <br>
                  Может быть вместо enum использовать lowcardinality
                  string.
                  <br>
                  <br>
                  Для того, что бы идентифицировать наборы пакетов ещё и
                  типам.
                  <br>
                  т.к. этот class будет использоваться довольно часто,
                  то лучше его в nested структуру не класть.
                  <br>
                  <br>
                  Ну и было бы неплохо обновить версию с последними
                  исправлениями.
                  <br>
                  <br>
                  On 29.03.2021 15:57, Danil Shein wrote:
                  <br>
                  <blockquote type="cite">Добрый день, коллеги!
                    <br>
                    <br>
                    В настоящее время идёт активная переработка
                    altrepodb - решения реализующее загрузку в единую БД
                    на ClickHouse информации о структуре и содержании
                    всех репозиториев и тасков для последующего анализа,
                    хранения истории и т.п.
                    <br>
                    <br>
                    Сейчас репозитории и таски грузятся в БД, анализ и
                    получение данных работает через сервер
                    altrepo_server (JSON API).
                    <br>
                    <br>
                    На текущий момент переделана базовая схема БД для
                    загрузки репозиториев.
                    <br>
                    Структура репозитория сохраняется в БД в виде
                    дерева, пакеты привязываются к соответствующим
                    веткам.
                    <br>
                    <br>
                    Новая структура таблиц для хранения информации о
                    тасках в процессе разработки.
                    <br>
                    <br>
                    SQL файл во вложении.
                    <br>
                    <br>
                    Обсуждение, замечания и предложения приветствуются.
                    <br>
                    <br>
                    Спасибо!
                    <br>
                    <br>
                    <br>
                    _______________________________________________
                    <br>
                    Devel mailing list
                    <br>
                    <a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
                    <br>
                    <a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a>
                    <br>
                  </blockquote>
                  <br>
                  <br>
                  _______________________________________________
                  <br>
                  Devel mailing list
                  <br>
                  <a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
                  <br>
                  <a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a>
                  <br>
                </blockquote>
                <br>
              </blockquote>
              <br>
              _______________________________________________
              <br>
              Devel mailing list
              <br>
              <a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
              <br>
              <a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a>
              <br>
            </blockquote>
            -- <br>
            Данил Шеин / Danil Shein
            <br>
            <br>
            <a class="moz-txt-link-abbreviated" href="mailto:E-mail:dshein@basealt.ru">E-mail:dshein@basealt.ru</a>
            <br>
            <br>
            _______________________________________________
            <br>
            Devel mailing list
            <br>
            <a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
            <br>
            <a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a>
            <br>
          </blockquote>
          <br>
          <br>
          _______________________________________________
          <br>
          Devel mailing list
          <br>
          <a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
          <br>
          <a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a>
          <br>
        </blockquote>
        <br>
      </blockquote>
      <br>
      _______________________________________________
      <br>
      Devel mailing list
      <br>
      <a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
      <br>
      <a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a><br>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Данил Шеин / Danil Shein

E-mail: <a class="moz-txt-link-abbreviated" href="mailto:dshein@basealt.ru">dshein@basealt.ru</a></pre>
  </body>
</html>