powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Выпустили альфу новой СУБД SoQoL
78 сообщений из 78, показаны все 4 страниц
Выпустили альфу новой СУБД SoQoL
    #40131527
Фотография DenKho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Наша команда "тихо" разрабатывает новую СУБД SoQoL. Подготовили альфа-версию и готовы предоставить ее для оценки.

Текущие возможности:
  • ОС — Linux, Windows
  • интерфейсы (частичная поддержка) — ODBC, JDBC
  • процессорные архитектуры — Intel
soqol.ru . Там же можно ознакомиться с информацией по СУБД.

Ждём разработчиков приложений, с которыми можно будет провести оценку SoQoL на реальных данных, а затем попробовать сделать совместные пилотные внедрения. Нас очень интересуют ваши предложения о том, где уже можно попробовать применить SoQoL с его еще нешироким функционалом. Пишите нам ваши предложения. А функционал мы продолжаем развивать, и ваши предложения помогут нам понять, на чем делать акцент в ближайшем будущем.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40131573
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DenKho,

Раз уж пошла такая пьянка, вы бы дали какое обзорное представление, как она сейчас стоит против таких или сяких соседей, и, в какую сторону, хотя бы в короткой перспективе, будет двигаться.

Как вы отличаетесь от Oracle 8.0 или Postgress с такой же маркировкой уже сейчас, и будет ли увеличиваться ваше отличие.

У вас аппартат мгновенной траспортации MVCC какой системы?

Кого вы себе конкурентом видите - NuoDB, Altibase, Postgress или еще кого, как вы протиив них стоять планируете.

Так-то, хоть при каком-то разумном тех описании, народу легче может оказаться проявлять целеустремленное любопытство.
В общем, хотелось бы и заране и задаром получить представление, в куда вы народ приглашаете.

С уважением,
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40131706
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Раз уж пошла такая пьянка, вы бы дали какое обзорное представление, как она сейчас стоит против таких или сяких соседей, и, в какую сторону, хотя бы в короткой перспективе, будет двигаться.

С точки зрения пользователя Сокол - классическая реляционная СУБД. Как и Postgres, Oracle, MySQL, ...
Это дисковая СУБД. Но есть одно маааленькое отличие. Мы построили архитектуру, которая позволяет использовать lock-free алгоритмы. Не фрагментарно, а на всем пути обработки запроса в системе. Lock-free можно встретить в in-memory решениях, которые, как известно, показывают значительно более высокие результаты в обработке данных. Использование этой технологии открывает новые возможности по масштабированию на многоядерном оборудовании.

В дальнейшем мы ориентированы на построение распределенной СУБД с распределенными транзакциями с высокой степенью управляемости. Изначально в архитектуру заложены технологии, применяемые в облачных системах.

> Как вы отличаетесь от Oracle 8.0 или Postgress с такой же маркировкой уже сейчас, и будет ли увеличиваться ваше отличие.

Указание версии `8.0` я с вашего позволения проигнорирую, поскольку не знаю, что под этим в вопросе подразумевалось. Если речь идет о доступной функциональности, то, безусловно, не следует ожидать сразу слишком многого, в указанных решениях
все это создавалось десятилетиями и в один миг все воссоздать не
получится. Безусловно, мы работаем над развитием функционала и запросы на такое развитие в процессе тестирования выпусков (первый - это озвученная альфа) будут нами серьезно рассматриваться в рамках ближайших планируемых работ.

По внутренней архитектуре, если говорить сейчас о каждом отдельном компьютере (по распределенке можно будет поговорить позже, когда вплотную будем работать над соответствующей версией) стоит отметить, что все делается для эффективного использования современных многоядерных систем.
Это, например:

- конкурентная работа, реализованная на lockfree подходах. Так, например,
10К соединений в TPC-C для Сокола не фантастика;

- алгоритмы и структура основного хранилища типа B-Tree оптимизируется
для повышения cache-locality, так что работа одним пользователем
будет тоже заметно быстрее (пока не все сделано);

- если копать детали, то технологических отличий много, описывать их будем по мере возможности. Как примеры: исполняющая система построена на дата-центричной модели, которая может конкурировать с векторными подходами, есть возможность генерации нативного кода для запросов и процедур, обмен между клиентом и сервером может быть построен на основе конвейера (таким образом можно организовывать batch) и многое другое.

Не все технологические отличия можно уже сейчас увидеть в
проявлении. Заложенные архитектурные и технологические возможности
ждут еще своего часа. Так что с развитием система будет еще быстрее
или во всяком случае не медленнее :)

> У вас MVCC какой системы?

MVCC организован на уровне списка версий в кортеже. Ближайшие аналоги: MSSQL, MySQL.

> Кого вы себе конкурентом видите - NuoDB, Altibase, Postgress или еще кого, как вы против них стоять планируете.

NuoDB - это распределенная система, так что пока здесь сравнения преждевременны.

Altibase - предоставляет два варианта хранилищ для таблиц на выбор: disc-based и in-memory.

Сокол - это disc-based хранилище, но во многом конкурирующие с in-memory вариантами по своим свойствам.

Нашу систему тоже можно обозвать гибридной в смысле свойств системы. Принципиальное отличие в том, что нет дополнительных ограничений от in-memory и отрицательных последствий от гибридности тоже нет.


В качестве конкурентов нужно рассматривать прежде всего классические СУБД, и, безусловно, мы намерены наступить на хвост in-memory системам. В перспективе зайдем и в распределенные системы.

Рады интересу к нашей СУБД. Пишите вопросы, будем стараться по мере сил отвечать (хотя все глубоко погружены в разработку, спешат быстрее выпустить бету и релиз) чтобы раскрыть возможности новой СУБД во всей красе. Хотя на отдельные вопросы не так легко ответить просто…
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40131728
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо за ответ.
Примерно понятно, в какое место пространства располагать.
Често говоря, не вполне даже верил, что он будет.

Позволю себе еще один вопрос, из любопытства.

Лок-фри алгоритмы обычно разыгрываются на одном из двух пальцев - CAS или SpinLock

Касательно последнего была пара энергичных вступлений Торвальдса в дискуссию за последние лет пять.
Его вступления всегда зажигательны, и привносят в дискуссию выжигающий желающих аргументированно отвечать огонь.

В 17 году вот здесь
https://yarchive.net/comp/linux/spinlocks.html
Он рассуждает на тему невозможности честного спинлока
А в 20м вот здесь
https://www.realworldtech.com/forum/?threadid=189711&curpostid=189723
о бессмысленности затеи со спинлоком в пользовательском режиме.

Попробуете как-то прокомментировать, как отвечает ваша система на столь зажигательные тезисы.

Спасибо.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40131747
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет все несколько по другому, для старта по lockfree рекомендую документ
https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-579.pdf
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40131754
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отдельно по спинлоку.

В нашем проекте использование спинлока, мутекса и прочих блокирующих объектов запрещено. Но запрет условный. Несомненно у нас есть места где использование подобных объектов имеет смысл, выбор всегда должен быть осознанным.

Например, у нас имеется собственный планировщик, подобный тому что можно увидеть в ядре Линукс.
Для перебалансировки нагрузки в двух runqueues захватывается спин, так как обработать 2 очереди проще с блокировкой. Также, вся локальная работа внутри runqueue прикрыта спинлоком. При этом пробуждение задачи по инициативе из конкурирующего runqueue обычно используется асинхронная lockfree очередь.

Таким образом мы получаем простой код, а код шедулера просто обязан быть простым и тупым, его вообще не должно быть видно, так как его повторяемость достаточно высокая. В тоже время у нас практически отсутствует конкуренция на спине здесь.

По поводу CAS.

Мы опираемся на барьеры памяти и атомарные операции из стандарта C11.
CAS это одна из таких операций, если алгоритмически можно использовать другие варианты, то конечно мы предпочитаем их. Впрочем дело не столько в самой атомарной операции. Скорее важно какие алгоритмы контроля доступа к данным применяются, именно изменения основных алгоритмов по обработке данных и есть возможность параллельной работы.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40131760
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу честного спинлока в userspace и lockfree в том же числе.

Да, несомненно, мы не можем управлять системным планировщиком, все что мы можем со своей стороны сделать, так чтоб не создавать условий провоцирующих системный планировщик действовать "неправильно".

Что это значит для нас?
СУБД Сокол использует количество системных потоков равное количеству ядер в оборудовании. А вся параллельность, примитивы синхронизации, стек lockfree реализованы через кооперативную многозадачность, корутины со стеком и без стека.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40131761
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно. Спасибо.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40131762
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
akorotchenko
Отдельно по спинлоку.

В нашем проекте использование спинлока, мутекса и прочих блокирующих объектов запрещено. Но запрет условный. Несомненно у нас есть места где использование подобных объектов имеет смысл, выбор всегда должен быть осознанным.

Например, у нас имеется собственный планировщик, подобный тому что можно увидеть в ядре Линукс.
Для перебалансировки нагрузки в двух runqueues захватывается спин, так как обработать 2 очереди проще с блокировкой. Также, вся локальная работа внутри runqueue прикрыта спинлоком. При этом пробуждение задачи по инициативе из конкурирующего runqueue обычно используется асинхронная lockfree очередь.

Таким образом мы получаем простой код, а код шедулера просто обязан быть простым и тупым, его вообще не должно быть видно, так как его повторяемость достаточно высокая. В тоже время у нас практически отсутствует конкуренция на спине здесь.

Вообще, использование спинлока в шедулере чуть ли не единственное в своем роде.

По поводу CAS.

Мы опираемся на барьеры памяти и атомарные операции из стандарта C11.
CAS это одна из таких операций, если алгоритмически можно использовать другие варианты, то конечно мы предпочитаем их. Впрочем дело не столько в самой атомарной операции. Скорее важно какие алгоритмы контроля доступа к данным применяются, именно изменения основных алгоритмов по обработке данных и есть возможность параллельной работы.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40131901
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тихо разрабатывается "СУБД" "сокол" - взято лучшее из PostgreSQL, Oracle и сделано намного лучше, чем у этих пендосов


Т.е. это типа "росийская ОС!" (линукс), "отечетсвенная СУБД" (PostgreSQL) и т.д. т.е. важно, чтобы были исходные коды, чтобы можно было исправить название на скреповое.

