BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

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

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
== PostgreSQL: практические примеры оптимизации SQL-запросов
https://youtu.be/dm_oid1HVfQ
- Explain Analyze
- чем меньше данных тем быстрей
- индексы не бесплатные
- жадничайте при проектировании. не давайте колонкам большие типы по умолчанию
- на строку индекса всего 14байт
- btree индексы можно перестраивать во время выполнения
- не вырубать автовакуум !!! его агрессивность можно настроить вплоть до таблицы
- pgbench !!!
- Материализованные вьюхи надо делать руками!
- pg-stats
== Выбираем систему репликации для PostgreSQL
https://youtu.be/YQ63niptCTc
- репликация не заменяет бэкапы
- усложняет поддержку

задачи:
- резервирование
- балансировка
- обновление
- движение
- расппределение

неприятные моменты:
- реплицируется весь кластер!
- реплицируются и физические ошибки
- изменения применяются однопоточно!
- только в рамках одной мажорной версии

балансировка
- читающая нагрузка
- пишущая нагрузка

читающая нагрузка
- физическая
- тригерная
- логическая

Триггерная
-доп демоны на каждом узле
- только DML

Slony
- скриптовой язык управления
- дополнительно нагружает мастер
- доставка изменений файлами
- сериализация, каскадная репликация

Bucardo
- perl
- LISTEN/NOTIFY
- Требуется отдельная база
- МАСТЕР-МАСТЕР

Londiste
- Python
- разработана в Skype
- использует PgQ

Логическая репликация
- тоже основана на WAL
- только DML
- Нельзя менять обекты (схему, название)

— встроенная
- pg10+
- не умеет DDL, TRUNCATE
— pglogial
- pg9+
- не умеет DDLб но можно передать DDL подписчикам
- фильтрация записей
- выборочные колонки

Кластеры
- уже не совсем репликация
- разные типы узлов
— citus
- расширение PG
- Community / Enterprice
- собирает и отсылает стату!
- узлы: координатор, рабочие
- колоночное хранение
— Postgres-XL
- отдельный продукт
- узлы GTM, координатор, рабочий
- управляется pgxc_ctl утилитой

Балансировка записи
- мастер-мастер репликация
- кластерная репликация

Мастер-мастер
- любой узел = полная копия
- восокая вероятность конфликтов
- сложность администрирование
- сложное и долгое востановление после сбоев
— Bucardo
— BDR

ИТОГО
- Резервирование = физическая
- Балансировка чтения = (1) физическая, (2) логическая, (3) триггерная
- Балансировка записи (1) кластерная репликация
- Обновление: (1) логическая, (2) триггерная
- движение (1) триггерная (2) логическая
- Распределение (1) Кластерная

PG_POOL - НЕ РЕКОМЕНДУЕТСЯ
это миддлварь, который перегружен функционалом.

Хранимые процедуры ХОРОНЯТ автоматический выбор пишущий это или читающий запросы
Forwarded from SecAtor
Интересный юридический прецедент был рассмотрен в немецком суде, который постановил, что веб-сайты со встроенными шрифтами Google нарушают Общий регламент ЕС по защите данных (GDPR).

Суд в Мюнхене обязал владельца веб-сайта выплатить 100 евро в качестве возмещения ущерба за передачу личных данных пользователя, а именно IP-адреса в Google через библиотеку шрифтов Google Fonts без согласия человека.

Google Fonts — это сервисная библиотека для встраивания шрифтов от Google, позволяющая разработчикам добавлять шрифты в свои приложения и веб-сайты для Android, просто ссылаясь на таблицу стилей. По состоянию на январь 2022 года Google Fonts представляет собой хранилище для 1358 семейств шрифтов.

По мнению суда несанкционированное раскрытие IP-адреса истца веб-сайтом, представляет собой нарушение прав пользователя на неприкосновенность частной жизни и что администратор ресурса теоретически может объединить собранную информацию с другими сторонними данными для идентификации лица, стоящего за этим IP. Как говорится в постановлении - истец утратил контроль над личными данными в пользу Google.

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

Кроме того, суд постановил владельцу веб-сайта прекратить раскрытие IP-адресов из-за библиотеки шрифтов, а также предоставить потерпевшей стороне информацию о том, какие персональные данные он хранит и обрабатывает.

Не так давно подобной инцидент с Google уже имел место быть, когда Австрийский орган по защите данных постановил, что использование Google Analytics веб-сайтом NetDoktor, нарушает регламент GDPR, поскольку данные посетителей экспортируются на серверы Google в США, тем самым открывая двери для потенциальных клиентов и слежки со стороны ее спецслужб.

А так, казалось бы всего лишь шрифт.
корреляционные плеяды

такие схемы часто попадались, но особо не вдавался в подробности. но вот дошли руки)

== Мат Стат. построение корреляционных плеяд
https://youtu.be/tHZBU-q_Jxs
там впроцем на канале все 7 частей.
годнота
ПРОСТО ВАУ. насколько же высокого уровня статья. прям оч шикарно

== GPS
https://ciechanow.ski/gps/
Forwarded from Fsulgfg
== Эксперимент Базермана: как мы ежедневно теряем деньги
https://habr.com/ru/post/596543/
...отбивочка

== Findings Report. Compensation
https://dataforest.sequoia.com/reports/compensation/
Forwarded from Акула (в) IT
Дедлоки (1/2)

Всех с наступившим! 🐌

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

Дедлок или deadly embrace, как их называл товарищ Дейкстра (тот самый, который алгоритм) — ситуация бесконечного ожидания, при которой группа процессов не может продолжать работу, пока «внешние силы» не совершат определенные действия. Слово «процесс» здесь не имеет отношения к процессам в операционной системе. Процесс в дедлоке — некий автомат с набором состояний. Такими состояниями могут быть «процесс А не владеет ресурсами» или «процесс B владеет ресурсом alpha и пытается получить ресурс beta». На самом деле определение не совсем корректное в 100% ситуаций, но для обсуждения большинства подходов подойдёт.

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

Такой дедлок называется либо ресурсным, либо interleaved дедлоком. Первое более привычное и популярное название, второе я нашёл только в [4]. Для возможности его возникновения необходимо выполнение 3 условий:

1. Exclusive access. Только один процесс может захватить ресурс одновременно.
2. No-preemption. Процесс, захвативший ресурс, не может быть прерван.
3. Hold and wait condition. Должны разрешаться ситуация, при которой процесс захватил сначала один ресурс, а теперь ждёт пока освободится второй. Не отпуская при этом первый.

Наличие этих условий в системе ещё не гарантирует возникновение дедлока! Это только необходимые условия. Их наличие означает существование unsafe region[5] — такого набора состояний процессов, попав в которое, ни один из процессов не может завершить свою работу.

При наличии unsafe region достаточно найти лишь 1 набор состояний, чтобы обеспечить дедлок. Оно же последнее условие:

4. circular wait condition. Процессы и ресурсы должны иметь возможность собираться в «цепочку». К примеру: Процесс A владеет ресурсом a при этом хочет захватить ресурс b, которым владеет процесс B, который хочет завладеть ресурсом a. Если обозначить эти отношения стрелочками:

a -> A значит процесс A владеет ресурсом a.
A -> b значит процесс A хочет завладеть ресурсом b.

Схематично получится круг (ну или квадрат):

a -> A
^ |
| v
B <- b