Обновить
64K+

PostgreSQL *

Свободная объектно-реляционная СУБД

169,15
Рейтинг
Сначала показывать
Порог рейтинга

Релизный вебинар - выход Кибер Бэкапа 19

Представим обновление нашего флагманского продукта — системы резервного копирования Кибер Бэкап 19.

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

25.10.2026 в 13:00 МСК проведем онлайн вебинар, на котором обсудим следующие темы:

  • Расширенная интеграция с PostgreSQL и СУБД на ее основе: развитие многопоточности и новые механизмы защиты

  • Интеграция с VMmanager и снижение нагрузки на сеть при защите ВМ под управлением VMware

  • Интеграция с RuPost

  • Развитие возможностей защиты Mailion и Exchange

  • Повышенная масштабируемость защиты Почты VK WorkSpace

  • Интеграция с Zabbix, MAX и новая система уведомлений

  • Интеграция с решением для неизменяемого хранения резервных копий

  • Новая система лицензирования

  • Начало закрытого тестирования Кибер Медиасервера

Регистрация

Теги:
+3
Комментарии0

Новый вебинар из серии «Быстрый старт»

Переход на PostgreSQL и отечественные СУБД требует пересмотра привычных подходов к бэкапам. ИТ-специалистам приходится выбирать между нативными утилитами и централизованной системой резервного копирования. На вебинаре разберем, как найти оптимальный баланс, и на примере Postgres Pro покажем сценарии защиты и быстрого восстановления данных с Кибер Бэкапом.

15.10.2026 в 11:00 МСК проведем онлайн вебинар, на котором обсудим следующие темы:

  • Вызовы миграции

    • Почему при переходе на российские СУБД не обойтись старыми методами защиты

  • Эволюция поддержки бэкапа PostgreSQL в Кибер Бэкапе

    • Как мы развивали поддержку от версии к версии

  • Инкрементный бэкап и восстановление

    • Современные сценарии для баз данных

  • Кластерные конфигурации

    • Нюансы защиты распределенных сред

  • Демонстрация

    • Установка и настройка агента для PostgreSQL, инкрементный бэкап и восстановление данных, подходы к решению типовых проблем.

Регистрация

Теги:
+3
Комментарии0

Центр управления СУБД Digital Q.DataBase.
Продолжаю делиться выступлениями с первого сезона ДНЯ СУБД 2026.

Я рассказывал, как мы воспроизводим функциональность MS SQL Server в нашей СУБД Digital Q.DataBase (без переписывания бизнес логики), а мой коллега Илья Лебедев - как воспроизводим возможности Oracle.

Теперь - о том, как всем этим управлять.
Сразу говорю: Инструмент бесплатный.
А серверная часть нашей СУБД тоже бесплатная - до 4 ядер.
По секрету: можем легко дать и больше ядер.

Выкладываю полное видео выступления Андрея Акимова, руководителя команды «Центр управления Digital Q.DataBase». Андрей рассказывает и показывает, как объединить мониторинг, администрирование и диагностику баз данных в одном веб-интерфейсе.

В докладе - возможности продукта, поддержка Digital Q.DataBase и практические задачи администратора БД: проверить состояние баз, отследить рост таблиц и разобраться, почему тормозит запрос, с помощью трассировки сессий.

Видео с тайм-кодамина:
VK
Rutube
Dzen
YouTube

Кстати, второй сезон ДНЯ СУБД уже близко - встречаемся 27 октября. Приходите!

🔹 Бесплатное получение дистрибутива: 
https://database.diasoft.ru/?utm_source=andrei
🔹 Документация: доступна внутри дистрибутива
🔹 Telegram-сообщество Digital Q.DataBase: https://t.me/dqdatabase
🔹 MAX: https://max.ru/channel_dqdatabase

Подписывайтесь на наши сообщества, чтобы получать новости, технические материалы и информацию о новых вебинарах.

СУБД, которая понимает диалекты Oracle, MS SQL и PostgreSQL,– без переписывания кода приложений.

Теги:
+10
Комментарии1

24 сентября на бесплатном вебинаре «Операторы надмножеств в PostgreSQL: теория и практика» разберем операторы надмножеств в контексте их применения для решения реальных задач обработки данных в PostgreSQL. Обсудим требования к совместимости наборов записей, синтаксические особенности и логику работы каждого оператора.

На вебинаре:

✔️ требования к совместимости наборов записей

✔️ основные операторы и их варианты

✔️ синтаксис и логика работы каждого

✔️ отличия вариантов в производительности запросов

✔️ практический разбор отчёта из реальной задачи

Кому будет полезно:

👨‍💻 Big Data Analyst

👨‍💻 разработчикам, работающим с PostgreSQL

👨‍💻 всем, кто хочет уверенно применять множественные операции в повседневной работе

Что нужно знать заранее:

только основы — умение писать простые запросы к таблицам БД. Всё остальное разберём в эфире.