При этом сообщения, что США перекроют поставки электроники приведет к кризису - это "ни о чем"
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40131996
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый Ролг Хупин,

> Т.е. это типа "росийская ОС!" (линукс), "отечетсвенная СУБД" (PostgreSQL) и т.д. т.е. важно, чтобы были исходные коды, чтобы можно было исправить название на скреповое.

Читайте внимательно!

Сокол это полностью наша разработка, более того это исследовательская разработка с чистого листа, которая сейчас на стадии трансформации в продукт, разработка ведется нашей компанией собственными силами, никакого государственного участия!

Слово "отечественная" (в указанном смысле) здесь вообще ни причем, хотя, да, данная разработка велась на территории нашего Отечества!
Это разработка МОЯ, моих коллег, нашей компании!

Заимствование какого либо кода НЕТ, ну совсем нет, ни одной строчки, разве что буквы общие, пишем на С!
Заимствований нет ни от Postgres, ни даже от нашего действующего продукта ЛИНТЕР (который, кстати, также НЕ имеет отношения к opensource, к сведению).

Ну от Oracle я не могу ничего заимствовать, хотя бы по одной причине, я не видел их кода и не могу увидеть.

PS:
Почему то подобное восприятие на пространстве интернете является нормой, считается что в нашей стране разработка чего либо фундаментального невозможна, могут только прикладные решения пилить и перелицовывать opensource ...

Да это трудно, но возможно!
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132003
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу терминов "российская", "отечественная".

Давайте определимся сразу.
Сокол не является инструментом политики или инструментом обогащения на политике!
Разработка проекта ведется не по политическим соображениям!

Проект зародился и живет в России.
Прилагательные "российская", "отечественные" применимы к Соколу только в прямом смысле этих слов .
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132012
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko,
Попробую еще позадавать вопросов.
Их вашего описания у меня пока складывается впечатление, что по набору идей, в качестве ближайшей аналогии,
можно было бы смотреть на Hekaton от Microsoft.

Насколько справедливо такое предположение, и как далеко оно может быть распространено в технических деталях.
Например, будут ли доступны в триггерах логические таблицы inserted и deleted.

На что похож у вас "язык процедурных расширений sql", каковы его технические особенности.

Если предположить перевод существующей системы, снабженной большим объемом кода в базе, то с какой из существующих систем переход может происходить наиболее беспроблемно.


Да, не совсем по делу.
В последние лет уже пять или чуть более, почему-то считается, что один из наиболее перспективных исследовательских европейских проектов, обкатывающий сразу набор относительно свежих идей, это Hyper.
Следите ли вы за тем, что там происходит, и может ли происходящее там повлиять на элементы вашей архитектуры.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132129
Бумбараш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko,

у вас на сайте https://soqol.ru/ и в логотипе, в титле сайта и много где написано
СУБД ЛИНТЕР SoQoL

непонятно, линтер и сокол это одна субд или две и что значит это название, если в нём есть смысл
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132153
Фотография DenKho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бумбараш
akorotchenko,

у вас на сайте https://soqol.ru/ и в логотипе, в титле сайта и много где написано
СУБД ЛИНТЕР SoQoL

непонятно, линтер и сокол это одна субд или две и что значит это название, если в нём есть смысл


Это одна СУБД с таким сложным названием ЛИНТЕР СОКОЛ, если кириллицей и LINTER SoQoL или ЛИНТЕР SoQoL, если с элементами латиницы.

СУБД ЛИНТЕР - наша разработка, ведем ее с 1990-го года. Одна из версий значений названия - "лучше Интериала". Так называлась мобильная СУБД, которая разрабатывалась этим же коллективом разработчиков в 80-е. Сейчас нами поддерживается два продукта - ЛИНТЕР БАСТИОН (сертифицирован ФСТЭК и Минобр) и ЛИНТЕР СТАНДАРТ. Поэтому и ЛИНТЕР СОКОЛ, хотя кроме названия эти две СУБД друг с другом никак не связаны.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132163
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko
День добрый Ролг Хупин,

> Т.е. это типа "росийская ОС!" (линукс), "отечетсвенная СУБД" (PostgreSQL) и т.д. т.е. важно, чтобы были исходные коды, чтобы можно было исправить название на скреповое.

Читайте внимательно!

Сокол это полностью наша разработка, более того это исследовательская разработка с чистого листа, которая сейчас на стадии трансформации в продукт, разработка ведется нашей компанией собственными силами, никакого государственного участия!

Слово "отечественная" (в указанном смысле) здесь вообще ни причем, хотя, да, данная разработка велась на территории нашего Отечества!
Это разработка МОЯ, моих коллег, нашей компании!

Заимствование какого либо кода НЕТ, ну совсем нет, ни одной строчки, разве что буквы общие, пишем на С!
Заимствований нет ни от Postgres, ни даже от нашего действующего продукта ЛИНТЕР (который, кстати, также НЕ имеет отношения к opensource, к сведению).

Ну от Oracle я не могу ничего заимствовать, хотя бы по одной причине, я не видел их кода и не могу увидеть.

PS:
Почему то подобное восприятие на пространстве интернете является нормой, считается что в нашей стране разработка чего либо фундаментального невозможна , могут только прикладные решения пилить и перелицовывать opensource ...

Да это трудно, но возможно!


практика показывает, что так и есть.
не мы такие, жизнь такая (ц)
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132174
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Попробую еще позадавать вопросов.
> Их вашего описания у меня пока складывается впечатление, что по набору идей, в качестве ближайшей аналогии,
> можно было бы смотреть на Hekaton от Microsoft.

Мы знакомы с научными работами от MS, и с Hekaton.
Сначала мы пытались оттолкнуться с этими идеями, чему то научились, но в итоге сильно разошлись.
У нас нет разных engine, для в памяти и с вытеснением - это принципиальное отличие.
Конечно есть что то общее, если оно использует общие технологии.

> Насколько справедливо такое предположение, и как далеко оно может быть распространено в технических деталях.
> Например, будут ли доступны в триггерах логические таблицы inserted и deleted.

Oracle-like схема тригеров будет, пока ничего нет

> На что похож у вас "язык процедурных расширений sql", каковы его технические особенности.

Oracle-like. Конечно отличия будут, у нас нет цели сделать клон. Отличия всегда будут, хотя бы из-за разной физической модели.

> Если предположить перевод существующей системы, снабженной большим объемом кода в базе, то с какой из существующих систем переход может происходить наиболее беспроблемно.

Как выше говорил Oracle, система тригеров точно будет не от MS.
По конструкциям PL и SQL смотрим примерно в следующих приоритетах:
- Стандарт & Oracle
- PostgreSQL
- MS
- ...


> Да, не совсем по делу.
> В последние лет уже пять или чуть более, почему-то считается, что один из наиболее перспективных исследовательских европейских проектов, обкатывающий сразу набор относительно свежих идей, это Hyper.
Следите ли вы за тем, что там происходит, и может ли происходящее там повлиять на элементы вашей архитектуры.

По делу.
Это один из самых интересных ресурсов для разработчиков, у них там в Мюнхене гнездо субд строительства:
https://hyper-db.de/
https://umbra-db.com/

Некоторые идеи у нас пересекаются, философия и реализация конечна у каждого своя.
Я упоминал уже, датачентричную модель исполнительной системы.
Используем свой виртуальный код вместо IR от llvm, принципы его отличаются, но тоже весьма неплохо работает, на коротких запросах TPC-C уступает нативному порядка 5%.
Из него же генерируем нативный код через llvm.

В umbra-db делают попытку перейти на дисковую СУБД.
Мы движемся с другого края, от дисковой СУБД.
У нас полноценный кэш страниц (lockfree) с самого начала и по нашей постановке задачи.

Решения из umbra-db местами похожи на наши, забавно что к идеи о двойном дереве мы пришли параллельно, правда мы не печатаем статьи. Можно применить некоторые их архитектурные оптимизации.
Здесь стоит вопрос что к месту и ко времени важнее всего. Разрабатывать и оптимизировать можно вечно.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132195
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko
> Попробую еще позадавать вопросов.
> Их вашего описания у меня пока складывается впечатление, что по набору идей, в качестве ближайшей аналогии,
> можно было бы смотреть на Hekaton от Microsoft.

Мы знакомы с научными работами от MS, и с Hekaton.
Сначала мы пытались оттолкнуться с этими идеями, чему то научились, но в итоге сильно разошлись.
У нас нет разных engine, для в памяти и с вытеснением - это принципиальное отличие.
Конечно есть что то общее, если оно использует общие технологии.

> Насколько справедливо такое предположение, и как далеко оно может быть распространено в технических деталях.
> Например, будут ли доступны в триггерах логические таблицы inserted и deleted.

Oracle-like схема тригеров будет, пока ничего нет

> На что похож у вас "язык процедурных расширений sql", каковы его технические особенности.

Oracle-like. Конечно отличия будут, у нас нет цели сделать клон. Отличия всегда будут, хотя бы из-за разной физической модели.

> Если предположить перевод существующей системы, снабженной большим объемом кода в базе, то с какой из существующих систем переход может происходить наиболее беспроблемно.

Как выше говорил Oracle, система тригеров точно будет не от MS.
По конструкциям PL и SQL смотрим примерно в следующих приоритетах:
- Стандарт & Oracle
- PostgreSQL
- MS
- ...


> Да, не совсем по делу.
> В последние лет уже пять или чуть более, почему-то считается, что один из наиболее перспективных исследовательских европейских проектов, обкатывающий сразу набор относительно свежих идей, это Hyper.
Следите ли вы за тем, что там происходит, и может ли происходящее там повлиять на элементы вашей архитектуры.

По делу.
Это один из самых интересных ресурсов для разработчиков, у них там в Мюнхене гнездо субд строительства:
https://hyper-db.de/
https://umbra-db.com/

Некоторые идеи у нас пересекаются, философия и реализация конечна у каждого своя.
Я упоминал уже, датачентричную модель исполнительной системы.
Используем свой виртуальный код вместо IR от llvm, принципы его отличаются, но тоже весьма неплохо работает, на коротких запросах TPC-C уступает нативному порядка 5%.
Из него же генерируем нативный код через llvm.

