DATABASE DESIGN – Telegram
DATABASE DESIGN
1.41K subscribers
2.08K photos
3 videos
5.32K links
Лучшие материалы по работе с хранилищами данных на русском и английском языке

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
Newbie Guide: разбираемся с MVCC на простых примерах

Изоляция транзакций в СУБД — важный механизм, который позволяет пользователю получить согласованное состояние данных и работать с ними, не допуская конфликтов и снижения производительности. Организовать изоляцию нужного уровня можно несколькими способами, один из которых — MVCC (Multiversion Concurrency Control, многоверсионное управление конкурентным доступом).


Читать: https://habr.com/ru/companies/vk/articles/740108/
Кто мощнее в базах данных? Сравниваем производительность БД на серверах с ARM- и x86-процессорами

Всем привет! Ранее я разобрал и протестировал сервер с процессором ARM, который попал к нам в Selectel Lab. Сервер показал хорошие результаты по производительности в ряде классических тестов, но в этот раз захотелось проверить его в боевой задаче — в работе с базами данных. Быть может, архитектура ARM-процессора сделает всех конкурентов на этой территории?

Чтобы ответить на этот вопрос, протестировал ARM вместе с семеркой серверов разных конфигураций с процессорами Intel и AMD. В качестве баз данных для нашего эксперимента выбрал самые популярные — PostgreSQL и MySQL. Результаты тестов с графиками и комментариями — под катом. Надеюсь, они будут полезны вам при выборе сервера под БД.


Читать: https://habr.com/ru/companies/selectel/articles/740492/
У HDD нет будущего? Погодите, не так быстро…

Будущее HDD зависит от того, кого спросить. Есть адепты SSD, которые не видят в «устаревшей» технологии HDD никаких перспектив. Действительно, SSD прогрессируют гораздо быстрее: это касается и технологического прогресса, и стоимости. Если экстраполировать нынешние темпы развития отрасли, то создаётся впечатление, что SSD вытеснят HDD во всех сферах применения в ближайшие десятилетия.

Но по факту этого не происходит.


Читать: https://habr.com/ru/companies/ruvds/articles/736924/
Мёртв ли последовательный ввод-вывод в эпоху накопителей NVMe?



Две системы, которые я хорошо знаю (Apache BookKeeper и Apache Kafka) проектировались в эпоху дисковых накопителей: жёстких дисков, или HDD. Жёсткие диски хорошо справляются с последовательным вводом-выводом, но не очень хороши в произвольном вводе-выводе из-за относительно большого времени поиска. Неудивительно, что и Kafka, и BookKeeper проектировались с расчётом на последовательный ввод-вывод.

И Kafka, и BookKeeper — это распределённые системы логирования, поэтому можно представить, что последовательный ввод-вывод будет стандартным режимом для системы хранения логов с возможностью только дополнения. Но последовательный и произвольный ввод-вывод находятся в спектре, где на одном краю расположен чисто последовательный, а на другом — чисто произвольный ввод-вывод. Если у вас есть пять тысяч файлов, которые вы дописываете небольшими циклическими операциями записи, и выполняете fsync, то это не такой уж последовательный паттерн доступа, он находится ближе к произвольному вводу-выводу. То есть если вы только дополняете логи, это не означает автоматически, что вы получаете последовательный ввод-вывод.


Читать: https://habr.com/ru/companies/ruvds/articles/737284/
Мир. Труд. Майпу. Или как мы тестировали китайскую СХД

Чем заменить на санкционном безрыбье системы хранения данных Dell, HPE, Huawei и других покинувших нас вендоров? Мы уже долго изучаем этот вопрос и протестировали большинство доступных альтернатив enterprise-уровня.

И что думаете? Кажется, нашли приемлемое решение — СХД китайского вендора Maipu с привычными функциями, перспективными возможностями и не только. Мы привезли его в лабораторию и первыми на российском рынке протестировали — срочно делимся впечатлениями и результатами.


Читать: https://habr.com/ru/companies/k2tech/articles/737564/
Когда данных слишком много… как оптимизировать хранение