📆 Когда: 24 сентября в 18:00 (Мск)

👨‍🎓 ️Спикер: Щенников Олег, специалист в области проектирования и разработки БД PgSQL

✍️ Записаться

Теги:
+3
Комментарии0

Как перенести приложение с Oracle Forms в веб, сохранив бизнес-логику и привычное поведение экранных форм?

Ранее я уже показывал, как наша СУБД исполняет PL/SQL-код на лету.

Сегодня продолжаем тему: в новом видео разбираем технологию автоматизированного переноса приложений Oracle Forms на Go и демонстрируем её работу на примере тестового приложения.

► Рассказываем, почему замены СУБД недостаточно и что усложняет ручной перенос. Показываем, как из файлов .fmb извлекаются метаданные, SQL и PL/SQL-код, как преобразуются триггеры и как связаны JSON, сервер на Go и браузерный интерфейс.

В представленном решении около 70% работ выполняется автоматически. Оставшаяся часть - адаптация интерфейса и разработка Go-компонентов для конкретных форм.

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

Видео также доступно на (в них есть также и таймкоды):
VK
Rutube
Dzen
YouTube

► С 1 сентября 2026 года компания «Диасофт» переходит на новую лицензионную политику СУБД Digital Q.DataBase (до 4-х ядер бесплатно). 

🔹 Бесплатное получение дистрибутива: 
https://database.diasoft.ru/?utm_source=andrei
🔹
 Документация: доступна внутри дистрибутива
🔹 Telegram-сообщество Digital Q.DataBase: https://t.me/dqdatabase
🔹
 MAX: https://max.ru/channel_dqdatabase
🔹
 RuDB : https://database.ru

Подписывайтесь на наши сообщества, чтобы получать новости, технические материалы и информацию о новых вебинарах.

СУБД, которая понимает диалекты Oracle, MS SQL и PostgreSQL,– без переписывания кода приложений.

Теги:
+12
Комментарии0
redb 4.0.1
redb 4.0.1

redb 4.0.1: транзакции, изоляция кластеров и SQL-коннектор по канону Camel

Через неделю после мажора 4.0 вышла 4.0.1. Первые внедрения четвёртой версии принесли много обратной связи, и этот выпуск её отрабатывает: больших новых функций немного, зато заметно выросла надёжность под нагрузкой и в транзакциях. Все четыре продукта снова на одном номере, 77 пакетов.

redb.Core

  • Всё, что redb делает внутри общей транзакции .NET (TransactionScope), теперь фиксируется или откатывается вместе с ней, на MSSQL, PostgreSQL и SQLite.

  • Ленивые загрузки идут по соединению того, кто читает, без скрытых соединений.

  • Кэш Props держит нагрузку, а объекты по списку идентификаторов загружаются одним запросом.

  • Нативное расширение SQLite сверяет свою версию при старте и называет устаревший файл, если он попался.

redb.Route

  • Единица работы стала предсказуемой: сначала фиксируется база, потом брокеры, а повтор оборачивает транзакцию целиком. Необработанный сбой везде остаётся сбоем, обработка ошибок ведёт себя как в Apache Camel.

  • SQL-коннектор прошёл полное ревью: пакетная запись с откатом при первой ошибке, точки сохранения для частичной записи, строгое отображение результатов в классы, параметры в синтаксисе Camel.

  • Сбойный файл больше не тормозит всю пачку у файловых консюмеров, появился отложенный опрос.

  • LLM-агенты учитывают побочные эффекты инструментов, сохраняют рассуждения модели, считают бюджет и стоимость.

  • На обмене появилась личность вызывающего, общая для всех входящих транспортов.

redb.Tsak

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

  • Модуль, который не смог стартовать, откатывается на работавшую версию, а перезагрузка одного пакета не задевает соседние модули контекста.

  • Дашборд снова обновляется сам и отправляет действия на узел нужного кластера.

redb.Identity

  • API управления больше не считает вызов доверенным только потому, что он пришёл изнутри процесса.

  • Одно DPoP-доказательство нельзя использовать дважды даже при одновременных запросах.

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

Что учесть при обновлении

  • Tsak: если на одной базе живут несколько кластеров, перед обновлением остановите все узлы этой базы.

  • Route: параметры в SQL-запросах переходят на синтаксис Camel, а единица работы и обработка ошибок стали строже. Это стоит проверить на своих маршрутах.

Pro по-прежнему бесплатен и не требует ключа. Полные списки изменений на redb.ru/releases, исходники на GitHub.

Если было полезно, ⭐ на GitHub поможет другим это найти.

Другие мои статьи — redb.ru/articles, ещё — на Хабре.

Теги:
-2
Комментарии0

В копилку обновлений PostgreSQL 

Добавили восемь расширений, которые закрывают типовые задачи вашего проекта средствами самой базы:

Настроить поиск:

1️⃣ fuzzystrmatch — помогает находить похожие по написанию строки, в том числе с опечатками.