В umbra-db делают попытку перейти на дисковую СУБД.
Мы движемся с другого края, от дисковой СУБД.
У нас полноценный кэш страниц (lockfree) с самого начала и по нашей постановке задачи.

Решения из umbra-db местами похожи на наши, забавно что к идеи о двойном дереве мы пришли параллельно, правда мы не печатаем статьи. Можно применить некоторые их архитектурные оптимизации.
Здесь стоит вопрос что к месту и ко времени важнее всего. Разрабатывать и оптимизировать можно вечно.


Начал читать, возник вопрос:
С чем связано наличие у таких разработчиков, чьи идеи используются во многих известных продуктах (верим на слово) таких грубых ошибок в тексте?
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132215
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Начал читать, возник вопрос:
> С чем связано наличие у таких разработчиков, чьи идеи используются во многих известных продуктах (верим на слово) таких грубых ошибок в тексте?

Ошибался в письме всегда, хоть на русском, хоть на английском. Возможно, у меня какое нибудь генетическое отклонение ;). Мне это не мешает жить, до 50 дотянул как то.

Я не претендую на верховенство авторства, абсолютной истины, грамотности, ...
Если есть неприязнь к моему тексту, предлагаю не читать.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132232
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Два простых вопроса:
1) Поддерживается ли ACID?
2) какой стандарт ANSI SQL и до какой степени поддержан?
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132237
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Два простых вопроса:
1) Поддерживается ли ACID?

Конечно да.
ответ на этот вопрос очевиден из посыла "классическая реляционная СУБД"
Упоминание о том, что она именно дисковая, морозит набор способов обхождения с данными в памяти, частично ставя пределы вариантам организации многопользовательского доступа к одному фрагменту данных.
Как-то так.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132240
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko,

Спасибо за ответ.
Даже приятно читать, обнаруживая, что образование в стране еще не полностью выжжено страшным огнем оптимизации.
😊

Успехов в ваших делах.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132306
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko
> Начал читать, возник вопрос:
> С чем связано наличие у таких разработчиков, чьи идеи используются во многих известных продуктах (верим на слово) таких грубых ошибок в тексте?

Ошибался в письме всегда, хоть на русском, хоть на английском. Возможно, у меня какое нибудь генетическое отклонение ;). Мне это не мешает жить, до 50 дотянул как то.

Я не претендую на верховенство авторства, абсолютной истины, грамотности, ...
Если есть неприязнь к моему тексту, предлагаю не читать.


ничего персонального, просто, закрадывается смутное сомнение, что при таком уровне грамотности такой же уровень и этого т.н. "СУБД"
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132330
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> ничего персонального, просто, закрадывается смутное сомнение, что при таком уровне грамотности такой же уровень и этого т.н. "СУБД"

Сомневаться нужно всегда, поддерживаю, особенно когда пытаются выкатить что-то такое прям исключительное.
Любая "крутая" СУБД может показать заурядные результаты на определенном типе нагрузке вполне по объективным причинам. Просто заявления мы в 5-10 раз быстрее не относятся глобально к любому типу нагрузки.

И любая СУБД это компромисс, у каждой свои сильные и слабые стороны.
Выбирать пользователю.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132531
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
ответ на этот вопрос очевиден из посыла "классическая реляционная СУБД"

Нет, не очевиден. MySQL на движке MyISAM - "классическая реляционная СУБД" и даже "дисковая", но ACID не поддерживает.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132550
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
booby
ответ на этот вопрос очевиден из посыла "классическая реляционная СУБД"

Нет, не очевиден. MySQL на движке MyISAM - "классическая реляционная СУБД" ...



🤦
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132556
Фотография DenKho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
booby
ответ на этот вопрос очевиден из посыла "классическая реляционная СУБД"

Нет, не очевиден. MySQL на движке MyISAM - "классическая реляционная СУБД" и даже "дисковая", но ACID не поддерживает.


ACID в SoQoL есть. Чуть подробнее - https://soqol.ru/tpost/1fg08bflg1-est-li-acid-v-soqol
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40132851
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сокол как классическая СУБД реализует транзакции. ACID это свойства транзакций в таких СУБД. Да, полноценный ACID.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40133236
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko
День добрый Ролг Хупин,

> Т.е. это типа "росийская ОС!" (линукс), "отечетсвенная СУБД" (PostgreSQL) и т.д. т.е. важно, чтобы были исходные коды, чтобы можно было исправить название на скреповое.

Читайте внимательно!

Сокол это полностью наша разработка, более того это исследовательская разработка с чистого листа, которая сейчас на стадии трансформации в продукт, разработка ведется нашей компанией собственными силами, никакого государственного участия!
....

Значит надо аккуратнее участвовать в пиар компаниях )))

Впервые о СУБД Сокол услышал из новостей об Элбрусе, и там это точно называли клоном PostgreSQL.

akorotchenko

СУБД ЛИНТЕР - наша разработка, ведем ее с 1990-го года. Одна из версий значений названия - "лучше Интериала". Так называлась мобильная СУБД, которая разрабатывалась этим же коллективом разработчиков в 80-е. Сейчас нами поддерживается два продукта - ЛИНТЕР БАСТИОН (сертифицирован ФСТЭК и Минобр) и ЛИНТЕР СТАНДАРТ. Поэтому и ЛИНТЕР СОКОЛ, хотя кроме названия эти две СУБД друг с другом никак не связаны.

Опять таки, аккуратнее надо франшизы продавать ))). В последнее время о классическом Линтере ничего слышно не было, в новостях в основном ЛИНТЕР BC.

А чем одна российская субд отличается от другой российской субд с таким же названием - не все разбираются.

===

Посмотрел на сайт. Ни нормального технического описания (хотя бы с объяснениями, что Линтер Сокол, это не Линтер BC), ни ссылки на документацию - не увидел.

Для рекламы (или отчетности) перед топами сайт может и подойдет, но топы сами ничего не скачивают и не тестируют. Как мне кажется, любой технический специалист сначала пролестает документацию, прежде чем будет качать инсталятор и нажимать next, next, next...

Не скачивал, не смотрел, но мнение имею.

IMHO
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40133529
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko
> ничего персонального, просто, закрадывается смутное сомнение, что при таком уровне грамотности такой же уровень и этого т.н. "СУБД"

Сомневаться нужно всегда, поддерживаю, особенно когда пытаются выкатить что-то такое прям исключительное.
Любая "крутая" СУБД может показать заурядные результаты на определенном типе нагрузке вполне по объективным причинам. Просто заявления мы в 5-10 раз быстрее не относятся глобально к любому типу нагрузки .

И любая СУБД это компромисс, у каждой свои сильные и слабые стороны.
Выбирать пользователю.


Перечитал два раза предложение - это набор не связанных слов, переведите на доступный, если не заняты разработкой такой торпеды, которая потопит неуклюжих монстров.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40133859
Фотография DenKho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Значит надо аккуратнее участвовать в пиар компаниях )))

Впервые о СУБД Сокол услышал из новостей об Эльбрусе, и там это точно называли клоном PostgreSQL.


Странно, кто такое мог сказать? Можете почитать https://www.cnews.ru/news/top/2021-12-17_rossiyane_sozdali_subdkotoraya или посмотреть видео на сайте МЦСТ с конференции. А слухам верить не стоит. Можете запросить SoQoL и оценить сколько там PG, это не сложно - заполнить форму на сайте. Мы отправляем дистрибутив с документацией для всех желающих поучаствовать в тестировании.

Да и чтобы убедиться, что СУБД ЛИНТЕР не PG достаточно скачать демо с сайта https://linter.ru/ru/download/.

Про поделки и проделки ВНИИНС писать не буду. У них на сайте все написано, или почитайте в Википедии https://ru.wikipedia.org/wiki/Линтер
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Выпустили альфу новой СУБД SoQoL
    #40141823
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  06.02.2022, 11:09
[игнорируется]
Заимствование какого либо кода НЕТ, ну совсем нет, ни одной строчки, разве что буквы общие, пишем на С!
Здравствуйте.

Вот если взять бинарники вашей СУБД и просто посмотреть символы функций внутри них, то очень много выдает названий с префиксом LLVM.
Увидеть это легко, даже просто просмотром бинарника по F3 в MC, или nm.
(на скрине вывод команды nm -g vsql_server | grep -w T | grep LLVM)
Складывается устойчивое ощущение, что внутри своей СУБД вы используете движок LLVM для выполнения своего байткода.
Таким образом:
1. вы используете импортную компоненту, без которой СУБД работать не может. и ее легко подвести под санкции. и саму эту компоненту вы вряд ли контролируете на уровне собственного форка.
2. возможно из этого движка LLVM вы иcпользуете JIT. я видел критику движков JIT в том, что они могут вносить недетерминированное поведение в исполнении кода, т.е. время выполнения одинакового кода может быть различным, а это не приемлемо для СУБД. (тем более если заявляется о ее нацеленности на выдающуюся производительность).
SOQOL_LLVM.JPG
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142695
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Да используем LLVM для JIT. JIT по умолчанию отключен, доступен опционально, у пользователя есть возможность указать JIT-трансляцию для любого запроса или не указать. Ничего плохого в этом нет, на вкус и цвет товарищей нет.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142697
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  18.02.2026, 17:50
[игнорируется]
dailyadm [игнорируется] 

Да используем LLVM для JIT. JIT по умолчанию отключен, доступен опционально, у пользователя есть возможность указать JIT-трансляцию для любого запроса или не указать. Ничего плохого в этом нет, на вкус и цвет товарищей нет.
akorotchenko  18.02.2026, 17:50
[игнорируется]
Да используем LLVM для JIT. JIT по умолчанию отключен, доступен опционально, у пользователя есть возможность указать JIT-трансляцию для любого запроса или не указать. Ничего плохого в этом нет, на вкус и цвет товарищей нет.
Что-то здесь не то.

# запускаю базу
# база при запуске создала конфиг с дефолтными параметрами

