Pull to refresh
18
0
Юрий Павлов @sparhawk

Ведущий разработчик Java

Send message

Как YDB изолирует OLTP и OLAP

Level of difficultyMedium
Reading time8 min
Views5.8K

Привет, Хабр! Меня зовут Олег Доронин, и мы с командой делаем СУБД Яндекса, которая называется YDB. Каждый транзакционный запрос к базе данных обычно работает с небольшим набором строк и быстро отрабатывает за единицы или десятки миллисекунд, но таких запросов каждую секунду поступает огромное количество. А вот аналитические запросы обычно выполняются не так часто, но каждый из них может требовать обработки вплоть до всех строк в одной или нескольких таблицах. Такие запросы могут выполняться секунды, минуты, или даже часы в зависимости от объёмов данных и сложности запрошенных вычислений.

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

Читать далее

PostgreSQL без боли и костылей: обзор ключевых расширений

Reading time8 min
Views12K

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

Читать далее

Маленькое эссе о техдолге

Reading time4 min
Views7.2K

Ко мне тут пришло одно уважаемое айтишное издание и попросило комментарий на тему технического долга. Как бы, сразу возникают два вопроса. Вопрос номер раз — им это зачем? И вопрос номер два — а я тут при чем? (есть люди, которые гораздо лучше в теме разбираются). Но как-то они сами не сказали. А я как-то не спросил…

Читать далее

Как превратить ноутбук в полноценное рабочее место не хуже стационарного ПК

Level of difficultyEasy
Reading time11 min
Views49K

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

Читать далее

MDC в реактивном стеке: как не потерять контекст в Spring WebFlux и Kotlin Coroutines

Level of difficultyMedium
Reading time8 min
Views2.6K

Всё больше Java-разработчиков переходят от приложений, использующих синхронный стек, к реактивным решениям на базе Spring WebFlux и Kotlin Coroutines. Такой переход позволяет строить более масштабируемые и устойчивые к высокой нагрузке системы, эффективно используя пул потоков и асинхронное выполнение задач. Однако вместе с преимуществами реактивного подхода появляется и новая неочевидная проблема — потеря MDC-контекста (Mapped Diagnostic Context), который традиционно используется для сквозной трассировки запросов в логах.

Читать далее

Где живут LLM: разбираем инференс-кластер YADRO и гоняем в нем модели

Level of difficultyMedium
Reading time7 min
Views9.3K

Привет, Хабр! В этой статье я расскажу про наш LLM инференс-кластер YADRO: зачем он нужен, что у него под капотом и как в такой конфигурации показывают себя популярные модели. Кроме того, я немного порассуждаю об альтернативных реализациях кластера и поделюсь планами по развитию реализации нашей.

Читать далее

JEP 519: Компактные заголовки объектов — теперь официально

Level of difficultyEasy
Reading time1 min
Views2.4K

Команда Spring АйО представляет одну немаловажную фичу Java 25: компактные заголовки объектов (Compact Object Headers). Это позволит JVM экономить память и ускоряться без вмешательства в код.

Читать далее

Angie 1.10: разбор фич, планы на 1.11

Level of difficultyEasy
Reading time17 min
Views2.4K

Следуя устоявшемуся квартальному ритму выпуска значимых релизов, мы выпустили стабильные версии Angie и Angie PRO 1.10 — форка nginx, развиваемого в основном бывшими ключевыми разработчиками оригинального проекта.

Как и в прошлый раз, расскажем подробнее о нововведениях, приводя примеры. Вы узнаете, в чём ключевая фишка нового релиза (картинка под заголовком намекает); также слегка приоткроем завесу тайны над тем, что у нас припасено на будущее.

А пока — краткий список нововведений, которые будут разобраны ниже:

— автоматическое проксирование и балансировка веб-сервисов в Docker-контейнерах (или Podman);
— автоматическое получение TLS-сертификатов для потокового модуля (stream);
— прием соединений Multipath TCP (MPTCP);
— контроль перегрузки CUBIC в QUIC-соединениях;
— привязка сессий с внешним хранилищем в модуле stream;
— новые режимы привязки сессий при проксировании HTTP-запросов;
— режим постоянного перехода на резервную группу в модуле stream.

Читать далее

OpenCV. Начало

Level of difficultyEasy
Reading time13 min
Views24K

В прошедшем июне исполнилось 25 лет первому релизу OpenCV. Господи, как летит время! Кажется, только вчера мы писали первые строчки. А уже четверть века с тех пор прошло. Самое время вспомнить, как все начиналось. Я не ставил себе целью рассказать в этой статье полную историю OpenCV — есть замечательная книга Гари, отличная статья в интеловом блоге и много других материалов. А у меня — скорее взгляд изнутри на то, как зарождался де-факто стандарт компьютерного зрения, размышления о причудливых развилках пути и факторе везения в технологии и дань уважения людям, с которыми мне довелось поработать.

Читать далее

Сервер, который не хотел жить

Level of difficultyEasy
Reading time4 min
Views13K

Привет, Хабр!

На связи сервисная команда «Инфосистемы Джет». Сегодня хотим рассказать про один из технических кейсов. На его решение должна была уйти пара часов. Вместо этого он съел четыре дня нашей жизни. Спустя почти десяток лет он регулярно вспоминается в обсуждениях за обедом как один из непростых в диагностике. На днях обсуждали его — почему бы теперь не рассказать о нем вам? :) Приступим.

Читать далее

Про архитектуру приложений для тех, кому мало Чистой архитектуры

Level of difficultyHard
Reading time19 min
Views20K

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

Лет пять назад я обнаружил для себя Чистую архитектуру Дяди Боба и на некоторое время успокоился, пока поток новых источников постепенно не начал менять мое отношение и к этой книге. Но, если вы решили для себя, что Чистая архитектура — это ваш окончательный выбор, то я точно не буду вас отговаривать, потому что, на мой взгляд, это однозначно лучше, чем, наверное, 90% того, что вам встретится на рынке.

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

Раньше мы в 3 частях [1, 2, 3] пробежались по основным идеям архитектуры систем. Поэтому, если вы ищете информацию по System Design, микросервисам и топологии команд, то вам туда. Эта же статья про архитектуру внутри кодовой базы: она посвящена концепциям программирования, влияющим на структуру приложения, поэтому описывает не только архитектурные подходы, но и иные идеи, оставляющие на дизайне свой отпечаток.

Читать далее

Вредные советы Java: просто используй Parallel Stream

Level of difficultyEasy
Reading time7 min
Views5.7K

Stream'ы в java явление давно не новое. Старая добрая Java 8 появилась на свет более 10 лет назад. С появлением Stream API жизнь стала проще и веселее. Но есть в Stream API два гадких утёнка: Stream#close и Stream#parallel.

С первым все достаточное просто — если не уверен в источнике откуда берется Stream — то он может быть вполне себе ресурсом и требовать try‑with‑resources (привет java.nio.file.Files#list). Cо вторым куда веселее...

Читать далее

Как я стал быстрее переключаться между задачами

Level of difficultyEasy
Reading time3 min
Views20K

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

Приятного просмотра

IT-рынок в 2025 году: тренды и вызовы. Как искать работу в текущих реалиях?

Level of difficultyEasy
Reading time13 min
Views12K

Привет, хаборовцы! 👋

Меня зовут Никита, я отвечаю за подбор IT-специалистов и выстраивание эффективных процессов найма в компании Домклик. Поделюсь с вами сегодня своим экспертным мнением на тему того, что происходит на рынке IT. Вопросов, на самом деле, довольно таки много, правила игра меняются просто по щелчку пальца. А что поделать, 2025 год, он такой. Тут нужно уметь выкручиваться и быстро адаптироваться под новые условия =)

Давайте начнем разбираться, расскажу обо всем по порядку...

Читать далее

Функциональное и объектно-ориентированное проектирование

Level of difficultyMedium
Reading time6 min
Views8.6K

В современном обучении программированию, как правило, основное внимание уделяется парадигме объектно-ориентированного программирования (OOP) и вытекающей из неё методологии объектно-ориентированного проектирования (OOD). Определённый ренессанс в наше время испытывает парадигма функционального программирования, но практически никогда в связке с ней не рассматривается функциональное проектирование. Попытаемся осветить наше видение этих вопросов.

Читать далее

Headhunter больше не работает. Как искать работу по-новому?

Level of difficultyEasy
Reading time5 min
Views15K

Рынок найма в последние годы заметно изменился: компании стали избирательнее, процессы автоматизированнее, а конкуренция жёстче. Headhunter еще удерживает позицию крупнейшего маркетплейса вакансий в СНГ, но его эффективность заметно упала, особенно в сфере IT.

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

Читать далее

Верните непрерывную интеграцию разработчикам

Level of difficultyMedium
Reading time7 min
Views14K

Все знают аббревиатуру CI/CD. Continuous Integration and Continuous Delivery - Непрерывная интеграция и Непрерывная поставка. Но едва ли можно найти более неправильно понимаемую нашей индустрией идею, чем непрерывная интеграция. Практика, которая была придумана, чтобы её делали разработчики, почему-то превратилась в объект работы девопсов, хотя к культуре DevOps ну вообще никакого отношения, по идее, иметь не должна.

Так что вот вам статья про то, как так вышло, что сейчас под CI понимают что угодно, кроме того, чем она, на самом деле, является.

Читать далее

Чем различаются ОС IBM мейнфрейм и ОС х86

Level of difficultyHard
Reading time21 min
Views11K

Это статья в формате вольного пересказа более чем сорокалетнего периода работы с разными ОС, главным образом с ОС мейнфрейм, и размышлениями об их сходстве и различиях (в большей степени о различиях, конечно).

Многие популярные ОС выполняются на серверах (речь в статье пойдет исключительно про серверные ОС) х86 (Intel, AMD). Это Линукс разных мастей и названий, и Windows. В силу уклона российского образования в сторону инфраструктур на основе х86 у многих айтишников есть твердое убеждение, что то, как написаны известные ОС, это единственный вариант, как ОС и могут быть написаны. Попытки писать свою, российскую, ОС сводятся к написанию очередного Линукса.

Но есть и другие, современные ОС, выполняющиеся не на х86 платформе. Это одна из ОС IBM мейнфрейм (МФ), называемая z/OS. IBM МФ — тоже весьма современная техническая платформа. В апреле этого года IBM анонсировали новое поколение z17, т. е. семнадцатое поколение, начавшее свою историю в далеком 1964 году.

Читать далее

Сжатие текста в Angie: статика, динамика, производительность

Level of difficultyMedium
Reading time11 min
Views2.3K

Сжатие текстовых ресурсов — это базовая мера оптимизации скорости загрузки веб‑приложений. Действительно, текста в вебе много: HTML, CSS, JS, JSON, SVG и не только. Казалось бы, тема простая: включили gzip, добавили типы контента для сжатия и всё готово. Однако, как всегда самое интересное в деталях. Разберёмся во всём подробно.

Читать далее

Шаг за шагом проектируем сокращатель ссылок

Level of difficultyEasy
Reading time8 min
Views9.7K

В этой статье я хочу показать, что из себя представляет System Design. На примере простого и очень популярного на собеседованиях сервиса «Сокращатель ссылок», мы рассмотрим стадии System Design и в конце у нас будет готова схема системы со всеми расчетами.

Вперед!

Information

Rating
4,622-nd
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity