Pull to refresh
0
0
Андрей @ToBelarus

User

Send message

WAL в PostgreSQL: 1. Буферный кеш

Reading time13 min
Views72K
Предыдущий цикл был посвящен изоляции и многоверсионности PostgreSQL, а сегодня мы начинаем новый — о механизме журналирования (write-ahead logging). Напомню, что материал основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov, но не повторяет их дословно и предназначен для вдумчивого чтения и самостоятельного экспериментирования.

Этот цикл будет состоять из четырех частей:


Читайте и другие серии.

Индексы:

  1. Механизм индексирования;
  2. Интерфейс метода доступа, классы и семейства операторов;
  3. Hash;
  4. B-tree;
  5. GiST;
  6. SP-GiST;
  7. GIN;
  8. RUM;
  9. BRIN;
  10. Bloom.

Изоляция и многоверсионность:

  1. Изоляция, как ее понимают стандарт и PostgreSQL;
  2. Слои, файлы, страницы — что творится на физическом уровне;
  3. Версии строк, виртуальные и вложенные транзакции;
  4. Снимки данных и видимость версий строк, горизонт событий;
  5. Внутристраничная очистка и HOT-обновления;
  6. Обычная очистка (vacuum);
  7. Автоматическая очистка (autovacuum);
  8. Переполнение счетчика транзакций и заморозка.

Блокировки:

  1. Блокировки отношений;
  2. Блокировки строк;
  3. Блокировки других объектов и предикатные блокировки;
  4. Блокировки в оперативной памяти.


Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments23

WAL в PostgreSQL: 3. Контрольная точка

Reading time12 min
Views40K
Мы уже познакомились с устройством буферного кеша — одного из основных объектов в разделяемой памяти, — и поняли, что для восстановления после сбоя, когда содержимое оперативной памяти пропадает, нужно вести журнал предзаписи.

Нерешенная проблема, на которой мы остановились в прошлый раз, состоит в том, что неизвестно, с какого момента можно начинать проигрывание журнальных записей при восстановлении. Начать с начала, как советовал Король из Алисы, не получится: невозможно хранить все журнальные записи от старта сервера — это потенциально и огромный объем, и такое же огромное время восстановления. Нам нужна такая постепенно продвигающаяся вперед точка, с которой мы можем начинать восстановление (и, соответственно, можем безопасно удалять все предшествующие журнальные записи). Это и есть контрольная точка, о которой сегодня пойдет речь.

Контрольная точка


Каким свойством должна обладать контрольная точка? Мы должны быть уверены, что все журнальные записи, начиная с контрольной точки, будут применяться к страницам, записанным на диск. Если бы это было не так, при восстановлении мы могли бы прочитать с диска слишком старую версию страницы и применить к ней журнальную запись, и тем самым безвозвратно повредили бы данные.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments24

Как ускорить кластер Kubernetes на 100 тысяч подов в 10 раз

Level of difficultyMedium
Reading time3 min
Views6.5K

Первым шагом dBrain.cloud на пути к построению кластеров большого объема стало разделение etcd. Далее мы взялись за controller-manager.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments6

Что делать, когда кластер превращается в тыкву?

Level of difficultyMedium
Reading time4 min
Views6.9K

Когда эволюция платформы dBrain.cloud дошла до заявленных и считающихся нормальными в публичных облаках пределов, справляться с возникшими при росте объемов кластеров проблемами пришлось самостоятельно. Ведь компании-гиганты, эксплуатирующие Kubernetes, эти тайны не раскрывают.

Разделение etcd. Что это значит?
Total votes 5: ↑4 and ↓1+4
Comments4

Топ-5 фишек UI/UX дизайна платформы контейнеризации

Level of difficultyMedium
Reading time5 min
Views4.4K

Привет, Хабр! Меня зовут Иван Вербов, я UI/UX дизайнер команды разработки платформы контейнеризации dBrain.cloud. В разработке дизайна интерфейсов я стремлюсь к балансу между двумя противоположными подходами: строгость и стабильность - легкость и игра.

Хочу поделиться топ-5 фишек, созданных для консоли dBrain, чтобы превратить рутинную работу инженера по обслуживанию кластера в творческую.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments0

Как не сойти с ума, помечая цели для сбора метрик при мониторинге кластера. Спойлер: Victoria Metrics + Grafana

Level of difficultyMedium
Reading time6 min
Views6.6K

В начале не было ничего. И создал DevOps кластер Kubernetes и сказал, что это есть хорошо. Но пришли злые программисты и начали требовать информацию о том, сколько ресурсов потребляют их контейнеры.