2️⃣ unaccent — игнорирует диакритические знаки в буквах при поиске. 

Для работы с гео:

3️⃣ earthdistance — считает расстояние между двумя точками по координатам.

4️⃣ cube — нужен для работы earthdistance, а еще ищет похожие записи сразу по нескольким числовым параметрам.

Упростить структуры данных:

5️⃣ ltree — упорядочивает данные с уровнями вложенности: раздел, подраздел, элемент.

6️⃣ hstore — хранит пары «ключ — значение» в одном поле, даже если набор ключей отличается у разных записей.

7️⃣ intarray — ускоряет работу с массивами целых чисел: добавляет свои операции и индексы для быстрого поиска.

Увеличить производительность:

8️⃣ pg_prewarm — позволяет заранее загрузить нужные данные в кеш и снизить просадку производительности после перезапуска.

Как включить: выберите нужный кластер → «Конфигурация»  → «Расширения»  → «Изменить». Все доступные расширения описаны в документации.

В комментариях делитесь, какие еще расширения стоит добавить👇🏻

Теги:
+13
Комментарии0

В этом небольшом видео показываю работу службы отчётности Digital Q.DataBase и поддержку RDL (Report Definition Language) — формата описания отчётов, используемого в Microsoft SQL Server Reporting Services (SSRS).

► При миграции с Microsoft SQL Server одной из сложных задач становится сохранение существующей отчётности. В корпоративных системах могут годами накапливаться сотни и тысячи RDL-отчётов, а их перенос на другой стек способен превратиться в отдельный большой проект.

В СУБД Digital Q.DataBase (которая понимает PL/pgSQL, PL/SQL, T-SQL) реализована совместимость с RDL и привычными механизмами SSRS, чтобы существующие отчёты и интеграции можно было переносить с минимальными изменениями.

🔹 Служба отчётов Digital Q.DataBase
Аналог SQL Server Reporting Services (SSRS).
Поддержка RDL-отчётов.
Формирование отчётов в HTML и PDF.

Видео также доступно на:
VK
RuTube  
Dzen 
YouTube

► С 1 сентября 2026 года компания «Диасофт» переходит на новую лицензионную политику СУБД Digital Q.DataBase (до 4-х ядер бесплатно). 

🔹 Бесплатное получение дистрибутива: 
https://database.diasoft.ru/?utm_source=andrei
🔹
 Документация: доступна внутри дистрибутива
🔹 Telegram-сообщество Digital Q.DataBase: https://t.me/dqdatabase
🔹
 MAX: https://max.ru/channel_dqdatabase
🔹
 RuDB : https://database.ru

Подписывайтесь на наши сообщества, чтобы получать новости, технические материалы и информацию о новых вебинарах.

СУБД, которая понимает диалекты Oracle, MS SQL и PostgreSQL,– без переписывания кода приложений.

Теги:
+11
Комментарии2

Как разглядеть инженера за AI-агентом?

У вашего удалённого коллеги может быть идеальное резюме, GitHub, живой аватар в корпоративном чате и безупречно заполненные документы любого вида - да хоть на японском. Количество кода и даже его функциональность тоже мало что о нём скажут: результат его труда, весьма вероятно, произведён или основательно переработан LLM и несёт её характерный «акцент». Да, известно, что все носят маски. Однако теперь эту маску обеспечивает технология.

Распределённые инженерные команды уже стали нормой: доступ к широкому рынку труда перевешивает неудобства. Однако лёгкой такая работа не бывает - фокус, общий ритм, культура команды и обмен опытом на удалёнке держатся плохо, и оптимальной схемы мы, похоже, так и не нашли. А AI-агенты ещё и добавляют сложности в эту, несовершенную, систему.

Казалось бы, ничего нового — но разница в масштабе. Раньше фасад требовал усилий и рано или поздно трещал. Теперь его можно производить систематически, в промышленных объёмах и без видимых швов. Всё, что приходит от коллеги асинхронно — коммиты, тесты, документация, - теперь говорит скорее о том, как он настраивает своё LLM-приложение и подбирает ему скиллы, чем о нём самом. Понять человека и оценить его вовлечённость остаётся возможным только в моменты прямой коммуникации. Поэтому сейчас совершенно непонятно, как устанавливать контакт с удалённым коллегой и чувствовать пульс инженерного процесса.

Зачем нам вообще знать реальное положение дел? Что в действительности умеет коллега? Насколько он вдумчив и ответственен, насколько критичен к результатам своего труда? Без ответов нельзя планировать, оценивать трудоёмкость и прикидывать сроки. Но важнее другое: нельзя решить, кому доверить архитектурно значимый кусок системы.

Внимательный читатель резонно спросит: если результат проекта — это продукт, и он создаётся по графику, какая разница, что происходит на стороне удалённого коллеги?

