Как стать автором
Обновить
163.69

Хранение данных *

Что имеем, то храним

Сначала показывать
Порог рейтинга
Уровень сложности

Диск — это просто куча битов

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров14K

Доводилось ли вам слышать утверждение, что диск или память — это «просто куча битов?»
Не знаю точно, откуда эта идея пошла, но она вполне разумна и в некоторой степени рассеивает таинственный ореол вокруг компьютеров. Например, она опровергает теорию о том, что внутри моего ПК живёт очень плоский эльф.

Оказывается нет, в нём находятся биты, закодированные в электрических компонентах.

И всё же компьютеры по-прежнему хранят в себе загадочность. Что это за биты? Что они означают? Можем ли мы с ними поиграться, спарсить их, понять?

Далее я покажу вам, что всё это определённо возможно! Ради вашего развлечения я засуну руку в свой ПК, вытащу оттуда кучку битов, и мы их с вами изучим.
Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии38

Сто первое руководство по мониторингу метрик в Redis

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.5K
image

Жизненно важно отслеживать проблемы с производительностью Redis. Для этого инструмента характерна низкая задержка отклика при обслуживании многочисленных запросов. Есть определенные ключевые метрики, которые можно отслеживать для контроля за производительностью вашего экземпляра Redis. В этой статье мы пройдемся по этим метрикам и рассмотрим способы их сбора с помощью встроенных в Redis инструментов.

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

О чем расскажут на SmartData 2023

Время на прочтение21 мин
Количество просмотров1.5K

Хорошо осенью любоваться на озёра… на озёра данных. Особенно когда про них говорит спикер Владимир Озеров. В общем, этой осенью, как и раньше, мы проведём конференцию SmartData обо всём, что важно в дата-инжиниринге: от отказоустойчивости до MLOps.

6-7 сентября пройдёт онлайн-часть, а 13-14 сентября встретимся в Москве (но все, кто не готов добраться на московскую площадку, смогут и во второй части поучаствовать удалённо).  

Среди тем — и архитектура дата-платформ, и «внутренности» баз данных, и стриминг, и DataOps, и даже пара «космических» (в буквальном смысле) докладов. А среди спикеров есть те, чьи доклады уже хвалили участники прошлых SmartData — например, Максим Бабенко, Владимир Озеров, Дмитрий Аношин, Евгений Ермаков и Максим Стаценко. Все описания докладов — под катом.

Программа SmartData 2023
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

Как на самом деле Linux выполняет запись на диск?

Время на прочтение6 мин
Количество просмотров27K

Друзья мои, программисты и операторы, я бы хотел поговорить о том, как в Linux работает запись файлов.

Раньше я думал, что она устроена определённым образом, и как Джон Леннон, «I’m not the only one». Оказалось, операции записи работают совершенно иначе. То, как они работают, интересно и важно знать.

Позвольте начать с того, как я раньше думал о записи файлов.

Читать далее
Всего голосов 82: ↑63 и ↓19+44
Комментарии113

Истории

Что такое обезличивание и с чем его едят?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4K

Три года назад, весной 2020, пандемия COVID-19 только начиналась и все переходили в режим самоизоляции. Мы в один миг оказались в ситуации, когда у нас имеется огромное количество данных, доступ к которым можно получить лишь из офиса, в который, разумеется, невозможно попасть. Работать без доступа к документам нереально, нам критически необходимо продолжать размечать данные, а значит нужно разработать подход, при котором можно это делать удаленно. Именно тогда мы в очередной раз подняли тему, которая и так периодически возникала в наших обсуждениях — а так ли нам нужны настоящие данные? Ответ очевидный: нет, если мы сохраняем их вид (ФИО меняем на ФИО, адрес на адрес и т. д.). Данный процесс называется обезличиванием.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Ping пакеты как временное хранилище данных на python raw socket

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров9.7K

Payload (данные) в ping пакете действительно есть, однако до реальной пользы им далеко - это английский алфавит (нет, я не испытываю ненависть к латинице, просто мне хотелось бы уметь редактировать это содержимое).

Читать далее
Всего голосов 56: ↑55 и ↓1+54
Комментарии30

Японский SSD (sardine state disk)

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров11K

В декабре 2018 японский студент-химик с ником ni28_xp опубликовал фотографию USB-накопителя, сделанной из анчоуса. Звучит максимально странно даже для Японии, не так ли?