$./vsql_server
Warning 2026-02-18 19:49:30.368129: Cannot open "soqol_config.yml" configuration file, generating configuration file with default parameters.
Info 2026-02-18 19:49:30.368481: Service data directory: '/agenda/soqol/soqol/bin'
Info 2026-02-18 19:49:30.368692: Amount of service memory auto-configured, edit config file for better value.
Info 2026-02-18 19:49:31.906322: Assigned memory is locked successfully
Info 2026-02-18 19:49:31.933109: SYSTEM INFORMATION:
Info 2026-02-18 19:49:31.935644: vm memory size: 2048 MB
Info 2026-02-18 19:49:31.935733: run_rq_count: 8 numa_total: 1 lcpu_total: 8
Info 2026-02-18 19:49:31.935755: numa0 logic cores: 8
Info 2026-02-18 19:49:31.935775: LCPU MASKS
Info 2026-02-18 19:49:31.935812: numa: 1 core: 1 lcpu: 1
Info 2026-02-18 19:49:31.935834: numa: 1 core: 2 lcpu: 2
Info 2026-02-18 19:49:31.935854: numa: 1 core: 3 lcpu: 3
Info 2026-02-18 19:49:31.935872: numa: 1 core: 4 lcpu: 4
Info 2026-02-18 19:49:31.935885: numa: 1 core: 5 lcpu: 5
Info 2026-02-18 19:49:31.935906: numa: 1 core: 6 lcpu: 6
Info 2026-02-18 19:49:31.935919: numa: 1 core: 7 lcpu: 7
Info 2026-02-18 19:49:31.935932: numa: 1 core: 8 lcpu: 8
Info 2026-02-18 19:49:31.935954: NUMA CONTAINS
Info 2026-02-18 19:49:31.935965: numa0 lcpu_run: 8
Info 2026-02-18 19:49:31.935980: vsql_server version = 3.2.0-night260130
Info 2026-02-18 19:49:42.724547: Session memory: 2048 KB
Info 2026-02-18 19:49:42.724891: vsql_server is ready to receive commands

# стоплю базу
$ ^C
Info 2026-02-18 19:49:45.380770: shutdown started
Info 2026-02-18 19:49:46.190059: vsql_server shutdowned

# вижу дефолтный подозрительный параметр

$ grep "jit" soqol_config.yml
jit_memory: 128MB

# меняю параметр на ноль (ну раз он не нужен по дефолту)

$ sed -i 's/jit_memory: 128MB/jit_memory: 0MB/g' soqol_config.yml

# проверяю

$ grep "jit" soqol_config.yml
jit_memory: 0MB

#запускаю базу

$./vsql_server
Error 2026-02-18 19:51:23.991233: SOQ-23310: option service.jit_memory value out of bounds
Error 2026-02-18 19:51:23.991610: Error -23310 happened while "soqol_config.yml" configuration file was processed.
Panic 2026-02-18 19:51:23.992056:/builds/linter/via/vsql_server/src/service.c:716: service_init returned error -23310
Aborted (core dumped) ./vsql_server

Странно, что нельзя ноль поставить.
А как джит включается в конфиге или для конкретного запроса?
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142698
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Можете ли дать полный список функционала в базе Сокол, который реализован через LLVM? Если полностью убрать LLVM из базы, то какой функционал пропадет в базе?