Разница в том, что AI напишет не только код, но и регрессионные и нагрузочные тесты — вне зависимости от квалификации инженера. И часть этой большой работы может оказаться подгонкой под результат, чем AI частенько грешит: тест, подкрученный так, чтобы позеленеть, выглядит ровно как честный. Какие шаги предпринимает коллега, чтобы этого не случилось, мы не знаем, его техпроцесс работы с AI непрозрачен. И ещё: расширяемость кода, простота поддержки и количество потенциальных проблем - слищком абстрактные понятия для нынешного AI. А как решил эти вопросы инженер и почему из кода не видно.

Приведу пример из практики — Self-Join Elimination в PostgreSQL. Фича шла в ядро семь лет, один раз откатывалась уже после коммита и после релиза 18 продолжала собирать багфиксы. Недавно Tom Lane переделал её. Раньше, обнаружив самосоединение, Postgres удалял избыточный JOIN и перестраивал все ссылки на него в дереве запроса и структурах плана. Tom от этого отказался: новая реализация правит только дерево запроса и перезапускает планирование с нуля уже по новому дереву. По формальным меркам решение выглядит хуже - планирование дорожает. Выигрыш в другом: исчезает целый класс ошибок, которыми фича успела обрасти.

Заметьте, где здесь виден инженер. Ни диф, ни зелёные тесты не покажут, что человек осознанно заплатил скоростью планирования за надёжность. Мы знаем об этом только потому, что он это проговорил. И это, пожалуй, единственная зацепка, которая у нас остаётся: требовать от коллеги не код с тестами, а сформулированные компромиссы — почему так, чем заплатили, от чего отказались. Ровно то, чего pgsql-hackers требует от любого патча: без обоснования он принят не будет.

Таким образом, качественный и сложный код сам по себе перестал быть мерилом уровня инженера и что должно придти этому на смену, пока непонятно. А какие методы работают у вас при управлении распределённой командой в эпоху AI-агентов? Что помогает, а что уже очевидно устарело?

THE END.
11 сентября 2026 г., Утрехт, Голландия.

Теги:
+6
Комментарии4

PostgreSQL без единой точки отказа: как Patroni помогает переживать сбои в продакшене

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

Для таких сценариев используют Patroni — инструмент управления высокодоступными кластерами PostgreSQL. Он помогает выстроить автоматическое переключение ролей, контролировать состояние узлов и снизить риски при авариях.

На открытом уроке 23 сентября в 20:00 разберём, как устроен Patroni внутри, из каких компонентов состоит его архитектура и какие решения помогают поддерживать PostgreSQL-кластеры в рабочем состоянии. Практическими примерами поделится преподаватель курса «Высоконагруженные системы: архитектура и масштабирование». Присоединяйтесь.

Посмотреть другие темы и выбрать подходящий бесплатный урок по инфраструктуре можно в дайджесте.

Теги:
+5
Комментарии0

Digital Q.DataBase 18.2 | Выполняем Oracle-скрипты в DBeaver и qclient

В этом коротком видео я демонстрирую работу модуля Onyx в Digital Q.DataBase и выполнение PL/SQL-скриптов, написанных для Oracle Database.

► В основном примере (через qclient) выполняется полноценный PL/SQL-сценарий: создаётся таблица, объявляются PACKAGE и PACKAGE BODY с процедурами, используется отдельная функция и анонимный PL/SQL-блок.

В скрипте используются характерные для Oracle механизмы: NUMBER, VARCHAR2, CLOB, SYSDATE, DUAL, ADD_MONTHS, а также пакеты DBMS_LOB и DBMS_OUTPUT. Скрипт компилируется и выполняется непосредственно в модуле Onyx.

► Также показываю, что работать с Onyx можно привычным способом через DBeaver. 

Подключаемся к Digital Q.DataBase по характерному для Oracle порту 1521 и прямо из SQL-редактора выполняем обычный PL/SQL-скрипт: создаём таблицу employees_1, хранимую процедуру add_employee_1, вызываем её через CALL и проверяем результат обычным SELECT.

То есть для разработчика работа выглядит привычно: DBeaver, PL/SQL, процедуры, Oracle-типы и Oracle-синтаксис - но исполняется всё в Digital Q.DataBase Onyx.

Это позволяет переносить существующие Oracle-приложения и PL/SQL-код с минимальным объёмом изменений.

При этом для работы с Digital Q.DataBase можно использовать и привычные специалистам по Oracle инструменты: существующие средства администрирования, разработки и подключения могут работать с модулем Onyx через Oracle-совместимый интерфейс и порт 1521.

Видео также доступно на:
VK 
RuTube  
Dzen 
YouTube

► С 1 сентября 2026 года компания «Диасофт» переходит на новую лицензионную политику СУБД Digital Q.DataBase (до 4-х ядер бесплатно). 

🔹 Бесплатное получение дистрибутива: 
https://database.diasoft.ru/?utm_source=andrei
🔹 Документация: доступна внутри дистрибутива
🔹 Telegram-сообщество Digital Q.DataBase: https://t.me/dqdatabase
🔹 MAX: https://max.ru/channel_dqdatabase
🔹 RuDB : https://database.ru