Читать далее
Всего голосов 32: ↑21 и ↓11+10
Комментарии19

Нативный способ шифрования данных в Helm

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.3K

Привет, Хабр! Меня зовут Миняйлов Лев, я старший разработчик и DevOps-инженер Группы "Иннотех".

Хочу поделиться решением задачи шифрования чувствительных данных в Helm, использующим встроенные функции encryptAES/decryptAES.

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии4

Мониторинг — это боль

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров13K

И все мы выполняем его неправильно (в том числе и я).

Я должен признаться. Несмотря на то, что меня много раз нанимали в том числе и благодаря моему опыту работы с платформами мониторинга, я начал его ненавидеть. Инструменты мониторинга и наблюдаемости (observability) совершают тяжкий грех: обманом заставляют людей думать, что это простая задача. Очень легко мониторить маленькое приложение или сервис. Но почти ни одно из таких решений не масштабируется.

Вместо этого мониторинг превращается в бесконечную последовательность маленьких неудач. Метрики на какое-то время исчезают, логи перестают записываться на несколько часов, веб-UI для трассировок больше не работает. Мы настраиваем эти инструменты, готовясь, что сможем о них после этого забыть, но на самом деле они требуют постоянно растущих усилий по обслуживанию. Некоторые инструменты ломаются, и их больше никто не чинит. Я слишком часто приходил в новую компанию и видел, что в ней развёрнут нелюбимый мной поломанный Jaeger.

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

В статье я расскажу о том, что, по моему мнению, нужно делать, а также поделюсь своими надеждами и мечтами. Прошу вас убедить меня, что я не прав и что есть более качественные решения.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии15

Почему мы не торопимся применять новые технологии

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров15K
image

В комментариях к постам про разбор аварии (тут и тут) было развёрнутое обсуждение про новые технологии в ИБП, которые можно внедрить. Коротко — мы не будем внедрять ничего ультрасверхсовременного. Потому что лучшая версия для знакомства с софтом — это 2.4. В случае MS ещё хорошо, когда за цифрами написано что-то вроде SP2. Потому что если пробовать на себе все новые технологии, то это, конечно, дико интересно и прогрессивно, но мешает бизнесу. У нас дефицит свободного времени и рук. Вот, собственно, несколько прикладных историй, почему мы не торопимся нырять в новые технологии.

Пример с новым железом, на котором может строиться вся инфраструктура, думаю, знаком всем, поэтому начну не с него, а с холивара про IPv6 против IPv4.

Протокол v6 невероятно хорош. Его писали думающие люди, он снимает море проблем интернета, он реально крут. Адреса IPv6 практически бесплатные. Они не кончаются. В свою очередь, IPv4 стоят совершенно неприличных уже денег (это вторая статья в себестоимости виртуальной машины после железа), постоянно дорожают — и, что гораздо хуже, не всегда можно взять в аренду нужное их количество. Бывает, что к нам заезжает крупный клиент, мы хотим арендовать ещё 256 адресов v4 — и блок освобождается не через 15 минут, а через несколько дней. То есть нам надо постоянно ковыряться с тем, чтобы они были.

Но при этом IPv6 ещё хуже с точки зрения реального применения. Вообще, я лично не совсем понимаю, кому сейчас он нужен. Многие наши коллеги, кто пользуется, говорят просто: «В РФ v6 нет и не будет в ближайшее время, наверное». А специалисты по ИБ ещё категоричнее: «Я его просто отрубаю от греха подальше».
Читать дальше →
Всего голосов 77: ↑75 и ↓2+73
Комментарии42

Как предложить рынку ИТ-продукт, если пользователи еще не знают, что он им нужен

Время на прочтение6 мин
Количество просмотров2.1K

Как показал небольшой ресерч, на Хабре представлено немало материалов об управлении развитием продукта. Много теории посвящено тому, как вывести свой проект на рынок, правильно позиционировать его и найти аудиторию. Но, как вы понимаете, когда дело доходит до практики, возникает целый ряд интересных нюансов. В этом посте в блоге ЛАНИТ я поделюсь своим опытом вывода на рынок продукта, для которого раньше не было ниши. Уверен, история создания нашего продукта с нуля окажется полезной тем, кто задумывается о продвижении своего собственного решения. 