Каждый день человечество генерирует порядка 330 млн терабайт данных. Хотя по оценкам экспертов Google всего 10% из них являются свежими и оригинальными, даже копии копий нужно где-то хранить. И эта задача имеет ряд нюансов. Здесь уместно провести аналогию с известным транспортным парадоксом: чем больше дорог строится, тем больше образуется автомобилей, чтобы заполнить их (постулат Льюиса — Могриджа).

Недостаточно построить очень много дата-центров. Один из наиболее очевидных способов сэкономить на хранении данных — это архивирование файлов и сжатие изображений. Есть и другие подходы, которые помогают записать больше данных на диск и быстрее их обрабатывать.



Читать: https://habr.com/ru/companies/cloud_mts/articles/737514/
Чей DAX сильнее? …или почему каждый пользователь должен влиять на развитие платформы

Привет, Хабр! В этом посте мне хотелось бы поговорить о том, каким образом мы развиваем платформу, и откуда появляются новые функции в Visiology. В большей степени сейчас это касается развития поддержки DAX в третьей версии платформы. Но сама практика появилась не на пустом месте, и сегодня мы как раз обсудим, как команда разработчиков выбирает, какие новые фичи стоит включить в Visiology, зачем мы запустили сбор кейсов для реализации на DAXе, и что можно увидеть на вебинарах Visiology, которые посвящены развитию аналитического движка в Visiology 3.


Читать: https://habr.com/ru/companies/visiology/articles/738456/
Kafka за 20 минут. Ментальная модель и как с ней работать

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.


Читать: https://habr.com/ru/companies/sbermarket/articles/738634/
Obsidian — Мой сетап

Вот я и дописал свою четвёртую статью на хабр (А ведь в начале года поставил себе цель написать хотя бы одну статью, а тут аппетит пришёл во время еды и вот четвёртая). Предыдущие раз, два и три.

Вообще бесит когда в современном мире пишут статьи-гайды или снимают видео-гайды, где самое интересное в конце. "Вы сначала дайте посмотреть что я приобрету прочитав вашу статью или посмотрев видео, а я уже приму решение смотреть или нет".

Поэтому вот сразу ссылка на мой сетап хранилища Обсидиана на гитхабе (о котором и пойдёт речь в данной статье), можно сразу его качать и тыкаться самому и если что-то не понятно подглядывать в статью. (Надо распаковать zip-файл в папку, а потом открыть открыть обсидиан и при выборе хранилища выбрать эту папку, куда распаковали zip-файл. Если у вас одно хранилище, то тогда жмём в левом нижнем углу кнопку сейфа)

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

В этом хранилище используются 10 плагинов, основные:

- Calendar - для календаря справа.

- Dataview - для статистики и для проектов.

- Tasks - для задач.

- Templater - для шаблонов и чтобы нужные заметки с запросами создавались в нужных папках и с нужными данными в запросах.

К такой настройке я шёл целый год используя обсидиан, постоянно дорабатывал её и искал "совершенство", в ней собраны разные подходы из разных статьей и книг (GTD, 7 навыков, Джедайские техники, Атомные привычки), данные подходы большинству могут быть знакомы. Но есть метод, до которого я дошёл сам и до этого я нигде его не встречал (возможно просто не попадался) - это метод одной задачи.

Disclaimer1: Мой сетап не претендует на "идеальность", в нём найдутся минусы и неудобности. Я выношу его на общее обсуждение в том числе для того, чтобы кто-то мог предложить ту или иную доработку тут в комментариях, а так же для того, чтобы новички могли сходу вкатиться в этот чудесный обсидиановый мир.
Disclaimer2: Обычно обсидиан ассоциируют с Zettelkasten, графами и прочими атомарными заметками. Я в своём подходе этого не использую, возможно еще не дорос, возможно мой подход немного про другое. В этой статье я пишу не про это.
Погнали вкатываться в обсидиановый мир

Читать: https://habr.com/ru/articles/735858/
Внутреннее устройство DRBD: алгоритмы работы отказоустойчивого хранилища