2.
akorotchenko  18.02.2026, 17:50
[игнорируется]
dailyadm [игнорируется] 
Ничего плохого в этом нет, на вкус и цвет товарищей нет.
LLVM - это не дело вкуса, а дело официально заявленных компонент в базе Сокол. На текущий момент Вы поставляете бинарники базы с этой крупной компонентой, эта компонента должна быть заявлена в документации и в реестре ПО Минцифры.
Вместо этого Вы пишите ( https://reestr.digital.gov.ru/reestr/1123306/ ):
"Система управления базами данных SoQoL полностью разработана специалистами компании РЕЛЭКС. СУБД не основана на продуктах с отрытым исходным кодом и не использует стороннее программное обеспечение."
Как минимум это выглядит как введение в заблуждение регулирующих органов, инвесторов и пользователей. Вы предоставили в реестр ПО Минцифры недостоверные сведения.

3. Вот в документации Сокол написано:
"система основана на дисковом хранилище вида B-Tree".

Я запросил ИИ дать список деградаций для такой архитектуры. Ответ от ИИ:

"Специфика деградации классического B-tree (где данные хранятся и в листьях, и во внутренних узлах) заключается в том, что оно более «хрупкое» при росте объема данных по сравнению с B+tree.
Вот список конкретных видов деградации:
1. Падение коэффициента ветвления (Fan-out)
Это фундаментальная проблема B-tree при хранении строк.
Суть: Поскольку данные строк (payload) лежат во внутренних узлах, для навигационных ключей остается мало места.
Результат: Вместо того чтобы указывать на 100–200 дочерних узлов, узел указывает всего на 5–10. Дерево становится аномально высоким. Каждое чтение требует на 2–3 обращения к диску больше, чем в B+tree.
2. Деградация кэширования (CPU Cache & RAM)
Суть: В B+tree верхние уровни (только ключи) компактны и почти всегда лежат в L1/L2 кэше процессора или в RAM.
Результат: В B-tree внутренние узлы «жирные» из-за данных строк. Кэш забивается полезной нагрузкой, которая вам в данный момент не нужна (вы просто проходите мимо этого узла к другому). Эффективность кэширования падает в разы.
3. Нестабильное время ответа (Latency Jitter)
Суть: В B+tree путь до любой строки всегда одинаков (высота дерева
). В B-tree строка может быть найдена на первом уровне, а может на десятом.
Результат: Чем больше дерево фрагментируется, тем сильнее «скачет» время выполнения запросов. Предсказуемость производительности теряется.
4. Тяжелое расщепление узлов (Costly Page Splits)
Суть: Когда страница переполняется, её нужно делить.
Результат: В B-tree расщепление внутреннего узла — это сложная операция, которая требует перемещения не только ключей, но и тяжелых данных строк. Это блокирует бóльшие поддеревья и вызывает резкие «затыки» (stalls) при записи.
5. Катастрофическая деградация Range Scans
Это самая известная «болячка» B-tree.
Суть: В B+tree вы нашли начало диапазона в листе и просто идете вбок по списку. В B-tree вам нужно постоянно делать рекурсивный подъем к родителю и спуск к соседу.
Результат: С ростом объема данных количество переходов между уровнями растет экспоненциально. Поиск диапазона из 1000 строк превращается в тысячи операций логического чтения вместо одной-двух.
6. Проблема «пустых пятен» при удалениях
Суть: Удаление из середины B-tree сложнее, чем из листа. Часто оно требует перемещения ключа из листового узла вверх на место удаленного.
Результат: Возникает сложная фрагментация. В дереве появляются «дыры», которые трудно переиспользовать новыми данными, если их размер чуть больше, чем был у удаленных. Дерево начинает занимать на диске гораздо больше места, чем реально весят данные."

В чем смысл разработки такой СУБД в 2026г. ?
Oracle и Posgresql хранят строки в неупорядоченном виде.
Производительность в тестах, на которые Вы все время акцентируете внимание - это потемкинские деревни, после нескольких недель работы база будет "наедаться" всеми этими деградациями, и все эти результаты тестов могут обнулится.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142700
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

> $ grep "jit" soqol_config.yml
> jit_memory: 0MB
>
> #запускаю базу
>
> $./vsql_server
> Error 2026-02-18 19:51:23.991233: SOQ-23310: option service.jit_memory value out of bounds
> Error 2026-02-18 19:51:23.991610: Error -23310 happened while "soqol_config.yml" configuration file was processed.
> Panic 2026-02-18 19:51:23.992056:/builds/linter/via/vsql_server/src/service.c:716: service_init returned error -23310
> Aborted (core dumped) ./vsql_server
>
> Странно, что нельзя ноль поставить.

Ну вот такие требуются параметры, проверка валидности действует так.
Внутренние словарные запросы в ядре транслируются с jit.
Можно сделать чтоб и с нулем работало, вы первый который такого захотел.

> А как джит включается в конфиге или для конкретного запроса?

Вот так
Код: SQL
1.
select /*+ JIT_CODEGEN */ ....
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142701
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
LLVM - это не дело вкуса, а дело официально заявленных компонент в базе Сокол. На текущий момент Вы поставляете бинарники базы с этой крупной компонентой, эта компонента должна быть заявлена в документации и в реестре ПО Минцифры.
Вместо этого Вы пишите ( https://reestr.digital.gov.ru/reestr/1123306/ ):
"Система управления базами данных SoQoL полностью разработана специалистами компании РЕЛЭКС. СУБД не основана на продуктах с отрытым исходным кодом и не использует стороннее программное обеспечение."
Как минимум это выглядит как введение в заблуждение регулирующих органов, инвесторов и пользователей. Вы предоставили в реестр ПО Минцифры недостоверные сведения.
Если нужна какая то строгость во всех используемых компонентов, давайте тогда уж подождем сертификации, задекларируем все вплоть до используемых syscall'ов, квалифицированные товарищи все проверят и удостоверят. В реестре это не требуется.

Если имеется интерес какие библиотеки используются, то как минимум во внешних компонентах ядра можно увидеть:
- libfabric
- llvm/mir
- openssl
- libc

Клиентские библиотеки могут иметь свои зависимости, например, unixodbc, icu.

Если интересно насколько мы действительно завязана на указанные библиотеки, то можно сказать следующее:
- libc - можно перейти на собственные обертки для используемых syscall'ов, частично уже такие обертки уже имеются
- openssl - стандартное средство, явных желаний избавляться от него нет
- llvm/mir - о llvm выше сказано, пробовали mir, не увидели явного преимущества, остались на llvm, в перспективе хочется сделать собственный кодогенератор с учетом текущего опыта
- libfabric - не используется в релизе, но пробуем, хочется использовать нативные интерфейсы для современных сетевых устройств

Конечно используем компилятор clang, re2c, bison, gmake и много чего еще в процессе сборки и тестирования, не думаю что весь список нужно приводить. И конечно мы не писали ядро Linux ;)
Цитата 
[игнорируется]
3. Вот в документации Сокол написано:
"система основана на дисковом хранилище вида B-Tree".
В данном случае B-Tree это общее академическое название без уточнения B+ или B* или еще как.
На самом деле любая реальная реализация имеет свою специфику выходящую за пределы академической терминологии.
Безусловно и наша реализация такая не совсем простая, тем более, если учесть что туда lockfree живет.
Цитата 
[игнорируется]
В чем смысл разработки такой СУБД в 2026г. ?
Oracle и Posgresql хранят строки в неупорядоченном виде.
В Oracle имеются index organized table, в MS clustered index, в MYSQL innodb движок также использует
подобную организацию данных. Каждое представление данных имеет свои преимущества и недостатки.
На данном этапе Сокол поддерживает только index organized table, но это не означает, что ничего более и не будет.
Цитата 
[игнорируется]
Производительность в тестах, на которые Вы все время акцентируете внимание - это потемкинские деревни, после нескольких недель работы база будет "наедаться" всеми этими деградациями, и все эти результаты тестов могут обнулится.
Каждый имеет свое мнение. Практика - это единственный критерий, который может рассудить.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142702
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 09:51
[игнорируется]
dailyadm [игнорируется] 

> $ grep "jit" soqol_config.yml
> jit_memory: 0MB
>
> #запускаю базу
>
> $./vsql_server
> Error 2026-02-18 19:51:23.991233: SOQ-23310: option service.jit_memory value out of bounds
> Error 2026-02-18 19:51:23.991610: Error -23310 happened while "soqol_config.yml" configuration file was processed.
> Panic 2026-02-18 19:51:23.992056:/builds/linter/via/vsql_server/src/service.c:716: service_init returned error -23310
> Aborted (core dumped) ./vsql_server
>
> Странно, что нельзя ноль поставить.

Ну вот такие требуются параметры, проверка валидности действует так.
Внутренние словарные запросы в ядре транслируются с jit.
Можно сделать чтоб и с нулем работало, вы первый который такого захотел.

> А как джит включается в конфиге или для конкретного запроса?

Вот так
Код: SQL
1.
select /*+ JIT_CODEGEN */ ....
А вот и подтверждение моей информации про JIT.

>> я видел критику движков JIT в том, что они могут вносить недетерминированное поведение в исполнении кода, т.е. время выполнения одинакового >> кода может быть различным, а это не приемлемо для СУБД. (тем более если заявляется о ее нацеленности на выдающуюся производительность).

$ vsql_console -h SOQOL:SOQOL@localhost
vsql_console version = 3.2.0-night260130
vsql> select /*+ JIT_CODEGEN */ 1+1;

1+1
----------
2
Query OK, 1 row processed <76 msec>

vsql> select /*+ JIT_CODEGEN */ 1+1;

1+1
----------
2
Query OK, 1 row processed <0 msec>

vsql> select /*+ JIT_CODEGEN */ 1+1;

1+1
----------
2
Query OK, 1 row processed <0 msec>

Здесь я запускаю базу и потом в клиенте делаю последовательно 3 одинаковых запроса. Делаю через JIT. Время первого запроса значительно больше других. Вот это и есть недетерминированность (то, что я и хотел увидеть). Но ИИ говорит, что на больших объемах данных JIT может дать прирост производительности.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142704
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Делаю через JIT. Время первого запроса значительно больше других.
На первом запросе происходит трансляция запроса в виртуальный код и дополнительно в нативный код, если указана трансляция в JIT.
Повторное исполнения запроса используется готовый код из кэша.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142705
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 10:42
[игнорируется]
Если нужна какая то строгость во всех используемых компонентов, давайте тогда уж подождем сертификации, задекларируем все вплоть до используемых syscall'ов, квалифицированные товарищи все проверят и удостоверят. В реестре это не требуется
В реестре есть требование о предоставлении достоверных сведений (при отправке заявления Вы ставите об этом галочку), и есть ответственность за предоставление недостоверных сведений.
И речь идет не про компиляторы, а про то, что бинарники Сокол имеют в своем составе статически слинкованные крупные (десятки мегабайт) зависимости. Но при этом заявляется как конкурентное преимущество: "СУБД не основана на продуктах с отрытым исходным кодом и не использует стороннее программное обеспечение". И сейчас Вы сами признаете данный факт.
akorotchenko  19.02.2026, 10:42
[игнорируется]
В Oracle имеются index organized table, в MS clustered index, в MYSQL innodb движок также использует
подобную организацию данных.
Для Оракл основным видом таблиц является тип таблица-куча. Другие же типы (IoT) на практике используются крайне редко.
Из знакомых мне СУБД к верхнему технологическому эшелону я бы отнес прежде всего базы с таблицами-кучей: Oracle, Postgresql, Altibase.
Все остальное - это либо нижний, либо специфично-нишевые решения, потому что все с кучей проблем по возможным деградациям.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142706
Soft54
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Успехов в работе над проектом!!!
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142707
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko [игнорируется] 

По поводу недетерминированности в JIT.
Дело в том что в LLVM нет ленивой трансляции как в JAVA, код генерируется весь и сразу, отличия от Ahead Of Time трансляции нет (то что происходит в clang). Разница только в том, что код находится только в памяти, он не упаковывается в ELF(или прочий нативный для текущей ОС) контейнер и не кладется в файл.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142709
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 11:27
[игнорируется]
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Делаю через JIT. Время первого запроса значительно больше других.
На первом запросе происходит трансляция запроса в виртуальный код и дополнительно в нативный код, если указана трансляция в JIT.
Повторное исполнения запроса используется готовый код из кэша.
Я понимаю, что в первом случае идет компиляция, а во втором и третьем - выполнение готового.
А должно ли так быть? Удобно ли это для прикладной системы, для пользователей?

/***************************/
/***************************/
/***************************/
А вот еще наблюдение:

1-я сессия:

# запуск базы
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
$ ./vsql_server
Info 2026-02-19 11:50:33.306282: Service data directory: '/agenda/soqol/soqol/bin'
Info 2026-02-19 11:50:33.306557: Amount of service memory auto-configured, edit config file for better value.
Info 2026-02-19 11:50:37.300549: Assigned memory is locked successfully
Info 2026-02-19 11:50:37.321649: SYSTEM INFORMATION:
Info 2026-02-19 11:50:37.321751: vm memory size: 2048 MB
Info 2026-02-19 11:50:37.321766: run_rq_count: 8 numa_total: 1 lcpu_total: 8
Info 2026-02-19 11:50:37.321805: numa0 logic cores: 8
Info 2026-02-19 11:50:37.321827: LCPU MASKS
Info 2026-02-19 11:50:37.321849: numa: 1 core: 1 lcpu: 1
Info 2026-02-19 11:50:37.321869: numa: 1 core: 2 lcpu: 2
Info 2026-02-19 11:50:37.321886: numa: 1 core: 3 lcpu: 3
Info 2026-02-19 11:50:37.321899: numa: 1 core: 4 lcpu: 4
Info 2026-02-19 11:50:37.321919: numa: 1 core: 5 lcpu: 5
Info 2026-02-19 11:50:37.321938: numa: 1 core: 6 lcpu: 6
Info 2026-02-19 11:50:37.321956: numa: 1 core: 7 lcpu: 7
Info 2026-02-19 11:50:37.321973: numa: 1 core: 8 lcpu: 8
Info 2026-02-19 11:50:37.321991: NUMA CONTAINS
Info 2026-02-19 11:50:37.322009: numa0 lcpu_run: 8
Info 2026-02-19 11:50:37.322051: vsql_server version = 3.2.0-night260130
Info 2026-02-19 11:50:37.501969: Startup 'AUXDB' ...
Info 2026-02-19 11:50:37.755326: INFO: found checkpoint at 419520
Info 2026-02-19 11:50:37.756491: AUXDB: Start recovering
Info 2026-02-19 11:50:37.756696: AUXDB: Recovering storage:
..0000000000000421888
Info 2026-02-19 11:50:37.757297: AUXDB: Replay dblog:
..0000000000000421888
Info 2026-02-19 11:50:37.757358: AUXDB: Rollback uncommitted transactions:
..0000000000000001808
Info 2026-02-19 11:50:37.757390: AUXDB: Create checkpoint
Info 2026-02-19 11:50:37.802394: AUXDB: End recovering
Info 2026-02-19 11:50:51.567490: Startup OK
Info 2026-02-19 11:50:51.568022: Session memory: 2048 KB
Info 2026-02-19 11:50:51.568285: vsql_server is ready to receive commands
2-я сессия:

# запуск ltrace
Код: BASH
1.
$ ltrace -C -x "LLVM*" -p $(pidof vsql_server)
3-сессия

# запросы в клиенте базы без JIT и с JIT
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
vsql_console -h SOQOL:SOQOL@localhost
vsql_console version = 3.2.0-night260130
vsql> select 1+1;

 1+1
----------
 2
Query OK, 1 row processed <3 msec>

vsql> select /*+ JIT_CODEGEN */ 1+1;

 1+1
----------
 2
Query OK, 1 row processed <237229 msec>
Первый запрос отработал мгновенно. Второй - полностью висит и не выполняется (пока работает ltrace во второй сессии). После киляния ltrace запрос с JIT отработал и написал Query OK, 1 row processed <237229 msec>.

Давайте внедрим это где-нибудь в проде. [:smile]
А вот например в Вашей компании РЕЛЭКС.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142710
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
В реестре есть требование о предоставлении достоверных сведений (при отправке заявления Вы ставите об этом галочку), и есть ответственность за предоставление недостоверных сведений.
И речь идет не про компиляторы, а про то, что бинарники Сокол имеют в своем составе статически слинкованные крупные (десятки мегабайт) зависимости. Но при этом заявляется как конкурентное преимущество: "СУБД не основана на продуктах с отрытым исходным кодом и не использует стороннее программное обеспечение". И сейчас Вы сами признаете данный факт.
Никуда не делось это "конкурентное преимущество". Код СУБД собственный.
- LLVM - это опция, она не формирует СУБД и не является обязательным компонентом в архитектуре.
- Прочие указанные библиотеки касаются транспортных аспектов, но не архитектуры СУБД.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142711
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Для Оракл основным видом таблиц является тип таблица-куча. Другие же типы (IoT) на практике используются крайне редко.
Из знакомых мне СУБД к верхнему технологическому эшелону я бы отнес прежде всего базы с таблицами-кучей: Oracle, Postgresql, Altibase.
Все остальное - это либо нижний, либо специфично-нишевые решения, потому что все с кучей проблем по возможным деградациям.
Нет однозначного преимущества IOT против HEAP, как и наоборот. Исторически и по умолчанию таблицы HEAP хранилища, это так.
Оставим пользователю право его выбора
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142712
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 12:19
[игнорируется]
- LLVM - это опция, она не формирует СУБД и не является обязательным компонентом в архитектуре.
Тогда прошу пояснить какой функционал в базе выполняется через LLVM?
Сейчас получается, что выполнение jit-запросов. Есть еще что-то к этому?
Компиляция и выполнение процедур/функций/триггеров?
Есть ли возможность получить бинарную сборку Сокол без LLVM? (какой функционал СУБД тогда не будет работать по сравнению с сборкой где есть LLVM).
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142715
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Тогда прошу пояснить какой функционал в базе выполняется через LLVM?
Сейчас получается, что выполнение jit-запросов. Есть еще что-то к этому?
Компиляция и выполнение процедур/функций/триггеров?
LLVM может быть использован для генерации кода процедур, функций, SQL (триггеров нет, но как появятся тоже будет).
Цитата 
[игнорируется]
Есть ли возможность получить бинарную сборку Сокол без LLVM? (какой функционал СУБД тогда не будет работать по сравнению с сборкой где есть LLVM).
На данный момент таких запросов не было от клиентов, потенциально можно сделать подобную сборку, функциональность будет полной, кроме JIT трансляции. LLVM сейчас включен для запросов внутри ядра, опции на эту тему нет, но можно сделать.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142716
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Первый запрос отработал мгновенно. Второй - полностью висит и не выполняется (пока работает ltrace во второй сессии). После киляния ltrace запрос с JIT отработал и написал Query OK, 1 row processed <237229 msec>.

Давайте внедрим это где-нибудь в проде. [:smile]
А вот например в Вашей компании РЕЛЭКС.
Ценное предложение, давай включим ltrace еще для чего нибудь и на чем нибудь поставим это в проде.
Не понятно, что вы ищите, какую цель вы преследуете в вашем исследовании?
Может быть я вам сразу дам ответ :) на ваш вопрос, который не задан еще?
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142717
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Я понимаю, что в первом случае идет компиляция, а во втором и третьем - выполнение готового.
А должно ли так быть? Удобно ли это для прикладной системы, для пользователей?
Кэширование кода запросов - это нормально, так делают все правильные СУБД.
Стратегии могут отличаться.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142718
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Первый запрос отработал мгновенно. Второй - полностью висит и не выполняется (пока работает ltrace во второй сессии). После киляния ltrace запрос с JIT отработал и написал Query OK, 1 row processed <237229 msec>.
Писал в одном из ответов, что сейчас внутри ядра используется JIT для внутренних запросов по обслуживанию словаря/кэша.
Нет сейчас публичной опции по отключению этого. Сделать можно, только не понятно для чего.
Если вам это важно для вашего проекта, приходите к нашим продажникам обсудим зачем и почему.
Разработка всего требует времени и денег, нужны аргументы под хотелки.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142719
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 13:30
[игнорируется]
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Первый запрос отработал мгновенно. Второй - полностью висит и не выполняется (пока работает ltrace во второй сессии). После киляния ltrace запрос с JIT отработал и написал Query OK, 1 row processed <237229 msec>.