Читать далее
Всего голосов 23: ↑22 и ↓1+21
Комментарии0

Выбор структур данных для самописного текстового редактора

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров10K

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

Ресурсы


Прежде чем мы приступим к разбору того, что я сделал, важно упомянуть очень полезные ресурсы для создания собственного текстового редактора:

  • Build Your Own Text Editor — наверно, самый фундаментальный пост о создании текстового редактора с нуля, который я видел. Это превосходный туториал на случай, если вы хотите начать писать собственный текстовый редактор. Стоит заметить, что в редакторе из этого туториала в качестве внутренней структуры для текста используется, по сути, вектор строк.
  • Text Editor: Data Structures — отличный обзор множества структур данных, которые можно использовать при реализации текстового редактора. (Спойлер: как минимум одна из них будет рассмотрена в моём посте)
  • Плейлист Ded (Text Editor) на YouTube — это потрясающая серия, в которой @tscoding фиксирует процесс создания с нуля текстового редактора. Эти видео стали для меня источником вдохновения.

Зачем?


Если в сети есть так много хороших ресурсов о создании собственного текстового редактора (не говоря уже о том, что уже существует множество феноменальных текстовых редакторов), то зачем я это пишу? На то есть несколько причин:

  1. Я хотел заняться проектом, непохожим ни на один свой прошлый.
  2. Я хотел создать инструмент, которым смогу пользоваться.
  3. Мне всегда хотелось глубже разобраться с созданием собственных структур данных.
Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии18

Отвечаю на вопросы после аварии

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров34K
image
Мы шутили про эти телефоны, а они пригодились на прошлых выходных. Точнее, пригодилось резервирование телефонии. Не конкретно эти, но похожие)

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

Но давайте обо всём по порядку.

— Сколько клиентов пострадало?

— На три часа и более в одном ЦОДе отключилось 7–10 % из 14 наших, то есть менее 0,5 % от общего числа клиентов хостинга (точнее, хостов). Тем не менее мы очень подробно рассказываем про эту аварию, потому что она вызвала очень много вопросов.
Читать дальше →
Всего голосов 162: ↑161 и ↓1+160
Комментарии81

Ближайшие события

Как вывести миллиарды ключей из ScyllaDB

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.3K

Мечтал ли я когда-либо ворочать миллиардами? Честно признаюсь, да. И нельзя сказать, что Вселенная меня не услышала. Вот только я никак не имел в виду миллиарды записей в базе данных...

Ранее я уже писал о нашем опыте использования ScyllaDB в качестве архивного хранилища. Разумеется, исследования и открытия, связанные с новой базой данных, для нас на этом не закончились... Создавая архив для данных, вероятность обращения к которым близка к нулю, мы, конечно, допускали, что время от времени клиенты будут просить вернуть данные обратно в оперативное хранилище. Но запрос на извлечение из архива сразу всех записей стал для нас неожиданностью. Хорошо ещё, что клиента интересовал только ключ записи, а не вся запись целиком. Тем не менее достать 10 млрд. ключей из ScyllaDB за приемлемое время звучало как челлендж. Ну надо так надо.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии2

Правильные и простые бэкапы. Инструменты Veeam для резервного копирования — в чем разница?

Время на прочтение6 мин
Количество просмотров17K

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

Но какое решение для этого выбрать? И если Veeam, то что использовать — Backup & Replication, Agent или Сloud Connect? В тексте постарались объяснить, в чем разница между сервисами Veeam для резервного копирования.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии14

Самый длинный простой за нашу историю: я обещал рассказать про аварию

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров52K
Коротко: 17 июня около часа ночи мы потеряли два ввода питания от города из-за аварии на подстанции, затем — один из дизелей, что вызвало «мигание» питания в подземном дата-центре. Итог инцидента — простой около 12 часов примерно 7–10 % машин одного из 14 наших ЦОДов.

Это просто дикая цепочка событий.

image
Это патрубок дизеля, перевязанный бинтом из админской аптечки. Сейчас расскажу, какую роль он тут сыграл.