Подписывайтесь на наши сообщества, чтобы получать новости, технические материалы и информацию о новых вебинарах.

СУБД, которая понимает диалекты Oracle, MS SQL и PostgreSQL,– без переписывания кода приложений.

Теги:
+8
Комментарии2

Digital Q.DataBase 18.2 | Выполняем MS SQL скрипты в DBeaver и Python

В этом коротком видео я демонстрирую, как Digital Q.DataBase 18.2 исполняет нативный T-SQL скрипт через DBeaver (в SSMS тоже делает), а также как те же объекты доступны из Python через библиотеку pymssql по протоколу TDS.

► В примере используются GO, SET DATEFORMAT, OBJECT_ID, sys.objects, INFORMATION_SCHEMA, вычисляемые столбцы, хранимые процедуры GetSalesReport и CalculateManagerBonus, а также их вызов из Python с обработкой нескольких наборов результатов.

Видео также доступно на:
VK 
RuTube  
Dzen 
YouTube

► С 1 сентября 2026 года компания «Диасофт» переходит на новую лицензионную политику СУБД Digital Q.DataBase (до 4-х ядер). 

🔹 Бесплатное получение дистрибутива: 
https://database.diasoft.ru/?utm\_source=andrei
🔹
 Документация: доступна внутри дистрибутива
🔹 Telegram-сообщество Digital Q.DataBase: https://t.me/dqdatabase
🔹
 MAX: https://max.ru/channel_dqdatabase
🔹
 RuDB : https://database.ru

Подписывайтесь на наши сообщества, чтобы получать новости, технические материалы и информацию о новых вебинарах.

СУБД, которая понимает диалекты Oracle, MS SQL и PostgreSQL,– без переписывания кода приложений.

#DigitalQDataBase #Diasoft #MSSQL

Теги:
Всего голосов 11: ↑11 и ↓0+14
Комментарии4

PostgreSQL WAL, fsync и p99 на NVMe: что ограничивает запись

Чтобы оценить PostgreSQL WAL, fsync и p99 на NVMe, смотреть нужно на время commit. На p99 влияют файловая система, метод синхронизации, защищённость кэша, RAID или виртуализация и профиль транзакций.

Какая операция WAL сильнее всего влияет на задержку commit?

При synchronous_commit=on задержку commit обычно определяет flush WAL на диск: PostgreSQL отвечает после локальной синхронизации. При синхронной репликации добавляется ожидание ответа standby, а блокировки, высокая загрузка CPU или сеть могут сильнее повлиять на результат и скрыть задержку накопителя.

От записи WAL до подтверждения клиенту

Задержка записи WAL PostgreSQL включает путь от WAL-буферов до диска: XLogFlush сбрасывает WAL до нужного LSN через ядро, файловую систему и контроллер. Изменённые страницы пишутся отдельно, поэтому связь с checkpoint проверяют по времени.

Какие гарантии должны оставаться одинаковыми в каждом тесте

Зафиксируйте synchronous_commit, fsync, full_page_writes, способ синхронизации, параметры монтирования и режим кэша. При fsync=off сбой повредит кластер. Сравнивайте p99 fsync на NVMe без смены гарантий.

Очереди, прошивка, температура и заполнение накопителя

Снимите nvme id-ctrl /dev/nvme0, nvme smart-log /dev/nvme0 и укажите тип подключения. Отчёт от 27 мая 2025 года: бенчмарк pg_test_fsync для PostgreSQL 16 показал 1643 мкс на fdatasync для Samsung 990 Pro с XFS и 24 мкс для Micron 7400 с PLP в другом стеке. Разница здесь между классами накопителей, а не между конкретными моделями.

Почему пиковые IOPS NVMe не предсказывают p99 fsync?

Пиковые IOPS достигаются при глубокой очереди, а синхронный WAL часто ждёт одиночный flush. Средняя пропускная способность скрывает редкие паузы кэша, прошивки или сборки мусора. При этом паспортный показатель помогает при первичном отборе, но не заменяет длительное измерение задержки fsync на том же стеке, где будет лежать pg_wal.

pg_test_fsync и fio при шаблоне, похожем на WAL

В той же файловой системе, что и pg_wal, запустите

pg_test_fsync -f /test/pgfs -s 30

затем fio на отдельном файле:

fio --name=wal --filename=/test/wal.fio --size=2G --rw=write --bs=8k --iodepth=1 --fdatasync=1 --runtime=300 --time_based --output-format=json+

Если при одинаковой нагрузке вместе растут задержка synchronous_commit и fio sync latency, проверяйте накопитель.

Как fsync проявляется в pgbench под управляемой нагрузкой

Создайте базу

pgbench -i -s 100 benc

и выполните по три 10-минутных прогона при N=1, 8 и 32:

pgbench -M prepared -c N -T 600 -l bench

