[Перевод] Информатика за индексами в Постгресе

Друзья, PG Day'16 Russia успешно завершилась, мы перевели дух и уже думаем над тем, как сделать грядущие мероприятия еще более интересными и полезными для вас. Продолжаем публиковать интересные, на наш взгляд, материалы о Постгресе и общаться с вами в комментариях. Сегодня представляем перевод статьи Pat Shaughnessy о том, что из себя представляют индексы в PostgreSQL.

Все мы знаем, что индексы — одна из самых мощных и важных функций серверов реляционных баз данных. Как быстро найти значение? Создать индекс. Что нужно не забыть сделать при объединении двух таблиц? Создать индекс. Как ускорить SQL запрос, который начал медленно работать? Создать индекс.



Но что такое эти индексы? И как они ускоряют поиск по базе данных? Чтобы выяснить это, я решил прочитать исходный код сервера базы данных PostgreSQL на C и проследить за тем, как он ищет индекс для простого текстового значения. Я ожидал найти сложные алгоритмы и эффективные структуры данных. И я их нашёл. Сегодня я покажу вам, как выглядят индексы внутри Постгреса, и объясню, как они работают.

Что я не ожидал найти — что я впервые обнаружил, читая исходный код Постгреса — так это теорию информатики в основе того, что он делает. Чтение исходного кода Постгреса превратилось в возвращение в школу и изучение того предмета, на который у меня никогда не хватало времени в молодости. Комментарии на C внутри Постгреса объясняют не только, что он делает, но и почему.
08/29/2016 15:06:08
0

[Из песочницы] Визуальный мониторинг серверной инфраструктуры на базе Nagios + Grafana

nagios + grafana

Мы в Атласе любим, когда все находится под контролем. Это касается и всей серверной инфраструктуры, которая, с годами, превратилась в живой организм из многочисленных виртуальных машин, сервисов и служб. Появилась потребность наблюдать за жизненно важными аспектами IT-составляющей нашей деятельности: мониторить боевой сервер, отслеживать изменения системных ресурсов на виртуалках баз данных, следить за ходом бизнес-процессов и тд. Встал вопрос — как же этого добиться и главное какими инструментами? Стали искать какие-то готовые решения. Перепробовали кучу платных/бесплатных сервисов, которые, якобы, предоставляли бы нам "самую ценную" информацию о состоянии нашей системы. Но, в конечном итоге, все сводилось к каким-то непонятных диаграммам, схемам и цифрам, которые, по сути, для нас не имели никакой ценности.


Так мы пришли к пониманию, что надо собирать что-то самостоятельно. За основу решили взять самую гибкую и продвинутую систему, которую можно настроить для мониторинга чего и как угодно — Nagios. Настроили, поставили, работает — круто! Жаль только интерфейс сего чуда застрял где-то в середине 90-х, а нам хотелось, чтобы еще и визуальная составляющая была на уровне.


Недолгий поиск показал, что лидером среди решений по созданию красивых дашбордов является Grafana. Так и решили выводить весь наш мониторинг из Nagios на мониторах в виде красивых графиков в Grafana. Вопрос остался только в том — как их подружить друг с другом?

Я расскажу как!
08/29/2016 14:46:20
0

Опубликована программа Droidcon Moscow 2016


Опубликована предварительная программа крупнейшей евразийской Android-конференции — ​Droidcon, которая пройдет в Москве 22 сентября 2016 года уже в третий раз. Деловая программа будет разделена на четыре основных направления: Android, Firebase, VR и IoT.

Android

На секции Android будут рассмотрены два популярных архитектурных подхода:
08/29/2016 14:35:26
0

MVP на стероидах: заставляем робота писать код за вас

В статье «Moxy — реализация MVP под Android с щепоткой магии» мы рассказывали, как побороть проблему жизненного цикла и разделить код своего Android-проекта на слои. Однако MVP (даже при умной кодогенерации view state в Moxy) заставляет писать огромное количество лишнего кода (создавать связанные друг с другом классы и интерфейсы presenter и view). На самом деле эту работу за вас должен делать робот! :) Настало время еще сильнее уменьшить boilerplate при помощи кастомизации шаблонов Android Studio под Moxy.

08/29/2016 14:35:00
0

Атака SWEET32: Исследователи обнаружили новый способ взлома шифров 3DES и Blowfish



Исследователи информационной безопасности Картикеян Баргаван (Karthikeyan Bhargavan) и Гаетан Лоран (Gaëtan Leuren) разработали атаку на шифры 3DES и Blowfish. Например, с ее помощью можно получить использующиеся для аутентификации cookie из зашифрованного 3DES HTTPS-трафика, а также восстанавливать имена пользователей и пароли из зашифрованного с помощью Blowfish трафика, передаваемого через VPN.

Атака, которая получила название SWEET32, посвящен отдельный сайт, ее подробности и демо-видео исследователи планируют представить на конференции ACM Conference on Computer and Communications Security, которая в следующем месяце пройдет в Австрии. Мы собрали известную на данный момент информацию в своем материале.
08/29/2016 14:00:42
0

Пилим монолит


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

08/29/2016 13:57:49
0

CRUD и связанные операции в CleverStyle Framework

После статьи с описанием базовых интерфейсов для работы с БД было достаточно комментариев с предложением более высокоуровневых инструментов для работы. В CleverStyle Framework есть подобного рода инструменты в виде трейтов cs\CRUD и cs\CRUD_helpers. Вместе они позволяют для достаточно типичных ситуаций заменить большую простыню шаблонного кода на один вызов функции. О том, что это такое, и какой набор задач позволяет решить и будет эта статья.

08/29/2016 13:40:52
0

[Из песочницы] Настройка MongoDB ShardedCluster с X509 аутентификацией

Всем доброго времени суток! Недавно жизнь подкинула автору увлекательную работу по развертыванию MongoDB кластера с настройкой репликации и шардирования, а также использованием x.509 аутентификации. В данной статье я в первую очередь хотел бы изложить свои мысли и поделиться полученными опытом. Так как некоторые вещи оказались не тривиальными и сделать их с первого раза не удавалось, то думаю мои пошаговые инструкции могут пригодиться для освещения вопроса тем кто только знакомится с шардированием данных и работой с MongoDB в целом.
Также я буду очень рад увидеть рекомендации по добавлению/изменению конфигурации кластера и просто вопросы или критику по самой статье или по сути вопроса.
08/29/2016 13:33:13
0

В деле KickassTorrents появились два новых фигуранта



20 июля 2016 года в Польше был арестован 30-летний гражданин Украины Артем Ваулин. По мнению правоохранительных органов США, он стоял за созданием крупнейшего в мире торрент-трекера KickassTorrents. Теперь, когда трекер закрыт, а Ваулин ожидает экстрадиции, стало известно, что в деле фигурируют еще два имени: наряду с Ваулиным обвинения выдвинуты против Евгения Куценко и Александра Радостина.
08/29/2016 13:30:22
0

Зачем банкам, регуляторам и платежным системам свои криптовалюты



Финансовый мир переживает массовое увлечение криптовалютами. На этой неделе о запуске собственной цифровой валюты четырьмя крупнейшими мировыми банками (швейцарским UBS, немецким Deutsche Bank, Santander, BNY Mellon) вместе с брокерской фирмой ICAP сообщило издание Financial Times. Ранее в СМИ появлялась информация об интересе к аналогу биткоина со стороны Банка Англии, платежной системы QIWI и сервиса «Яндекс.Деньги».

Мы решили выяснить, чем вызван такой ажиотаж, и зачем традиционным финансовым институтам создавать новые криптовалюты?
08/29/2016 13:29:57
0