Итак, мы потеряли оба городских ввода — всё как в худших домах Парижа. Как мы уже потом узнаем, вроде бы авария была на трансформаторе 110 кВт: при перераспределении мощностей с первого произошло замыкание второго. За полтора года это уже третий раз, когда пропадают оба луча, и вот тут я рассказывал, как мы почти сутки стояли на дизеле. Для клиентов это прошло незаметно (кроме той стойки, где при мигании света сгорел ИБП: там был простой на перезагрузку).

Штатно сработали ИБП, автоматически завелись дизель-генераторы, ЦОД продолжил работу. У нас общая энергосеть с соседним ЦОДом всё в том же подземном бомбоубежище. Общее потребление — 0,5 МВт, дизелей — на 1,05 МВт.

Через два часа, около 3:30 ночи, лопнул патрубок дизеля 0,5 МВт, отчего он внезапно перестал работать. Админы убежища переключили мощности на дизели 2 х 100 КВт и 2 х 200 КВт. В момент переключения нагрузка снова легла на ИБП, а за два часа они не успели восстановиться, и часть оборудования выключилась.

Это запустило целую цепочку последствий, потому что при этом выключении погорела одна из плат коммутатора, обеспечивавшего доступ в нашу сеть управления ЦОДом, то есть все удалённые доступы.

На площадке остались два админа, которым нужно было включить вручную коммутаторы и стойки, починить дизель и понять, что вообще происходит.
Читать дальше →
Всего голосов 200: ↑198 и ↓2+196
Комментарии292

Dedup Windows vs Linux, MS снова “удивит”?

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров7.6K

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

Читать далее
Всего голосов 21: ↑20 и ↓1+19
Комментарии27

Организация хранения исторических данных в Oracle

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.3K

Привет! Сегодня поговорим о разных способах организации хранения исторических данных в Oracle. Если вам известно более двух способов, то вы молодец и уже почти всё знаете, в чём вам и остаётся убедиться, просмотрев разделы статьи. 

Читать далее
Всего голосов 22: ↑20 и ↓2+18
Комментарии7

В 10-17 раз быстрее, чем что? Анализ производительности Intel x86-simd-sort (AVX-512)

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров5.7K

В статье приведён анализ производительности недавно ставшей популярной [1] реализации сортировки Intel AVX-512.

Intel опубликовала невероятно быструю библиотеку сортировки для AVX-512, Numpy переходит на неё, чтобы ускорить сортировку в 10-17 раз

В этом анализе мы рассмотрим производительность x86-simd-sort компании Intel и сравним её с другими обобщёнными реализациями сортировки, например, с std::sort из стандартной библиотеки C++ и vqsort — ещё одной высокопроизводительной реализацией сортировки с ручной векторизацией. Сведение сложных характеристик производительности к единому числу может быть сложной задачей, а получаемые прогнозы могут быть неточными. В своём анализе я хочу шире взглянуть на это значение «10-17 раз» и понять, как оно соотносится с другими высокопроизводительными реализациями.

TL;DR: бенчмаркинг — это сложно. Если вы пользуетесь x86-simd-sort, то можете повысить общую производительность и избежать катастрофического масштабирования при определённых паттернах входных данных с помощью vqsort + Clang. Кроме того, в анализе показано, что аппаратно-зависимая ручная векторизация с широкими AVX-512 SIMD — не единственный способ писать эффективное ПО. Несмотря на свою обобщённость, ipnsort демонстрирует сравнимую с x86-simd-sort производительность, оптимизированную не только под пиковую производительность, используя команды только до уровня SSE2.

Читать далее
Всего голосов 32: ↑32 и ↓0+32
Комментарии7

Холиварный четверг: подключайтесь к BI-баттлу OpenSource vs проприетарное ПО

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.5K

О чем стоит подумать в понедельник? Например, можно о том, чтобы поучаствовать в холиваре через три дня в четверг! Мы как раз готовимся провести онлайн-вебинар, посвященный решению задач Business Intelligence на базе OpenSource-технологий и проприетарного ПО. Но не просто так ради холивара, а на примере решения нескольких реальных кейсов. В мероприятии будут участвовать два эксперта, каждый из которых — убежденный сторонник своего подхода. Если тема BI вам близка, если любите похоливарить или просто хочется занять вечер четверга чем-то интересным, подключайтесь! Все подробности ивента — под катом.

Пожалуй, похоливарим...
Всего голосов 15: ↑13 и ↓2+11
Комментарии7