Давайте внедрим это где-нибудь в проде. [:smile]
А вот например в Вашей компании РЕЛЭКС.
Ценное предложение, давай включим ltrace еще для чего нибудь и на чем нибудь поставим это в проде.
Не понятно, что вы ищите, какую цель вы преследуете в вашем исследовании?
Может быть я вам сразу дам ответ :) на ваш вопрос, который не задан еще?
Мы как-то исследовали Оракл на проде, правда strace, смотрели вызовы dbwriter'a, и это никак не поломало базу.
А вот JIT в Соколе остановился полностью.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142720
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 13:38
[игнорируется]
Писал в одном из ответов, что сейчас внутри ядра используется JIT для внутренних запросов по обслуживанию словаря/кэша.
Нет сейчас публичной опции по отключению этого. Сделать можно, только не понятно для чего.
Если вам это важно для вашего проекта, приходите к нашим продажникам обсудим зачем и почему.
Разработка всего требует времени и денег, нужны аргументы под хотелки.
Если "сейчас внутри ядра используется JIT для внутренних запросов по обслуживанию словаря/кэша.", в таком случае

не получается, что "- LLVM - это опция, она не формирует СУБД и не является обязательным компонентом в архитектуре",

а получается что база не работает без LLVM, она формирует СУБД и является обязательным компонентом в архитектуре.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142722
sqvayer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm  19.02.2026, 13:57
[игнорируется]
akorotchenko  19.02.2026, 13:38
[игнорируется]
Писал в одном из ответов, что сейчас внутри ядра используется JIT для внутренних запросов по обслуживанию словаря/кэша.
Нет сейчас публичной опции по отключению этого. Сделать можно, только не понятно для чего.
Если вам это важно для вашего проекта, приходите к нашим продажникам обсудим зачем и почему.
Разработка всего требует времени и денег, нужны аргументы под хотелки.
Если "сейчас внутри ядра используется JIT для внутренних запросов по обслуживанию словаря/кэша.", в таком случае

не получается, что "- LLVM - это опция, она не формирует СУБД и не является обязательным компонентом в архитектуре",

а получается что база не работает без LLVM, она формирует СУБД и является обязательным компонентом в архитектуре.
Да, было интересно увидеть (и потестировать) дистрибутив без "LLVM опции". Это, кстати, было бы доказательством, что по Соколу в реестр внесли достоверные сведения об отсутствии заимствованных кодов. В общем, если есть версия без заимствований - предъявите народу, убедите. А то выходит "предполагай худшее и не ошибешься"... Опять же представителям РЕЛЭКС будет легче общаться с госзаказчиками, если отсутствие заимствований "даже не просто факт, а так есть на самом деле" :)
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142723
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот что мне пишет ИИ по поводу лицензий:

При статической линковке «Сокол» и LLVM превращаются в единый бинарный файл. В этом случае исключение («LLVM Exception») не освобождает от базовых требований Apache 2.0, так как вы распространяете саму библиотеку внутри своего кода.

Компания обязана предоставить информацию в следующем объеме:
Текст лицензии Apache 2.0: Он должен быть включен в состав дистрибутива (например, в файле THIRD-PARTY-NOTICES или LICENSE).
Copyright Notice: Сохранение строки вида: Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign. All rights reserved. и упоминание LLVM Release License.
Атрибуция: Указание, что продукт содержит программное обеспечение, разработанное проектом LLVM (LLVM Project).

Почему это важно для коммерческой СУБД:

Статическая линковка делает компоненты LLVM неотъемлемой частью «Сокола». С точки зрения лицензионного аудита (особенно при сертификации во ФСТЭК или включении в реестр отечественного ПО), отсутствие упоминания стороннего кода может быть расценено как нарушение условий лицензирования open-source компонента.

Требуемый объем документации:
Обычно это одна страница в PDF-документе «Формуляр» или «Руководство администратора» со списком заимствованных компонентов и полным текстом их лицензий.

Мой вопрос ИИ: в каких случаях идет освобождение от LLVM Exception ?
Ответ ИИ:


Исключение LLVM Exception (официально оно называется LLVM Exceptions to the Apache 2.0 License) работает не как «обязанность», а как льгота. Оно не «освобождает» вас от чего-то плохого, а наоборот — освобождает от строгих требований основной лицензии Apache 2.0.
Вы перестаете попадать под действие этого исключения (и на вас накладываются полные требования Apache 2.0) в следующих случаях:
1. Распространение исходного кода (Source Code)
Исключение создано специально для бинарных файлов (скомпилированного кода). Если вы берете исходники LLVM, модифицируете их и распространяете именно как исходный код, вы обязаны соблюдать все правила Apache 2.0: сохранять все уведомления, помечать измененные файлы и прилагать текст лицензии. Исключение здесь не работает.
2. Использование LLVM как библиотеки (Ваш случай с СУБД)
Это самый тонкий момент. Исключение было написано, чтобы защитить пользователей компилятора (чтобы обычный программист, написав "Hello World" на C++, не был обязан писать «Copyright Apple/LLVM» в своей программе).
Когда льгота работает: Когда код LLVM попал в ваш бинарник автоматически (как вспомогательный рантайм-код, например libgcc или части libcxx).
Когда льгота НЕ работает: Когда вы осознанно берете LLVM как инструментарий (framework), линкуете его библиотеки (статически или динамически) для реализации функций своего продукта (как JIT в СУБД Сокол). В этом случае вы распространяете производный продукт, и вы обязаны предоставить атрибуцию (упоминание лицензии).
3. Нарушение условий Apache 2.0
Если вы удаляете файлы LICENSE или NOTICE из дистрибутива или пытаетесь выдать код LLVM за свой собственный, вы теряете право на использование лицензии в целом, включая и её «льготную» часть (Exceptions).

Короткий итог:
Разработчики СУБД Сокол не освобождаются от упоминания LLVM, потому что:
Они используют LLVM как основной функциональный модуль (движок JIT), а не просто как «невидимый» побочный продукт компиляции.
Статическая линковка делает их продукт Derivative Work (производным произведением).
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142725
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Мы как-то исследовали Оракл на проде, правда strace, смотрели вызовы dbwriter'a, и это никак не поломало базу.
А вот JIT в Соколе остановился полностью.
Исследуйте и Сокола с strace, тоже не ломает, сами это делаем регулярно.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142726
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Вот фрагмент С-кода некоторого внутреннего запроса, инициализации константной строки
Код: C
1.
2.
3.
4.
5.
#define JIT_CODEGEN "/*+ JIT_CODEGEN */"
...
    [SELECT_FROM_SEQUENCE_BY_ID] =
        {"select " JIT_CODEGEN " ID, TYPE, CUR_VAL, START_VAL, INC_VAL, MAX_VAL, MIN_VAL, CACHE_CNT, FLAGS from "
         "SYS._SEQUENCE where ID = ?;"},