По журналам рассчитайте p50, p95 и p99. Их рост вместе с задержкой fsync и очередью указывает на узкое место хранилища WAL.

Queue depth, await и редкие провалы NVMe

Параллельно снимайте iostat -x 1 и nvme smart-log. Рост await и aqu-sz вместе с пиками commit latency указывает на очередь. Но похожую картину даёт checkpoint, поэтому сопоставляйте метрики по времени и фиксируйте wal_sync_method.

Как правильно интерпретировать pg_test_fsync?

1. Сравнивайте методы на файловой системе будущего pg_wal.

2. Читайте полный вывод вместе с условиями теста.

3. Сверяйте результаты с pgbench и мониторингом: микротест не предсказывает p99 commit.

Что меняет профиль записи, а что меняет гарантию

При групповом commit один flush обслуживает несколько транзакций, поэтому throughput и queue depth меняются с конкуренцией. wal_sync_method выбирают по результатам теста. synchronous_commit=off грозит потерей подтверждённых транзакций: это другая гарантия сохранности, а не настройка производительности.

Как перевести измерения в требование к хранилищу

Например, SLO допускает до 1% транзакций дольше 10 мс и до 30 секунд непрерывного нарушения. Тест проводят при рабочем заполнении. После смены прошивки, файловой системы или хоста снова проверяют tail latency.

Хранилище выбирают по p99 commit при тех же гарантиях сохранности. PostgreSQL WAL, fsync и p99 на NVMe сопоставляют по времени: pg_test_fsync измеряет flush, pgbench его эффект, а iostat – состояние очереди.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Ближайшие события

Программа Tantor JAM 2026

10 сентября (чт) в Москве особое мероприятие для всех, кто интересуется передовыми решениями в области СУБД: компании «Тантор Лабс» исполняется пять лет. Мы приглашаем разработчиков СУБД, инженеров, архитекторов, администраторов, представителей заказчиков и партнеров, чтобы обсудить, куда движется российская инфраструктура данных и какие технологии уже сейчас меняют привычный подход к работе с Postgres-инфраструктурой.

Программа и регистрация

  • Вадим Яценко, генеральный директор «Тантор Лабс». 5 лет «Тантор Лабс». Российским СУБД пора играть по-крупному

  • Алексей Барган, руководитель отдела разработки Платформы Tantor
    AI-first подход в управлении и администрировании СУБД. Как меняется профессия DBA?

  • Семен Курепин, пресейл-инженер
    Платформа Tantor 7.0: Интеграция предиктивной аналитики в контур эксплуатации СУБД

  • Екатерина Мартьянова, директор по продукту Tantor XData; Михаил Сёмкин, team lead СУБД Tantor Polar
    Машина баз данных Tantor XData Gen3: постгресовый дрифт в сторону enterprise

  • Максим Милютин, руководитель группы исследований и разработки
    Нативная (без ETL) аналитика на оригинальных данных. PX-движок для Tantor Polar

  • Александр Симонов, технический руководитель направления развития 1С
    Postgres для 1С: от «работает» к «быстро» — за два года

  • Сергей Соловьев, разработчик СУБД Tantor Postgres
    Новая эпоха TDE

  • Андрей Погудин, инженер
    Защита данных в Tantor Postgres

Программа и регистрация

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

10 августа я провёл вебинар, посвящённый новым возможностям Digital Q.DataBase 18.2 - СУБД + AI в Digital Q.DataBase

В программе:

🔹 Развитие полиглотной платформы единая платформа для PostgreSQL, Microsoft SQL Server и Oracle; новые возможности совместимости;
🔹 Новые возможности RuDB новые пакеты; развитие функциональности;
🔹 ИИ и векторный поиск поддержка векторных операций;
🔹 KV-хранилище DGrid развитие встроенного KV-хранилища; архитектура решения;

► Бесплатная полнофункциональная версия дистрибутива (до 8 ядер) с возможностью использования в том числе в коммерческих целях.

► С 1 сентября 2026 года компания «Диасофт» переходит на новую лицензионную политику СУБД Digital Q.DataBase (до 4-х ядер). 

🔹 Бесплатное получение дистрибутива: 
https://database.diasoft.ru/?utm\_source=andrei
🔹 Документация: доступна внутри дистрибутива
🔹 Telegram-сообщество Digital Q.DataBase: https://t.me/dqdatabase
🔹 MAX: https://max.ru/channel_dqdatabase
🔹 RuDB : https://database.ru

Подписывайтесь на наши сообщества, чтобы получать новости, технические материалы и информацию о новых вебинарах.

Запись вебинара доступна на следующих площадках:

RuTube
Dzen
YouTube
VK

#DigitalQDataBase #Diasoft #PostgreSQL #AI #Импортозамещение

Теги:
Всего голосов 10: ↑9 и ↓1+8
Комментарии0

Как redb хранит сложные объекты: не бесхемная свалка, а RTTI