Глубокое понимание внутреннего устройства DRBD позволяет более тонко настраивать работу системы и правильно планировать ресурсы. К счастью, у команды DRBD уже есть отличная документация, которая довольно подробно разбирает эту тему. Мы опирались на нее в своей работе, и решили перевести и выложить в открытом доступе 17-ю главу — как удобную шпаргалку по внутреннему устройству DRBD. Так что это не обычная статья, а перевод части официальной документации (исходная нумерация разделов сохранена).
В этой главе представлена информация о внутренних алгоритмах и структурах DRBD. Она довольно подробно рассматривает внутреннюю работу DRBD, но делает это не настолько глубоко, чтобы служить справочником для разработчиков. Для этой цели рекомендуем обратиться к материалам, перечисленным в разделе Publications, и, естественно, к комментариям в исходном коде DRBD.


Читать: https://habr.com/ru/companies/flant/articles/733770/
Как делать бэкапы без проводов: restic + MinIO (S3)

До недавнего времени я делал бэкапы своих устройств на внешний HDD. Такой способ меня устраивал потому, что бэкапил данные редко - раз в неделю. Когда задумался о ежедневных бэкапах, понял, что бегать с внешним HDD будет непрактично. Хочу рассказать про удобное (по крайней мере для меня) решение для ежедневных бекапов без проводов.


Читать: https://habr.com/ru/articles/739698/
Системному администратору и нагрузочному тестировщику:  статистика ввода-вывода в ядре Linux под капотом

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

Нам, как конечным пользователям, будет полезно понимать, как устроен механизм сбора и накопления статистики внутри ядра и как читает и интерпретирует данные популярная утилита iostat. Что именно значат aqu-sz, util и другие данные из режима расширенной статистики? Почему многие значения усреднены? Чтобы ответить на эти и другие вопросы, мы пройдем путь от системного вызова до момента, когда запрос ушел в диск и вернулся, — а счетчики обновились. Поехали!


Читать: https://habr.com/ru/companies/yadro/articles/737866/
Построение пайплайна анализа данных в реальном времени с помощью Airbyte, Kafka и Pinot

Как правило, пайплайн аналитики в реальном времени состоит из нескольких компонентов, включая пайплайны ELT, платформу потоковой передачи событий и аналитическую базу данных, способную давать ответы на многочисленые запросы. Однако создание и поддержка такой платформы стоит дорого, а также требует значительных инженерных усилий и времени.

Наличие в вашем распоряжении инструментов с открытым исходным кодом для дата инжиниринга и аналитики помогает снизить стоимость запуска пайплайна аналитики в реальном времени. Доступ к исходному коду позволяет избежать зависимости от поставщика, что предоставляет вам гибкость при настройке решения в соответствии с потребностями вашей организации. В этой статье рассматриваются три популярных продукта с открытым исходным кодом в области данных — Airbyte, Apache Kafka и Apache Pinot — для создания пользовательского дашборда электронной коммерции, который обновляется в режиме реального времени.


Читать: https://habr.com/ru/companies/otus/articles/739940/
Погрузиться в Redis — материалы, которые помогут начать работу

Как начать работу с Redis командам, у которых мало опыта в администрировании СУБД? Можно попробовать создать кластеры Redis в облаке. Или же сначала «вкатиться» в тему и поближе познакомиться с экосистемой — на этот случай мы подготовили подборку литературы. В списке — свежие издания и классика, которую стоит прочитать каждому начинающему Redis-разработчику.

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


Читать: https://habr.com/ru/companies/cloud_mts/articles/739952/
Жизнь после катастрофы: нюансы организации Disaster Recovery на предприятии

В нашем мире многое нестабильно: запланированный отпуск может сорваться, погода на выходные – испортиться, и технологии, которые нацелены на защиту информации, – не исключение. С первых строчек может показаться, что все тлен, но рисками можно и нужно управлять. Например, поездку можно перенести, а на пикник взять зонтик. Неопределенность порождают как внешние, так и внутренние факторы, а сама она влияет на поставленные нами или компанией цели. За долгие годы работы команда «ЛАНИТ-Интеграции» собрала портфель инструментов, которые могут в буквальном смысле спасти компанию, и с одним из них мы хотим вас сегодня познакомить.

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