Сейчас это опция времени трансляции.
Если поменять макрос на
Код: C
1.
#define JIT_CODEGEN
То получится без участия JIT все внутренние запросы.

Вероятно, можно написать код формирования текста внутренних SQL запросов, чтоб это было опцией времени исполнения.

Так понятнее? Или еще что-то нужно объяснять?
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142727
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqvayer [игнорируется] 

Не вопрос, выходите на прямой контакт, будем беседовать конкретнее (можно собрать версию с отключенным JIT в ядре).
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142728
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Про упоминание LLVM разберемся, наведем порядок в документации.
Сертификации пока не было, безусловно, все будет зачищено к тому времени.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142729
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 15:51
[игнорируется]
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Мы как-то исследовали Оракл на проде, правда strace, смотрели вызовы dbwriter'a, и это никак не поломало базу.
А вот JIT в Соколе остановился полностью.
Исследуйте и Сокола с strace, тоже не ломает, сами это делаем регулярно.
ltrace не вредит базе Оракл, а у Сокол перестают работать JIT-запросы.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142730
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Возможно, архитектурно это не проблема.
Будет время посмотрим на сценарий тестирования, разберемся
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142731
sqvayer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko [игнорируется] 

Да, лично мне в целом все равно есть у вас заимствованные коды или нет. Особенно, если ваш продукт действительно хороший (люди, кстати, говорят, что да..). Но, будь я на месте ваших конкурентов, то немедленно бы направил запрос "в реестр" от какой-нибудь уважаемой организации. Мол, бродят такие люди, утверждают что нет заимствованных кодов несмотря на то, что имеют место такие-сякие факты (как приводились выше), "не могу понять", прошу разъяснить и т.д. Т.е. я хочу сказать, что собирать версию с отключенным JIT в ядре, может быть, все равно придется.. Лучше уж заранее это сделать, мне кажется (может быть я и ошибаюсь...). И показать здесь народу, для начала.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142732
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
ltrace не вредит базе Оракл, а у Сокол перестают работать JIT-запросы.
Повторил описываемый вами запуск ltrace.
Что он фильтрует не совсем понятно, вижу все вызовы из динамических библиотек (memcpy, memcmp, ....), возможно, это те вызовы которые из LLVM функций вызываются. Не знаю почему это интересно должно быть и почему это не должно тормозить.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142735
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko [игнорируется] 

Я сделал ролик с проблемой, где видно что под ltrace запрос без JIT выполняется, а запрос с JIT висит.
(Он отработал только после киляния ltrace).
Считаете здесь все нормально, и он "просто тормозит"?
2026-02-19 20-38-55.rar
...
Изменено: 19.02.2026, 20:47 - dailyadm
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142741
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 16:02
[игнорируется]
dailyadm [игнорируется] 

Про упоминание LLVM разберемся, наведем порядок в документации.
С этим надо было разбираться в 2022 году при подаче заявления в Реестр ПО Минцифры. По факту Вы присвоили себе масштабные американские программные разработки и много лет выдаете их как свои собственные.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142742
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

безусловно, что здесь ненормального
FYI:
LLVM работает с мелкими объектами - инструкции. При перехвате всех его функций все тормозит безбожно. Собственно это главная причина почему нативная кодогенерация везде такая тормозная, тот же MIR заявлял что ускорит процесс в 100 раз, но не ускорил меньше чем на порядок.