Про redb (RedBase) есть два зеркальных заблуждения. Первое: раз объект пишется «как документ», внутри лежит сериализованный JSON или блоб. Второе, противоположное: раз всё падает в общую таблицу значений — значит это плоский мешок пар «ключ-значение» без схемы.

Оба мимо. То, что внутри — это RTTI, полноценная система типов, живущая в самой базе. И устроена она заметно сложнее, чем и блоб, и «атрибут-значение». Разбор архитектуры я подробно давал в отдельной статье на Хабре: «redb: реляционное хранилище объектов» — ниже сжатая суть.

Слой типов: база знает настоящий тип каждого поля

redb хранит не только данные, но и их описание типов — три связанных уровня:

  • types — реальные дескрипторы типов (db_type и соответствие .NET-типу);

  • _schemes — сами типы (классы), с поддержкой наследования через self-reference;

  • structures — типизированные поля схемы: имя (name), тип (_id_type, FK на types), признак коллекции (collection_type) и вложенность (_id_parent).

Значения в values всегда привязаны к конкретной структуре (id_structure, FK на structures). Поэтому строка values — это не безымянная пара «атрибут-значение»: это значение известного, именованного, типизированного, возможно вложенного поля известного класса. База в рантайме знает, что перед ней — decimal Salary в схеме Employee, а не абстрактный «атрибут №42». Это и есть RTTI.

Хранение коллекций: построчно, реляционно

Вложенные массивы, словари и глубокие иерархии redb раскладывает в _values построчно, а не строкой:

  • Никаких JSON-блобов на диске. Каждый элемент коллекции — отдельная строка с типизированными колонками (_value_long, valuestring, valuedatetime, valueguid, …), внешними ключами и обычными индексами.

  • Связь и порядок — реляционные. Вложенность собирается self-reference колонкой arrayparent_id (FK на values.id, ON DELETE CASCADE). Порядок массива и ключи словаря — в arrayindex (text: '0','1','2' для массивов, строковый ключ — для словарей).

  • Один элемент — одна строка. List<OrderItem> внутри класса не превращается ни в JSON-поле, ни в десяток физических таблиц, которые вы заводите руками.

Что это даёт на практике

  1. Честный LINQ на уровне СУБД. Данные лежат в типизированных колонках, а метаданные структур позволяют движку собрать нативный SQL: Where / OrderBy / GroupBy / оконные функции идут по реальным индексам базы, а не перебором JSON в памяти бэкенда.

  2. Загрузка за один запрос без каскада JOIN-ов. Чтобы поднять объект со всей глубиной вложенности (пусть там 20–30 списков), не нужен каскад JOIN, как у EF с .Include(). Плоская структура забирается из _values одним запросом и собирается в объект в памяти.

  3. Точечный Change Tracking (Pro). При сохранении Pro-версия строит деревья ValueTreeNode (память против БД), сравнивает их (ValueTreeBuilder / ValueTreeDiff) и шлёт UPDATE только по изменившимся узлам — граф целиком не перезаписывается.

Итог: redb совмещает удобство работы с объектами «как с документами» и фундамент реляционной СУБД — типизацию, индексы, FK и запросы, которые исполняет база, а не бэкенд. Ключ к этому — не блоб и не плоский мешок атрибутов, а persisted-RTTI: types → schemes → structures → values.

Ссылки

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Информационные технологии. Проблемы и решения – IT'DAYS

Сегодня всё чаще говорят: импортозамещение заканчивается там, где начинается переписывание миллионов строк бизнес-логики.

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

Digital Q.DataBase — именно такая СУБД. Она воспроизводит функциональные возможности Microsoft SQL Server и Oracle Database, позволяя существенно сократить объём доработок существующих информационных систем при миграции.

Отличный повод вспомнить моё выступление на международной конференции «Информационные технологии. Проблемы и решения – IT'DAYS» в Уфе.

► Бесплатная полнофункциональная версия дистрибутива (до 8 ядер) с возможностью использования в том числе в коммерческих целях.

🔹 Бесплатное получение дистрибутива: https://database.diasoft.ru/?utm\_source=andrei
🔹 Документация: доступна внутри дистрибутива
🔹 Telegram-сообщество Digital Q.DataBase: https://t.me/dqdatabase
🔹 MAX: https://max.ru/channel_dqdatabase
🔹 RuDB : https://database.ru

Подписывайтесь на наши сообщества, чтобы получать новости, технические материалы и информацию о новых вебинарах.

Теги:
Всего голосов 9: ↑7 и ↓2+5
Комментарии5

redb ecosystem
вышла версия 3.5.0(1) nuget
в ней Локальная база на клиенте
также новый коннектор redb.Route.As2 github
добавлены EIP паттерны
Message History EIP 
XSLT transformation
Routing Slip EIP 

посмотреть можно здесь github.com/redbase-app

хабр

Теги:
Всего голосов 2: ↑2 и ↓0+5
Комментарии0