Читать: https://habr.com/ru/companies/lanit/articles/739076/
Восстановление исходного кода старой игры с ленточного накопителя



Моя история

Мне досталась лента с готовой версией игры Frogger 2: Swampy's Revenge. В детстве я очень любил эту серию игр.

Считалось, что эта лента — единственная резервная копия исходного кода готовой игры, игровых ресурсов и других данных разработки.

Как вы можете понять, эта находка в случае её восстановления оказалась бы бесценной. Но как же вообще считать/записать данные на ленту? Зачем вообще использовались ленточные накопители?

В 1999/2000 годах средний размер жёсткого диска составлял примерно 10 ГБ, к тому же они не славятся долгим сроком службы.

Очень привлекательным предложением были ленточные накопители OnStream, потому что имели картриджи по 50 ГБ (25 ГБ без сжатия) и к тому же стоили дешевле большинства жёстких дисков!

Ленты отлично подходят для резервного копирования, а при правильном хранении могут иметь долгий срок службы. К тому же можно купить ленточный накопитель, который вставлялся в компьютер как CD-привод или привод гибких дисков.


Читать: https://habr.com/ru/companies/ruvds/articles/740194/
Спринт-интенсив Visiology: +300 к HR-карме бренда и куча красивых дашбордов

Привет, Хабр! Буквально на прошлой неделе мы завершили наш небольшой спринт-интенсив. Он доказал, что за 10 дней вполне можно познакомиться с платформой Visiology до такой степени, чтобы начать делать свои собственные дашборды, разбираться с особенностями загрузки данных и построения модели и другими нюансами работы с BI. Что интересно, в нашем спринте принимали участие как опытные BI-щики, так и начинающие специалисты. Под катом — несколько мнений активных участников, а также примеры дашбордов, созданных в ходе обучения.
Узнать, как это было...

Читать: https://habr.com/ru/companies/visiology/articles/740438/
Особенности DevSecOps в облаке или как управлять безопасностью с помощью CSPM

В данной статье мы хотим осветить особенности организации безопасности в облаках и рассказать, как CSPM продукты помогают автоматизировать процесс обеспечения безопасности в рамках методологии DevSecOps. Также расскажем о продукте собственной разработки, который как раз решает эту задачу.


Читать: https://habr.com/ru/companies/neoflex/articles/740254/
Как устроено распределение памяти



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

В этом посте я познакомлю вас с основами распределения памяти (memory allocation). Распределители памяти существуют, потому что иметь доступную память недостаточно, необходимо ещё и эффективно её использовать. Мы наглядно изучим, как работают простые распределители. Мы рассмотрим некоторые из задач, которые им необходимо решать, а также некоторые из методик, которыми они их решают. Прочитав этот пост, вы узнаете всё, что необходимо для написания собственного распределителя.


Читать: https://habr.com/ru/companies/ruvds/articles/740466/
Эффект внутреннего JSON

Джейк с энтузиазмом приступил к своей новой работе, ожидая нового опыта и новых сложных задач. Он жаждал изучать новые стеки технологий и узнать, чему его новая компания может научить его в мире ПО.

Ему сказали, что он будет работать над веб-сайтами и иметь дело с JavaScript, Node.js, JSON и тому подобным. Звучало вполне логично для веб-разработки; странным был только комментарий нетехнического собеседователя, что всё «построено на основе Subversion»; Джейк решил, что просто чего-то недопонял.
Его поставили на проект, в котором использовался собственный «JSON-based Domain Specific Language» компании, или JDSL. Его начальник посоветовал ему изучить копию проекта, на который его назначили, и дал неделю-две на освоение. «Если возникнут вопросы, просто спрашивай, кого угодно, но, судя по твоему опыту, проблем у тебя возникнуть не должно».


Читать: https://habr.com/ru/articles/736900/
Ambee's AI Environmental Data Revolution: Powered by MongoDB Atlas

Read: https://www.mongodb.com/blog/post/ambees-ai-environmental-data-revolution-powered-atlas