Да и сам ltrace не идеальный инструмент. Сам может сдохнуть и прогу убить (Trace/breakpoint trap (core dumped)).
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
$ ltrace -x '*llvm*' -p $(pidof vsql_server.debug)  >out 2>&1
Aborted (core dumped)
$ du -h out
192M    out
$ wc -l out
1818740 out
$ tail out
_ZNK4llvm19SmallPtrSetImplBase13FindBucketForEPKv(0x7967d3a5f0e0, 0x1110be90, 2447, 8192) = 0x125066f0
<... _ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv resumed> ) = 0x125066f0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE.part.1231(0x7967d3a5ef70, 0x1110be90, 1, 0x12504940) = 0
<... _ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE resumed> ) = 0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE(0x7967d3a5ef70, 0x119daa10, 1, 0x10f37490 <unfinished ...>
_ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv(0x7967d3a5f0e0, 0x119daa10, 1, 0x10f37490 <unfinished ...>
_ZNK4llvm19SmallPtrSetImplBase13FindBucketForEPKv(0x7967d3a5f0e0, 0x119daa10, 2446, 8192) = 0x12506ce0
<... _ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv resumed> ) = 0x12506ce0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE.part.1231(0x7967d3a5ef70, 0x119daa10, 1, 0x12504940 <unfinished ...>
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE(0x7967d3a5ef70, 0x11c6a298, 1, 0x119daa00callstack_push_symfunc: Error: call nesting too deep!
Если уж и хочется что-то накопать с ltrace/strace, то можно заметить что
- malloc/free/mmap/munmap практически не вызывается после инициаилизации (если не использовать JIT). Сокол имеет собственный менеджер памяти.
- работа с файлами асинхронная и O_DIRECT (epol_wait, io_submit) - наводит на мысль что полагаются только на собственный кэш и собственные алгоритмы опережающего чтения. Работа с сокетами неблокирующая
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142743
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Громко говорите. Об опции JIT (и о том что она сделана на LLVM) везде говорили открыто и в телеграм-канале и на докладах.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142744
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  20.02.2026, 09:50
[игнорируется]
dailyadm [игнорируется] 

безусловно, что здесь ненормального
FYI:
LLVM работает с мелкими объектами - инструкции. При перехвате всех его функций все тормозит безбожно. Собственно это главная причина почему нативная кодогенерация везде такая тормозная, тот же MIR заявлял что ускорит процесс в 100 раз, но не ускорил меньше чем на порядок.

Да и сам ltrace не идеальный инструмент. Сам может сдохнуть и прогу убить (Trace/breakpoint trap (core dumped)).
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
$ ltrace -x '*llvm*' -p $(pidof vsql_server.debug)  >out 2>&1
Aborted (core dumped)
$ du -h out
192M    out
$ wc -l out
1818740 out
$ tail out
_ZNK4llvm19SmallPtrSetImplBase13FindBucketForEPKv(0x7967d3a5f0e0, 0x1110be90, 2447, 8192) = 0x125066f0
<... _ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv resumed> ) = 0x125066f0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE.part.1231(0x7967d3a5ef70, 0x1110be90, 1, 0x12504940) = 0
<... _ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE resumed> ) = 0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE(0x7967d3a5ef70, 0x119daa10, 1, 0x10f37490 <unfinished ...>
_ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv(0x7967d3a5f0e0, 0x119daa10, 1, 0x10f37490 <unfinished ...>
_ZNK4llvm19SmallPtrSetImplBase13FindBucketForEPKv(0x7967d3a5f0e0, 0x119daa10, 2446, 8192) = 0x12506ce0
<... _ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv resumed> ) = 0x12506ce0
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE.part.1231(0x7967d3a5ef70, 0x119daa10, 1, 0x12504940 <unfinished ...>
_ZN12_GLOBAL__N_18Verifier11visitMDNodeERKN4llvm6MDNodeENS0_19AreDebugLocsAllowedE(0x7967d3a5ef70, 0x11c6a298, 1, 0x119daa00callstack_push_symfunc: Error: call nesting too deep!
Если уж и хочется что-то накопать с ltrace/strace, то можно заметить что
- malloc/free/mmap/munmap практически не вызывается после инициаилизации (если не использовать JIT). Сокол имеет собственный менеджер памяти.
- работа с файлами асинхронная и O_DIRECT (epol_wait, io_submit) - наводит на мысль что полагаются только на собственный кэш и собственные алгоритмы опережающего чтения. Работа с сокетами неблокирующая
Запрос, который не укладывается в полагающееся ему время - это НЕРАБОТАЮЩИЙ запрос.
И никто не будет ждать пока он отработает за несколько часок/суток/дней/недель/месяцев/лет. А тем более ПРОМЫШЛЕННАЯ система.
Я всего лишь показал, что любой JIT-запрос, даже такой элементарный как SELECT 1+1; легко остановить в СУБД, т.е. превратить в абсолютно НЕРАБОТАЮЩИЙ. Причем это можно сделать абсолютно штатными линуксовыми утилитами.
К чему Вы прикладываете эти все выкладки?
Это объяснения ДБА будет показывать своему руководству при таких сбоях?
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142745
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  20.02.2026, 10:03
[игнорируется]
dailyadm [игнорируется] 

Громко говорите. Об опции JIT (и о том что она сделана на LLVM) везде говорили открыто и в телеграм-канале и на докладах.
Эксперты Реестра ПО Минцифры всегда задают вопрос о компонентах (и их правообладателях), присутствующих в программном обеспечении.
Здесь было заявление о наличии LLVM и ее американских правообладателях?
Если это не было сделано - это предоставление недостоверной информации.
Если это было сделано - тогда фраза "СУБД не основана на продуктах с отрытым исходным кодом и не использует стороннее программное обеспечение." не соответствует действительности, и должна быть исправлена. А так же должны быть добавлены лицензии LLVM в поставку СУБД Сокол и в ее документацию.
Только и всего.
Вы согласны с этим?
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142748
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 
Цитата 
[игнорируется]
Я всего лишь показал, что любой JIT-запрос, даже такой элементарный как SELECT 1+1; легко остановить в СУБД, т.е. превратить в абсолютно НЕРАБОТАЮЩИЙ. Причем это можно сделать абсолютно штатными линуксовыми утилитами.
К чему Вы прикладываете эти все выкладки?
Какая-то у вас навязчивая идея. Не вижу смысла продолжать обсуждать здесь что-либо.
Сделать что-либо нерабочим с помощью отладочных утилит это даже не искусство.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142749
akorotchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dailyadm [игнорируется] 

Извините, вы прокурор, судья или эксперт Реестра ПО Минцифры, предъявляете нам что конкретно в правовом поле?
Если так, то добро пожаловать, юридическое лицо ваш ждет.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142750
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  20.02.2026, 12:34
[игнорируется]
dailyadm [игнорируется] 

Извините, вы прокурор, судья или эксперт Реестра ПО Минцифры, предъявляете нам что конкретно в правовом поле?
Если так, то добро пожаловать, юридическое лицо ваш ждет.
Это тема с обсуждением не КТО Я, а КТО ВЫ и ЧТО из себя представляет СУБД СОКОЛ.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142751
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 10:42
[игнорируется]
Клиентские библиотеки могут иметь свои зависимости, например, unixodbc, icu
Вопрос к ИИ:
Какая лицензия на библиотеку unixodbc? Какие требования лицензии к коммерческим закрытым проектам, которые распространяют бинарники?

Ответ ИИ:
Библиотека unixODBC использует модель двойного лицензирования, разделяя компоненты проекта на разные типы прав:
- Библиотеки (драйвер-менеджер и основные библиотеки): Распространяются под лицензией GNU LGPL (Lesser General Public License) версии 2.1 или выше.
- Программы и утилиты (например, isql, odbcinst): Распространяются под лицензией GNU GPL версии 2.0 или выше.

Требования к коммерческим закрытым проектам (LGPL)

Для закрытых коммерческих проектов наиболее важна лицензия LGPL, которая позволяет использовать библиотеку без раскрытия исходного кода вашего основного приложения при соблюдении следующих условий:

Метод линковки:

Динамическая линковка (рекомендуется):

Вы должны подключать unixODBC как общую библиотеку (например, .so файл). Это позволяет конечному пользователю заменить версию unixODBC на свою собственную без пересборки вашего приложения.

Статическая линковка:

Если вы включаете код библиотеки непосредственно в исполняемый файл, вы обязаны предоставить пользователю возможность перелинковки. Обычно это требует предоставления объектных файлов (.o) вашего приложения или использования других механизмов, позволяющих заменить код библиотеки.

Сохранение уведомлений:

В документации или сопроводительных материалах необходимо указать, что используется unixODBC, и включить текст лицензии LGPL и уведомления об авторских правах.

Изменения в самой библиотеке:

Если вы модифицировали исходный код unixODBC, эти изменения обязательно должны быть опубликованы под лицензией LGPL. Код вашего проприетарного приложения при этом остается закрытым.

Предоставление исходников библиотеки:

Вы должны предоставить пользователям способ получить исходный код той версии unixODBC, которую вы используете (например, ссылкой на официальный репозиторий или включением архива в поставку).

Вопрос к ИИ:
Какая лицензия на библиотеку icu? Какие требования лицензии к коммерческим закрытым проектам, которые распространяют бинарники?

Ответ ИИ:
libicu (ICU) использует крайне либеральную лицензию ICU License (начиная с версии 58 — Unicode License), которая по своей сути идентична лицензии MIT.

Требования к коммерческим закрытым проектам:

Лицензия ICU — одна из самых «дружелюбных» для бизнеса. Если вы распространяете бинарные файлы (исполняемые файлы вашего приложения вместе с ICU), требования следующие:

Сохранение уведомлений:


Вы обязаны включить текст лицензии и уведомление об авторских правах (copyright notice) в сопроводительную документацию или экран «О программе».

Отсутствие ответственности:

Вы не можете предъявлять претензии авторам ICU, если библиотека что-то сломает. ПО поставляется «как есть».
Никакого копилефта: В отличие от LGPL (как у unixODBC), лицензия ICU не требует:
Предоставлять возможность замены библиотеки пользователем.
Раскрывать исходный код ваших модификаций самой библиотеки ICU.
Использовать динамическую линковку (статическая линковка разрешена без условий).
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142752
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 10:42
[игнорируется]
Если имеется интерес какие библиотеки используются, то как минимум во внешних компонентах ядра можно увидеть:
- libfabric
Вопрос к ИИ:
Какая лицензия на библиотеку libfabric? Какие требования лицензии к коммерческим закрытым проектам, которые распространяют бинарники?

Ответ ИИ:
Библиотека libfabric (Open Fabrics Interfaces) распространяется под двойной лицензией: вы можете выбрать либо BSD (2-clause), либо GNU GPL версии 2.
Для коммерческих закрытых проектов наиболее выгодным является выбор лицензии BSD, так как она накладывает минимальные ограничения и не требует открытия вашего исходного кода.

Требования при распространении бинарников (по лицензии BSD):

Если вы включаете скомпилированную библиотеку libfabric в свой закрытый продукт, вам необходимо выполнить следующие условия:

Сохранение уведомлений:

Вы обязаны включить оригинальное уведомление об авторских правах libfabric, список условий лицензии и отказ от гарантий в документацию или другие материалы, сопровождающие поставку (например, в файл LEGAL, LICENSE или раздел «О программе»).

Метод линковки:

В отличие от LGPL, лицензия BSD не делает различий между статической и динамической линковкой. Вы можете линковать библиотеку любым способом (включая статический), не раскрывая код своего приложения.

Изменения в библиотеке:

Если вы изменили сам код libfabric, вы не обязаны публиковать эти изменения (при выборе лицензии BSD), хотя сообщество приветствует это. Вы можете оставить свои правки внутри библиотеки закрытыми.

Использование имени:

Вы не можете использовать названия проекта (libfabric, OpenFabrics Alliance) или имена его авторов для рекламы своего продукта без специального письменного разрешения.

Резюме для бизнеса:

libfabric максимально удобна для проприетарного ПО. Вам достаточно просто упомянуть авторов и текст лицензии в документации к вашему бинарному файлу.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142753
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Soqol_2.JPG
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142755
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Soqol_6.jpg
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142765
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akorotchenko  19.02.2026, 10:42
[игнорируется]
Если имеется интерес какие библиотеки используются, то как минимум во внешних компонентах ядра можно увидеть:
- openssl
Вопрос к ИИ:

Какая лицензия на библиотеку openssl (последняя версия)? Какие требования лицензии к коммерческим закрытым проектам, которые распространяют бинарники?

Ответ ИИ:

Библиотека OpenSSL (начиная с версии 3.0 и выше) распространяется под лицензией Apache License версии 2.0. Это разрешительная (permissive) лицензия, которая полностью совместима с коммерческой разработкой и не накладывает «вирусных» обязательств на ваше ПО.

Требования при распространении бинарников (по лицензии Apache 2.0):

Если вы поставляете OpenSSL (в виде DLL, SO-файлов или внутри статического бинарника) в составе своего закрытого продукта, вам необходимо выполнить следующие условия:

Сохранение уведомлений:

Вы обязаны включить копию текста лицензии Apache 2.0 и файл NOTICE (если он присутствует в исходниках OpenSSL) в документацию или другие материалы, сопровождающие поставку. Обычно это делается в файле LICENSE, THIRD-PARTY-NOTICES или в разделе интерфейса «О программе».

Метод линковки:

Лицензия Apache 2.0 не делает различий между статической и динамической линковкой. В обоих случаях вы можете линковать библиотеку с закрытым кодом вашего приложения, не открывая его исходники.

Изменения в библиотеке:

Если вы внесли изменения в сам код OpenSSL, лицензия не обязывает вас публиковать их. Однако вы должны добавить во все измененные файлы заметное уведомление о том, что код был модифицирован.

Использование имени:


Вы не можете использовать торговые марки, названия проекта (OpenSSL, OpenSSL Project) и имена авторов для рекламы или продвижения вашего продукта без предварительного разрешения.

Резюме для бизнеса:

OpenSSL 3.0+ максимально удобна для проприетарного ПО. В отличие от старых версий (1.1.1 и ниже), она не требует обязательных специфических фраз в рекламных материалах. Вам достаточно сохранить текст лицензии и уведомление об авторстве в сопроводительной документации к вашему бинарному файлу.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142766
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос к ИИ:

Какая лицензия на библиотеку zlib? Какие требования лицензии к коммерческим закрытым проектам, которые распространяют бинарники?

Ответ ИИ:

Библиотека zlib распространяется под собственной лицензией zlib License. Это одна из самых либеральных лицензий в мире Open Source, которая практически не ограничивает свободу коммерческого использования.

Требования при распространении бинарников (по лицензии zlib):

Если вы используете zlib в закрытом коммерческом продукте и поставляете её в виде скомпилированных файлов (бинарников), ваши обязательства минимальны:

Отсутствие обязательного уведомления:

В отличие от лицензий MIT, BSD или Apache 2.0, лицензия zlib не требует обязательного включения текста лицензии или уведомлений об авторских правах в документацию или интерфейс вашего приложения при распространении только в бинарном виде. Упоминание в стиле «This software uses zlib» приветствуется авторами, но не является юридическим условием.

Запрет на введение в заблуждение:

Вы не имеете права заявлять, что вы написали оригинальную библиотеку zlib. Происхождение софта не должно искажаться.

Изменения в библиотеке:

Если вы модифицировали исходный код самой zlib, такие версии должны быть четко помечены как измененные. Их нельзя выдавать за оригинальную библиотеку. Это требование актуально, только если вы решите распространять измененные исходники вместе с продуктом.

Отказ от ответственности:

Библиотека поставляется «как есть». Вы принимаете на себя все риски, а авторы не несут ответственности за любые убытки, возникшие в результате использования библиотеки.

Резюме для бизнеса:

Лицензия zlib — идеальный вариант для проприетарного ПО. Она позволяет линковать библиотеку любым способом (статически или динамически) и распространять закрытый бинарный код, не налагая при этом практически никаких административных обязательств по оформлению лицензионных соглашений для конечного пользователя.
...
Рейтинг: 0 / 0
Выпустили альфу новой СУБД SoQoL
    #40142772
dailyadm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сама фраза "СУБД не основана на продуктах с отрытым исходным кодом и не использует стороннее программное обеспечение." налагает неосуществимую степень автономности и независимости ПО, ИМХО это обязывает к ПОЛНОМУ ОТКАЗУ от ВСЕХ сторонних прикладных библиотек в рамках всего проекта Сокол, а не просто "сделать и показать никому не нужную неосновную сборку без LLVM и проч.". И неважно как эти библиотеки будут использоваться, будут ли они статически слинкованы, либо установлены как зависимости из репозиториев. В любом из этих случаев - это будет "использованием стороннего программного обеспечения".
...
Рейтинг: 0 / 0
78 сообщений из 78, показаны все 4 страниц
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Выпустили альфу новой СУБД SoQoL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]