Приглашаем на вебинар «СУБД + AI: векторные операции, LLM и полиглотная архитектура в Digital Q.DataBase»

10 августа в 13:00 (мск) компания «Диасофт» проведет практический вебинар о новых возможностях Digital Q.DataBase «СУБД + AI: векторные операции, LLM и полиглотная архитектура в Digital Q.DataBase».

Вебинар «СУБД + AI: векторные операции, LLM и полиглотная архитектура в Digital Q.DataBase»
Вебинар «СУБД + AI: векторные операции, LLM и полиглотная архитектура в Digital Q.DataBase»

Ключевые темы:

  • Полиглотная архитектура Digital Q.DataBase. Как в единой среде работать с базами PostgreSQL, Microsoft SQL Server и Oracle

  • Симбиоз СУБД и AI. Поддержка векторных операций и интеграция с большими языковыми моделями (LLM) под капотом СУБД

  • Высокая скорость работы с данными. Архитектура и новые возможности встроенного KV-хранилища DGrid для сверхбыстрого доступа к информации

  • Развитие RuDB. Обзор новой функциональности и обновленных пакетов платформы

Зарегистрироваться на вебинар можно по ссылке.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Как реализовать семантический поиск для RAG-архитектуры в PostgreSQL без усложнения инфраструктуры?

Ситуация: вы разрабатываете чат-бота для техподдержки на базе RAG-архитектуры. Используете PostgreSQL как хранилище знаний и делаете поиск по текстовым полям, но качество ответов нестабильное: система плохо справляется с синонимами, профессиональным сленгом и переформулировками запросов. Обязательно ли внедрять отдельную векторную базу данных, или можно реализовать семантический поиск прямо в PostgreSQL? Возможна ли простая проверка продуктовой гипотезы без усложнения архитектуры?

Да, семантический поиск в RAG-сценариях можно реализовать прямо в PostgreSQL без выделенной векторной базы данных (ClickHouse, Opensearch, Qdrant, Milvus и т. д). 

Для этого используется PostgreSQL + расширение pgvector, которое добавляет поддержку хранения эмбеддингов (векторов) и поиск по расстоянию до ближайших соседей (KNN) прямо внутри SQL-движка. Разберем, как это работает на практике.

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

Для этой задачи будем использовать pgvector — это расширение к PostgreSQL, которое добавляет тип данных vector и операторы поиска по расстоянию до ближайших соседей (KNN).

Поддерживаются три основные метрики сравнения векторов:

  • L2 (евклидово расстояние) — классическое расстояние между двумя точками в многомерном пространстве. Хорошо работает, если векторы не нормализованы и распределение значений относительно равномерное.

  • Cosine similarity (косинусное сходство). В отличие от предыдущей метрики измеряет не абсолютное расстояние, а угол между двумя векторами. Подходит для текстовых эмбеддингов, где важна направленность, а не масштаб. Требует нормализации векторов.

  • Inner product (внутреннее произведение) — скалярное произведение двух векторов. Может использоваться как прокси для оценки «сходства» при обучении моделей и в задачах ранжирования.

Допустим, мы получаем на наш запрос именно такой вектор от модели OpenAI. Для хранения создаем таблицу с типом VECTOR:

CREATE TABLE items (
 id SERIAL PRIMARY KEY,
 title TEXT,
 embedding VECTOR(1536)
);

Добавим данные для нескольких векторов разных объектов:

INSERT INTO items (title, embedding) VALUES
 ('PostgreSQL embeddings', '[0.10, -0.80, 0.45]'),
 ('Neural image processing', '[0.42, 0.18, -0.35]'),
 ('Sound pattern matching', '[-0.20, 0.70, 0.60]'),
 ('Document clustering', '[0.09, -0.79, 0.48]');

Теперь сравним их попарно и отсортируем по расстоянию:

SELECT
  a.title AS title_a,
  b.title AS title_b,
  a.embedding <-> b.embedding AS distance
FROM items a
JOIN items b ON a.id < b.id
ORDER BY distance;

Оператор <-> здесь вычисляет расстояние между двумя векторами. Таким образом, мы можем оценивать степень семантической близости любых объектов, представленных векторами. Какая именно метрика используется, зависит от операторного класса, заданного при создании индекса.

В подобных RAG-сценариях нет необходимости сразу вводить отдельный класс инфраструктуры типа векторная БД. Семантический поиск можно реализовать эволюционно поверх существующего PostgreSQL.

А если вы не хотите самостоятельно заниматься настройкой индексов, тюнингом памяти и производительности, а также обновлением версии PostgreSQL, то воспользуйтесь DBaaS от Selectel. Мы предоставим вам кластер PostgreSQL с преднастроенными расширениями, готовый к эксплуатации под нагрузкой. Это позволит сосредоточиться на RAG-логике и качестве поиска, а не на инфраструктурной оптимизации.

Теги:
Всего голосов 8: ↑7 и ↓1+11
Комментарии0
1
23 ...