Статическая vs динамическая конфигурация
Total votes 5: ↑4 and ↓1+5
Comments0

Как мы тестировали совместимость dBrain с отечественными дистрибутивами

Level of difficultyMedium
Reading time3 min
Views1.2K

Мы протестировали совместимость контейнеризированной платформы dBrain с операционными системами Astra Linux, ALT Linux и РЕД ОС. Что из этого получилось, читайте в нашем тексте.

Результаты тестирования
Total votes 3: ↑3 and ↓0+3
Comments1

CSI и S3 в Kubernetes. Каждому свое: Ceph, Minio, TopоLVM

Reading time5 min
Views10K

Без хранилища данных не заработает ни одно stateful-приложение, это известно всем. А вот как и какое хранилище развернуть - это вопрос к специалистам. Сегодня расскажем, как мы “готовим” Ceph и в каких случаях используем TopоLVM и Minio.

Ceph, Minio, TopоLVM
Total votes 4: ↑4 and ↓0+4
Comments1

DevOps спит, консоль работает. Как сократить путь от разработки до внедрения приложения

Level of difficultyMedium
Reading time6 min
Views2.6K

Хорошо быть умелым разработчиком и самому закрывать все задачи по запуску микросервисных приложений. Но как быть, если команда разработчиков тратит все время на управление микросервисными приложениями, настройку систем безопасности, аутентификации, мониторинга, логирования? Можно писать код и самостоятельно запускать каждый компонент, а можно нажать несколько кнопок и развернуть микросервис. Именно для этого мы создали консоль в платформе контейнеризации dBrain.cloud. В этой статье хотим подробнее рассказать, зачем и кому она будет полезна.

Что такое консоль dBrain
Total votes 2: ↑0 and ↓2-2
Comments4

Муки выбора, или Как найти идеальную систему мониторинга. Опыт dBrain

Reading time9 min
Views7.6K

Не секрет, что микросервисы мало запустить. За их работой нужно следить, чтобы не было сбоев, а следовательно и недовольных пользователей. Для этого, нужны системы мониторинга и логирования. Команда платформы dBrain собрала свой универсальный стек системы мониторинга. Сегодня расскажем, какие проблемы возникают с мониторингом и как их решить.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments0

Готовим из ванильного Kubernetes PaaS-платформу для создания кластера. Опыт dBrain

Reading time8 min
Views4K

Сегодня Kubernetes — одно из наиболее оптимальных решений для работы с микросервисной архитектурой. Но это не традиционная комплексная система PaaS. В ванильный K8s входит несколько стандартных компонентов, которые отвечают только за минимальный набор необходимых функций. Но для эффективной работы приложений и деплоя продуктовой среды необходимо множество дополнений — CNI, СSI, DNS, Ingress контроллер, внешние LB и т. д. Цель нашей команды — готовая для комфортной работы с кластером PaaS‑платформа. В этой статье мы расскажем, как готовим Kubernetes в dBrain.cloud, чтобы ее достичь.

Читать далее
Total votes 3: ↑2 and ↓1+2
Comments0

Kafka в условиях повышенной нагрузки. Артём Выборнов (2017)

Reading time15 min
Views9.9K


Kafka — распределённый брокер сообщений, нашедший широкое применение как универсальная шина для больших данных. Kafka позволяет как реализовать realtime-обработку большого числа событий, так и построить батчевый pipeline по доставке логов.


Почему мы используем Kafka? Если коротко — унификация. А если чуть подробнее — десятки поставщиков, терабайты логов каждый день, онлайн- и офлайн-pipeline'ы — без единой высокопроизводительной шины данных с этим крайне сложно совладать.


Из доклада вы узнаете о том, почему мы перешли на Kafka, и как она вписалась в наш pipeline. Поймёте, как обеспечить exactly once доставку данных. Узнаете о том, как из-за одной опечатки в несколько раз выросла нагрузка на Kafka, и что мы из этого выяснили. Выясните, какие метрики Kafka стоит мониторить и как по ним понять, что что-то идёт не так.

Total votes 13: ↑12 and ↓1+16
Comments0

Внедрение баз данных с бэкапированием и репликацией при помощи консоли dBrain. Как это работает

Reading time7 min
Views2.1K

Вы слышали о Red Hat OpenShift и VMWare Tanzu? Мы сделали российскую альтернативу этих продуктов. Сегодня я хочу поделиться, как мы с командой собираем комплект баз данных, которые можно использовать для запуска микросервисных приложений.

Читать далее
Rating0
Comments2

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity