Уменьшаем базу данных в 2000 раз при помощи Rust (завершение)
Сериализация
По сути, мы получили косвенную базу данных в памяти. Далее нам нужно сериализовать её, чтобы проверить, как interning влияет на её постоянное хранение. Кроме того, сериализация — это важный шаг для проверки реальности заявленной экономии места. И, наконец, это ещё одна возможность для дальнейшего сжатия данных.
В Rust для сериализации стандартно используется крейт serde, который мы уже использовали для импортирования входных данных в JSON. Serde изначально имеет поддержку множества форматов благодаря крейтам расширений, поэтому я решил попробовать несколько из них.
Читать: https://habr.com/ru/articles/890250/
#ru
@database_design | Другие наши каналы
Сериализация
По сути, мы получили косвенную базу данных в памяти. Далее нам нужно сериализовать её, чтобы проверить, как interning влияет на её постоянное хранение. Кроме того, сериализация — это важный шаг для проверки реальности заявленной экономии места. И, наконец, это ещё одна возможность для дальнейшего сжатия данных.
В Rust для сериализации стандартно используется крейт serde, который мы уже использовали для импортирования входных данных в JSON. Serde изначально имеет поддержку множества форматов благодаря крейтам расширений, поэтому я решил попробовать несколько из них.
Читать: https://habr.com/ru/articles/890250/
#ru
@database_design | Другие наши каналы
👍1
Уменьшаем базу данных в 2000 раз при помощи Rust (завершение)
Сериализация
По сути, мы получили косвенную базу данных в памяти. Далее нам нужно сериализовать её, чтобы проверить, как interning влияет на её постоянное хранение. Кроме того, сериализация — это важный шаг для проверки реальности заявленной экономии места. И, наконец, это ещё одна возможность для дальнейшего сжатия данных.
В Rust для сериализации стандартно используется крейт serde, который мы уже использовали для импортирования входных данных в JSON. Serde изначально имеет поддержку множества форматов благодаря крейтам расширений, поэтому я решил попробовать несколько из них.
Читать: https://habr.com/ru/articles/890250/
#ru
@database_design | Другие наши каналы
Сериализация
По сути, мы получили косвенную базу данных в памяти. Далее нам нужно сериализовать её, чтобы проверить, как interning влияет на её постоянное хранение. Кроме того, сериализация — это важный шаг для проверки реальности заявленной экономии места. И, наконец, это ещё одна возможность для дальнейшего сжатия данных.
В Rust для сериализации стандартно используется крейт serde, который мы уже использовали для импортирования входных данных в JSON. Serde изначально имеет поддержку множества форматов благодаря крейтам расширений, поэтому я решил попробовать несколько из них.
Читать: https://habr.com/ru/articles/890250/
#ru
@database_design | Другие наши каналы
Хакеры взломали Минфин США с помощью Unicode. Как это вообще стало возможным?
Китайские хакеры взломали Минфин США через уязвимость PostgreSQL, связанную с Unicode. SQL-инъекция оставалась незамеченной 9 лет и позволила атакующим захватить контроль над сервером
Читать: «Хакеры взломали Минфин США с помощью Unicode. Как это вообще стало возможным?»
#ru
@database_design | Другие наши каналы
Китайские хакеры взломали Минфин США через уязвимость PostgreSQL, связанную с Unicode. SQL-инъекция оставалась незамеченной 9 лет и позволила атакующим захватить контроль над сервером
Читать: «Хакеры взломали Минфин США с помощью Unicode. Как это вообще стало возможным?»
#ru
@database_design | Другие наши каналы
Меньше кода, больше результата: применяем sqlc для работы с БД
Привет, Хабр! Инструмент, который генерирует производительный и безопасный код для работы с базой данных — миф или реальность? В этой статье обсудим, что такое sqlc, откуда он появился и какие идеи в него заложены. Разберём его возможности и ограничения, а также кейсы, когда он подходит лучше всего.
Читать: https://habr.com/ru/companies/uzum/articles/890654/
#ru
@database_design | Другие наши каналы
Привет, Хабр! Инструмент, который генерирует производительный и безопасный код для работы с базой данных — миф или реальность? В этой статье обсудим, что такое sqlc, откуда он появился и какие идеи в него заложены. Разберём его возможности и ограничения, а также кейсы, когда он подходит лучше всего.
Читать: https://habr.com/ru/companies/uzum/articles/890654/
#ru
@database_design | Другие наши каналы
Меньше кода, больше результата: применяем sqlc для работы с БД
Привет, Хабр! Инструмент, который генерирует производительный и безопасный код для работы с базой данных — миф или реальность? В этой статье обсудим, что такое sqlc, откуда он появился и какие идеи в него заложены. Разберём его возможности и ограничения, а также кейсы, когда он подходит лучше всего.
Читать: https://habr.com/ru/companies/oleg-bunin/articles/890654/
#ru
@database_design | Другие наши каналы
Привет, Хабр! Инструмент, который генерирует производительный и безопасный код для работы с базой данных — миф или реальность? В этой статье обсудим, что такое sqlc, откуда он появился и какие идеи в него заложены. Разберём его возможности и ограничения, а также кейсы, когда он подходит лучше всего.
Читать: https://habr.com/ru/companies/oleg-bunin/articles/890654/
#ru
@database_design | Другие наши каналы
TATLIN и Basis Dynamix: интеграция нашей платформы виртуализации с отечественной СХД
Работать с YADRO мы начали еще несколько лет назад, главной задачей нашего сотрудничества было и остается обеспечение совместимости между СХД TATLIN и нашей платформой управления динамической инфраструктурой Basis Dynamix Enterprise. Наша платформа и раньше умела работать с различными СХД — Hitachi, Huawei и других. Однако где-то были реализованы не все возможности, где-то не хватало веб-интерфейса и приходилось работать через консоль, где-то страдало быстродействие. Тесное сотрудничество с YADRO позволяло подходить к решению этих проблем с обеих сторон, плюс, многие наши заказчики регулярно интересовались развитием поддержки TATLIN.UNIFIED в наших продуктах. И вот на этой неделе мы объявили о более глубокой интеграции между TATLIN.UNIFIED Gen 2 и Basis Dynamix Enterprise, включающей поддержку репликации и мгновенных снимков через интерфейс платформы. О чем и хотим рассказать подробнее.
Читать: https://habr.com/ru/companies/basis/articles/890950/
#ru
@database_design | Другие наши каналы
Работать с YADRO мы начали еще несколько лет назад, главной задачей нашего сотрудничества было и остается обеспечение совместимости между СХД TATLIN и нашей платформой управления динамической инфраструктурой Basis Dynamix Enterprise. Наша платформа и раньше умела работать с различными СХД — Hitachi, Huawei и других. Однако где-то были реализованы не все возможности, где-то не хватало веб-интерфейса и приходилось работать через консоль, где-то страдало быстродействие. Тесное сотрудничество с YADRO позволяло подходить к решению этих проблем с обеих сторон, плюс, многие наши заказчики регулярно интересовались развитием поддержки TATLIN.UNIFIED в наших продуктах. И вот на этой неделе мы объявили о более глубокой интеграции между TATLIN.UNIFIED Gen 2 и Basis Dynamix Enterprise, включающей поддержку репликации и мгновенных снимков через интерфейс платформы. О чем и хотим рассказать подробнее.
Читать: https://habr.com/ru/companies/basis/articles/890950/
#ru
@database_design | Другие наши каналы
Маскировка объектов схем в подпрограммах SECURITY DEFINER в PostgreSQL
Подпрограммы (функции и процедуры) со свойством SECURITY DEFINER выполняются с правами владельца. Это даёт возможность непривилегированному пользователю выполнить маскировку объектов, к которым относятся не только таблицы, но и подпрограммы и выполнить команду с правами владельца подпрограммы. Если владелец является суперпользователем, то можно выполнить любую команду с правами суперпользователя. В статье рассматривается, как выполнить маскировку функции и как создавать безопасные подпрограммы.
Читать: https://habr.com/ru/articles/891032/
#ru
@database_design | Другие наши каналы
Подпрограммы (функции и процедуры) со свойством SECURITY DEFINER выполняются с правами владельца. Это даёт возможность непривилегированному пользователю выполнить маскировку объектов, к которым относятся не только таблицы, но и подпрограммы и выполнить команду с правами владельца подпрограммы. Если владелец является суперпользователем, то можно выполнить любую команду с правами суперпользователя. В статье рассматривается, как выполнить маскировку функции и как создавать безопасные подпрограммы.
Читать: https://habr.com/ru/articles/891032/
#ru
@database_design | Другие наши каналы
Новинки MariaDB: Connector/C++ 1.1.6 и 1.0.5
MariaDB объявила о выпуске обновлений для своего C++ Connector. Новая версия 1.1.6 стабильно поддерживает работу с подготовленными выражениями и включает улучшения, такие как кэширование бинарных результатов и исправление ошибок. Подробности и ссылки на загрузку — на официальном сайте.
Читать подробнее
#en
@database_design | Другие наши каналы
MariaDB объявила о выпуске обновлений для своего C++ Connector. Новая версия 1.1.6 стабильно поддерживает работу с подготовленными выражениями и включает улучшения, такие как кэширование бинарных результатов и исправление ошибок. Подробности и ссылки на загрузку — на официальном сайте.
Читать подробнее
#en
@database_design | Другие наши каналы
Как DORA повышает безопасность ИКТ
Переход на соответствие стандартам DORA может значительно усилить безопасность и устойчивость ИКТ-среды, обеспечивая защиту от сбоев. Автономные базы данных, изначально разработанные с учётом этих критериев, помогут вашей организации адаптироваться к новым требованиям.
Читать подробнее
#en
@database_design | Другие наши каналы
Переход на соответствие стандартам DORA может значительно усилить безопасность и устойчивость ИКТ-среды, обеспечивая защиту от сбоев. Автономные базы данных, изначально разработанные с учётом этих критериев, помогут вашей организации адаптироваться к новым требованиям.
Читать подробнее
#en
@database_design | Другие наши каналы
Oracle
Oracle Autonomous Database and DORA
Complying with DORA can lead to a more secure and resilient ICT environment capable of withstanding and recovering from ICT-related disruptions. The great news is that Autonomous Database has been designed with security and resiliency in mind, helping your…
Создание анонимного чата в Telegram: Бот с MiniApp интерфейсом. Часть 1 — Бэкенд на FastAPI, Aiogram, Redis и Centrifugo
Это первая статья из цикла, посвященного разработке телеграм-бота с MiniApp для случайных чатов. В этой части мы сосредоточимся на создании бэкенда, используя современные технологии: FastAPI для разработки API, Redis для хранения данных в реальном времени и Centrifugo для обеспечения мгновенного взаимодействия между пользователями. Сегодня мы подробно разберем архитектуру проекта, настройку серверов и реализацию логики бота.
В следующей статье мы переключимся на фронтенд и займемся разработкой MiniApp с использованием фреймворка Vue.js. Это позволит создать интуитивно понятный интерфейс для пользователей, где они смогут настраивать параметры поиска собеседника и общаться в режиме реального времени (Real time).
Читать: https://habr.com/ru/companies/amvera/articles/890976/
#ru
@database_design | Другие наши каналы
Это первая статья из цикла, посвященного разработке телеграм-бота с MiniApp для случайных чатов. В этой части мы сосредоточимся на создании бэкенда, используя современные технологии: FastAPI для разработки API, Redis для хранения данных в реальном времени и Centrifugo для обеспечения мгновенного взаимодействия между пользователями. Сегодня мы подробно разберем архитектуру проекта, настройку серверов и реализацию логики бота.
В следующей статье мы переключимся на фронтенд и займемся разработкой MiniApp с использованием фреймворка Vue.js. Это позволит создать интуитивно понятный интерфейс для пользователей, где они смогут настраивать параметры поиска собеседника и общаться в режиме реального времени (Real time).
Читать: https://habr.com/ru/companies/amvera/articles/890976/
#ru
@database_design | Другие наши каналы
Вертим кеш на GPU
Идут значит: Redis, Docker и Postgres.
R: Как вы собираетесь надругаться над нами сегодня?
D: Я буду вертеть вас на GPU!
P: Ого, прямо на GPU?
D: Да, ресурсов - не жалею!
В данной статье мы:
1. Cравним Redis и Postgres (в качестве системы кеширования).
2. Запустим их на GPU.
3. Оценим их быстродействие.
Давайте разбираться...
Читать: https://habr.com/ru/articles/891298/
#ru
@database_design | Другие наши каналы
Идут значит: Redis, Docker и Postgres.
R: Как вы собираетесь надругаться над нами сегодня?
D: Я буду вертеть вас на GPU!
P: Ого, прямо на GPU?
D: Да, ресурсов - не жалею!
В данной статье мы:
1. Cравним Redis и Postgres (в качестве системы кеширования).
2. Запустим их на GPU.
3. Оценим их быстродействие.
Давайте разбираться...
Читать: https://habr.com/ru/articles/891298/
#ru
@database_design | Другие наши каналы
Вертим кеш на GPU
Идут значит: Redis, Docker и Postgres.
R: Как вы собираетесь надругаться над нами сегодня?
D: Я буду вертеть вас на GPU!
P: Ого, прямо на GPU?
D: Да, ресурсов - не жалею!
В данной статье мы:
1. Cравним Redis и Postgres (в качестве системы кеширования).
2. Запустим их на GPU.
3. Оценим их быстродействие.
Давайте разбираться...
Читать: https://habr.com/ru/articles/891298/
#ru
@database_design | Другие наши каналы
Идут значит: Redis, Docker и Postgres.
R: Как вы собираетесь надругаться над нами сегодня?
D: Я буду вертеть вас на GPU!
P: Ого, прямо на GPU?
D: Да, ресурсов - не жалею!
В данной статье мы:
1. Cравним Redis и Postgres (в качестве системы кеширования).
2. Запустим их на GPU.
3. Оценим их быстродействие.
Давайте разбираться...
Читать: https://habr.com/ru/articles/891298/
#ru
@database_design | Другие наши каналы
Повышение эффективности аналитических баз данных: кейс «Комус» и Arenadata
Хабр, привет! Современные высоконагруженные системы требуют точной настройки и регулярного мониторинга, чтобы обеспечить стабильную производительность в условиях постоянно растущих объёмов данных. Когда речь идёт о крупной аналитической базе данных, развёрнутой в облачной среде, оптимизация её работы становится критически важной задачей. В прошлой статье мы уже рассказывали о типичных ошибках при работе с Arenadata DB (ADB), о том, как их избежать и значительно повысить производительность кластера. Сегодня же поделимся реальным опытом на примере компании «Комус» — лидера в области B2B-ритейла, которая обратилась к Arenadata за проведением комплексного аудита своего кластера ADB.
В этой статье мы детально разобрали, как с помощью анализа и оптимизации удалось выявить точки роста, подготовить кластер к текущим и будущим нагрузкам и предложить план улучшений. Мы рассмотрим технические детали аудита, проблемы, с которыми пришлось столкнуться, и эффективные практики, позволившие повысить производительность аналитической базы данных.
Что там с нагрузкой на кластер?
Читать: https://habr.com/ru/companies/arenadata/articles/887792/
#ru
@database_design | Другие наши каналы
Хабр, привет! Современные высоконагруженные системы требуют точной настройки и регулярного мониторинга, чтобы обеспечить стабильную производительность в условиях постоянно растущих объёмов данных. Когда речь идёт о крупной аналитической базе данных, развёрнутой в облачной среде, оптимизация её работы становится критически важной задачей. В прошлой статье мы уже рассказывали о типичных ошибках при работе с Arenadata DB (ADB), о том, как их избежать и значительно повысить производительность кластера. Сегодня же поделимся реальным опытом на примере компании «Комус» — лидера в области B2B-ритейла, которая обратилась к Arenadata за проведением комплексного аудита своего кластера ADB.
В этой статье мы детально разобрали, как с помощью анализа и оптимизации удалось выявить точки роста, подготовить кластер к текущим и будущим нагрузкам и предложить план улучшений. Мы рассмотрим технические детали аудита, проблемы, с которыми пришлось столкнуться, и эффективные практики, позволившие повысить производительность аналитической базы данных.
Что там с нагрузкой на кластер?
Читать: https://habr.com/ru/companies/arenadata/articles/887792/
#ru
@database_design | Другие наши каналы
OpenSearch как сервис: обзор и тривиальный пример использования на Python
Привет, Хабр! Проблема традиционных реляционных баз данных в том, что они не всегда справляются с обработкой огромных объемов информации. Вот вам нужно быстро найти, проиндексировать и проанализировать логи, события или метрики, но вы упираетесь в ограничения масштабируемости, автошардирования и скорости обработки запросов специфического профиля нагрузки. Знакомо?
Меня зовут Гришин Александр, я продакт-менеджер в Selectel и отвечаю за развитие объектного хранилища и облачных баз данных. В этой статье расскажу, как описанные проблемы решает OpenSearch, как развернуть кластеры этой платформы за несколько минут и начать с ней работать в Python.
Читать: https://habr.com/ru/companies/selectel/articles/891046/
#ru
@database_design | Другие наши каналы
Привет, Хабр! Проблема традиционных реляционных баз данных в том, что они не всегда справляются с обработкой огромных объемов информации. Вот вам нужно быстро найти, проиндексировать и проанализировать логи, события или метрики, но вы упираетесь в ограничения масштабируемости, автошардирования и скорости обработки запросов специфического профиля нагрузки. Знакомо?
Меня зовут Гришин Александр, я продакт-менеджер в Selectel и отвечаю за развитие объектного хранилища и облачных баз данных. В этой статье расскажу, как описанные проблемы решает OpenSearch, как развернуть кластеры этой платформы за несколько минут и начать с ней работать в Python.
Читать: https://habr.com/ru/companies/selectel/articles/891046/
#ru
@database_design | Другие наши каналы
OpenSearch как сервис: обзор и тривиальный пример использования на Python
Привет, Хабр! Проблема традиционных реляционных баз данных в том, что они не всегда справляются с обработкой огромных объемов информации. Вот вам нужно быстро найти, проиндексировать и проанализировать логи, события или метрики, но вы упираетесь в ограничения масштабируемости, автошардирования и скорости обработки запросов специфического профиля нагрузки. Знакомо?
Меня зовут Гришин Александр, я продакт-менеджер в Selectel и отвечаю за развитие объектного хранилища и облачных баз данных. В этой статье расскажу, как описанные проблемы решает OpenSearch, как развернуть кластеры этой платформы за несколько минут и начать с ней работать в Python.
Читать: https://habr.com/ru/companies/selectel/articles/891046/
#ru
@database_design | Другие наши каналы
Привет, Хабр! Проблема традиционных реляционных баз данных в том, что они не всегда справляются с обработкой огромных объемов информации. Вот вам нужно быстро найти, проиндексировать и проанализировать логи, события или метрики, но вы упираетесь в ограничения масштабируемости, автошардирования и скорости обработки запросов специфического профиля нагрузки. Знакомо?
Меня зовут Гришин Александр, я продакт-менеджер в Selectel и отвечаю за развитие объектного хранилища и облачных баз данных. В этой статье расскажу, как описанные проблемы решает OpenSearch, как развернуть кластеры этой платформы за несколько минут и начать с ней работать в Python.
Читать: https://habr.com/ru/companies/selectel/articles/891046/
#ru
@database_design | Другие наши каналы
Переход на MongoDB: модернизация телеком-систем
Телеком-компании сталкиваются с вызовами старых систем, таких как сложность и низкая масштабируемость. MongoDB предлагает решение, позволяющее эффективно обрабатывать большие объемы данных и повышать безопасность, адаптивность и производительность современных приложений. Открытие ORiGAMi для машинного обучения с MongoDB
ORiGAMi — новая open-source платформа для машинного обучения с неструктурированными документами в MongoDB. Она позволяет обучать модели без упрощения данных, сохраняя их структуру и контекст. Платформа обновляет предсказания на основе изменения поведения пользователя и доступна на GitHub. Присоединяйтесь к развитию технологии!
Читать подробнее
#en
@database_design | Другие наши каналы
Телеком-компании сталкиваются с вызовами старых систем, таких как сложность и низкая масштабируемость. MongoDB предлагает решение, позволяющее эффективно обрабатывать большие объемы данных и повышать безопасность, адаптивность и производительность современных приложений. Открытие ORiGAMi для машинного обучения с MongoDB
ORiGAMi — новая open-source платформа для машинного обучения с неструктурированными документами в MongoDB. Она позволяет обучать модели без упрощения данных, сохраняя их структуру и контекст. Платформа обновляет предсказания на основе изменения поведения пользователя и доступна на GitHub. Присоединяйтесь к развитию технологии!
Читать подробнее
#en
@database_design | Другие наши каналы
"IFG Life открывает потенциал данных с MongoDB"
IFG Life, дочерняя компания Indonesia Finance Group, модернизирует свои системы с помощью MongoDB Atlas. Старые архитектуры данных тормозили развитие, но переход на облачные технологии и использование MongoDB позволили создать единую платформу управления клиентами, улучшив понимание и обслуживание клиентов. MongoDB поддержал компанию, предоставив необходимые ресурсы и технологии. Почему MongoDB — лучший выбор для модернизации телеком-систем
Телеком-компании, такие как Nokia и Vodafone, уже успешно обновили свои системы с помощью MongoDB. Благодаря гибкой модели данных и встроенным сервисам, MongoDB упрощает переход на новые технологии и повышает эффективность. Узнайте, как MongoDB помогает в модернизации телеком-индустрии.
Читать подробнее
#en
@database_design | Другие наши каналы
IFG Life, дочерняя компания Indonesia Finance Group, модернизирует свои системы с помощью MongoDB Atlas. Старые архитектуры данных тормозили развитие, но переход на облачные технологии и использование MongoDB позволили создать единую платформу управления клиентами, улучшив понимание и обслуживание клиентов. MongoDB поддержал компанию, предоставив необходимые ресурсы и технологии. Почему MongoDB — лучший выбор для модернизации телеком-систем
Телеком-компании, такие как Nokia и Vodafone, уже успешно обновили свои системы с помощью MongoDB. Благодаря гибкой модели данных и встроенным сервисам, MongoDB упрощает переход на новые технологии и повышает эффективность. Узнайте, как MongoDB помогает в модернизации телеком-индустрии.
Читать подробнее
#en
@database_design | Другие наши каналы
Процедура обнаружения взаимоблокировок в PostgreSQL
РostgreSQL автоматически обнаруживает взаимоблокировки. В статье рассматривается процедура обнаружения взаимоблокировок, трудоёмкость процедуры обнаружения, причины, по которым параметр конфигурации log_lock_waits зависит от параметра deadlock_timeout и что влияет на выбор его значения.
Обычно, приводятся примеры взаимоблокировки двух процессов, но заблокироваться может и более двух процессов. Параметр конфигурации deadlock_timeout устанавливает время ожидания получения блокировки, по истечении которого будет выполняться проверка на наличие взаимоблокировки. Параметр log_lock_waits типа boolean (по умолчанию false) позволяет получить в логе кластера сообщение о том, что сессия ждёт получения блокировки дольше, чем значение deadlock_timeout.
Процедура обнаружения взаимоблокировок
Если процесс не может получить блокировку, то он засыпает и устанавливает себе таймер, чтобы проснуться через время, заданное параметром конфигурации deadlock_timeout (по умолчанию 1 секунда). Процесс проснётся до истечения таймаута, если блокировка ему будет предоставлена. По завершению таймаута процесс начинает процедуру обнаружения взаимоблокировки.
Процедура обнаружения взаимоблокировок относительно трудоёмка, так как набор блокировок не дерево, а граф. В графе проверяется наличия колец, которые указывают на взаимоблокировки.
Если взаимоблокировки нет, то процесс снова заснёт и больше не будет проверять, есть ли взаимоблокировка до получения блокировки или прерывания транзакции в соответствии с параметрами transaction_timeout и аналогичными параметрами. Почему процесс не будет дальше поверять ситуацию возникновения взаимоблокировки с частотой deadlock_timeout?
Читать: https://habr.com/ru/articles/891782/
#ru
@database_design | Другие наши каналы
РostgreSQL автоматически обнаруживает взаимоблокировки. В статье рассматривается процедура обнаружения взаимоблокировок, трудоёмкость процедуры обнаружения, причины, по которым параметр конфигурации log_lock_waits зависит от параметра deadlock_timeout и что влияет на выбор его значения.
Обычно, приводятся примеры взаимоблокировки двух процессов, но заблокироваться может и более двух процессов. Параметр конфигурации deadlock_timeout устанавливает время ожидания получения блокировки, по истечении которого будет выполняться проверка на наличие взаимоблокировки. Параметр log_lock_waits типа boolean (по умолчанию false) позволяет получить в логе кластера сообщение о том, что сессия ждёт получения блокировки дольше, чем значение deadlock_timeout.
Процедура обнаружения взаимоблокировок
Если процесс не может получить блокировку, то он засыпает и устанавливает себе таймер, чтобы проснуться через время, заданное параметром конфигурации deadlock_timeout (по умолчанию 1 секунда). Процесс проснётся до истечения таймаута, если блокировка ему будет предоставлена. По завершению таймаута процесс начинает процедуру обнаружения взаимоблокировки.
Процедура обнаружения взаимоблокировок относительно трудоёмка, так как набор блокировок не дерево, а граф. В графе проверяется наличия колец, которые указывают на взаимоблокировки.
Если взаимоблокировки нет, то процесс снова заснёт и больше не будет проверять, есть ли взаимоблокировка до получения блокировки или прерывания транзакции в соответствии с параметрами transaction_timeout и аналогичными параметрами. Почему процесс не будет дальше поверять ситуацию возникновения взаимоблокировки с частотой deadlock_timeout?
Читать: https://habr.com/ru/articles/891782/
#ru
@database_design | Другие наши каналы
Тестирование БД в легаси-проекте: повышение качества кода и стабильности системы в «Цифровой карте магазина»
В этой статье я хотел бы поделиться с вами моим опытом написания юнит-тестов для базы данных (БД) в рамках легаси-проекта. Я выбрал формат ретроспективы, чтобы показать, как все начиналось, к чему мы пришли и какой путь был пройден в разработке юнит-тестов для проекта «Цифровая карта магазина». Возможно, статья будет полезна начинающим разработчикам баз данных или тем, кто хочет начать писать юнит-тесты для Oracle, но не знает, с чего начать.
Читать: https://habr.com/ru/companies/sportmaster_lab/articles/888110/
#ru
@database_design | Другие наши каналы
В этой статье я хотел бы поделиться с вами моим опытом написания юнит-тестов для базы данных (БД) в рамках легаси-проекта. Я выбрал формат ретроспективы, чтобы показать, как все начиналось, к чему мы пришли и какой путь был пройден в разработке юнит-тестов для проекта «Цифровая карта магазина». Возможно, статья будет полезна начинающим разработчикам баз данных или тем, кто хочет начать писать юнит-тесты для Oracle, но не знает, с чего начать.
Читать: https://habr.com/ru/companies/sportmaster_lab/articles/888110/
#ru
@database_design | Другие наши каналы
SQL vs Excel: когда таблицы уже не справляются
Когда в компании работа выстроена в Excel, проблем нет, пока в таблице несколько тысяч строк. Но бизнес растёт, и вот в файле уже миллион записей. Поиск тормозит, сложные формулы зависают. А если сотрудник случайно удалит столбец — восстанавливать придётся вручную. Это первые сигналы, что Excel не справляется.
В этой статье разберём, когда Excel перестаёт быть удобным инструментом и как SQL помогает решать эти проблемы. А приглашённые эксперты поделятся практическими примерами и советами по переходу.
Читать: https://habr.com/ru/companies/netologyru/articles/891236/
#ru
@database_design | Другие наши каналы
Когда в компании работа выстроена в Excel, проблем нет, пока в таблице несколько тысяч строк. Но бизнес растёт, и вот в файле уже миллион записей. Поиск тормозит, сложные формулы зависают. А если сотрудник случайно удалит столбец — восстанавливать придётся вручную. Это первые сигналы, что Excel не справляется.
В этой статье разберём, когда Excel перестаёт быть удобным инструментом и как SQL помогает решать эти проблемы. А приглашённые эксперты поделятся практическими примерами и советами по переходу.
Читать: https://habr.com/ru/companies/netologyru/articles/891236/
#ru
@database_design | Другие наши каналы
SQL vs Excel: когда таблицы уже не справляются
Когда в компании работа выстроена в Excel, проблем нет, пока в таблице несколько тысяч строк. Но бизнес растёт, и вот в файле уже миллион записей. Поиск тормозит, сложные формулы зависают. А если сотрудник случайно удалит столбец — восстанавливать придётся вручную. Это первые сигналы, что Excel не справляется.
В этой статье разберём, когда Excel перестаёт быть удобным инструментом и как SQL помогает решать эти проблемы. А приглашённые эксперты поделятся практическими примерами и советами по переходу.
Читать: https://habr.com/ru/companies/netologyru/articles/891236/
#ru
@database_design | Другие наши каналы
Когда в компании работа выстроена в Excel, проблем нет, пока в таблице несколько тысяч строк. Но бизнес растёт, и вот в файле уже миллион записей. Поиск тормозит, сложные формулы зависают. А если сотрудник случайно удалит столбец — восстанавливать придётся вручную. Это первые сигналы, что Excel не справляется.
В этой статье разберём, когда Excel перестаёт быть удобным инструментом и как SQL помогает решать эти проблемы. А приглашённые эксперты поделятся практическими примерами и советами по переходу.
Читать: https://habr.com/ru/companies/netologyru/articles/891236/
#ru
@database_design | Другие наши каналы