Как стать автором
Поиск
Написать публикацию
Обновить
178.56

Высоконагруженные системы *

Методы получения высокой производительности систем

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

Как не потерять важные проверки в долгих тестах: soft-assert на практике

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

Решение — использовать soft-assert, которые не прерывают выполнение. В команде мы используем Pytest плагин pytest-check, которая позволяет писать soft-assert через контекстный менеджер with check. Это дает возможность:

  • продолжить тест даже при частичных ошибках,

  • собрать диагностику по множеству компонентов (например, контроллеры, кэши, пулы),

  • минимизировать потери времени при дорогостоящих прогонах.

Пример soft-assert с pytest-check:

from pytest_check import check


def object_stack():
    pool_stack = ExitStack()
    yield pool_stack
    for host in hosts:
        with check:
             result = None
             try:
                PoolsService.get_pools_info(host)
             except HostUnavailableException as err:
                result = err
             assert not issubclass(type(result), HostUnavailableException), f'Failed to get pool: {result}'

Soft-assert полезен, когда нужно получить статус всех компонентов, несмотря на сбои отдельных, одна ошибка не делает тест недействительным и тест длится часами и его повтор — затратен.

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

О том, как устроен процесс проверки надежности СХД TATLIN.UNIFIED, рассказала Наталья Грязнова, ведущий инженер по разработке ПО в YADRO. В тексте она делится подходами, которые позволяют комплексно проверять работу систем в разных условиях — от сверхнагрузок до нестабильной среды.

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

Как развернуть сервис для сбора данных с 500 000 транспортных средств

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

Компания «ГЛОНАССSoft» справляется — на инфраструктуре Selectel. В Академии Selectel рассказываем, как команда:

  • обрабатывает 25 миллионов запросов в день,

  • держит инфраструктуру стабильной под высокой нагрузкой с SLA 99,995% за счет репликации, облачных балансировщиков и производительного железа,

  • защищает API с помощью файрвола и настроек сети,

  • минимизирует риски потерь данных благодаря S3-хранилищу.

Теги:
Всего голосов 6: ↑6 и ↓0+7
Комментарии0

High‑Agency People

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

Дальше университеты начали обещать «научим думать». Логика, критическое мышление, работа с данными — всё ещё звучало солидно. И тут внезапно подали второй протез: искусственный интеллект, умеющий не просто хранить, а обрабатывать, синтезировать, предлагать решения. Чат‑модели пишут код, рисуют презентации и спорят о Хайдеггере. Наши когнитивные мускулы тоже оказались отчасти заменяемыми.

Получается странная картина: знание обслуживает Google, мышление делегируется ChatGPT, а что остаётся человеку? Зачем нанимать сотрудника, если его хард‑скиллы обесцениваются быстрее, чем заканчивается бесплатный пробный период очередного SaaS? А главное - какой скилл будет преимуществом в недалеком будущем?

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

Что я называю «агентностью»

Это привычка не ждать. Заметил дырку в процессе — залатал. Увидел новую гипотезу — проверил на реальных цифрах. Не спрашиваешь: «Можно ли?», а говоришь: «Я уже запустил, держу в курсе». Агентность живёт не в чек‑листах OKR, а в личном эмоциональном пружинном механизме, который толкает вперёд без внешнего толкателя.

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

Как прокачивать эту мышцу

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

Ставь себя в ситуации неопределённости. Проекты, где нет подробного ТЗ, заставляют мозг переключаться с режима «исполнить» на «придумать и исполнить».

Сократи лаг между «увидел» и «сделал». Чем меньше времени проходит, тем сильнее закрепляется привычка действовать.

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

Выставляй работу на показ раньше, чем комфортно. Чем чаще получаешь реальную обратную связь, тем быстрее круг «мысль → действие → результат».

Окружение без микроменеджмента. Если начальник решает за тебя, агентность усыхает. Ищи команды, где ценят автономию и готовы терпеть ошибки ради скорости.

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

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии3
DS Proxima - российские балансировщики нагрузки
DS Proxima - российские балансировщики нагрузки

Друзья, мы делали, делали и наконец доделали аппаратный балансировщик нагрузки DS Proxima. Ура!

3 факта о DS Proxima:
- L4 балансировщик с контролем состояния компонентов кластера на L7
- салатовый корпус, который светится в темноте
- уже в Реестре Минпромторга России

А 25 марта мы вместе с OCS Distribution приглашаем вас на вебинар, на котором расскажем, кому необходим балансировщик и какие задачи он решает, разберём сценарии внедрения и обсудим, каких зарубежных производителей смело можно импортозаместить.

Зарегистрироваться нужно тут, присоединяйтесь!

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Через час подключайтесь к вебинару о сетевых дисках для выделенных серверов

В 12:00 мск начнем вебинар «Как работать с сетевыми дисками для выделенных серверов». Поговорим о новой фиче выделенных серверов Selectel — сетевых дисках. Обсудим ее с двух точек зрения — технической и продуктовой, а еще расскажем, как создавать сетевые диски и подключать их к серверам.

Смотреть на YouTube →

Смотреть во ВКонтакте →

Программа вебинара

  • Введение в работу с сетевыми дисками: зачем они нужны и какое развитие ждет этот сервис;

  • Архитектура сетевых дисков и демо подключения диска к хосту или группе хостов.

Кому будет интересно

  • Системным администраторам;

  • DevOps-инженерам;

  • Техлидам.

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

Подключиться к трансляции →

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

Как не надо использовать Assert, если реализуете подход Design by Contract

Использовать Assert вместо if err != nil { return err}

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

Выполнять вычисления при вызове Assert

Еще одна распространенная и трудно выявляемая ошибка — это выполнение вычислений и присваивание значений переменным прямо при вызове Assert, которые могут быть упразднены при оптимизации кода компилятором:

  •  e.g. Assert(i++ > 0, “осторожно, не факт, что в релизе i увеличится”),

  •  Assert(call_to_f1(), “осторожно, не факт, что call_to_f1() будет вызвана в релизе”).

Удалять Assert, несмотря на то, что это часть описания контракта

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

Например, вызывающая сторона может полагаться на некоторое поведение вызываемого кода. И если вызываемый код существенно изменился и контракт не выполнен, то вызываемая сторона тоже должна быть существенно переосмыслена.

В реализации пакета Go 1.23 fmt-функция Printf всегда возвращает err = nil. И практически все игнорируют возвращающееся значение ошибки, тогда как могли бы проверять постусловие assertion.Assert (err == nil). Так, рано или поздно в последующих версиях можно научить код реагировать на err, отличный от nil.

Как правильно применять assertions, если реализуете подход Design by Contract для улучшения производительности кода в продакшене? Читайте в статье →

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

В начале года я опубликовал статью про гибридное кэширование.

Гибридное кэширование в ASP.NET Core
В .NET 9 появилась новая библиотека для кэширования — HybridCache . В статье расскажу, что это такое...
habr.com

Прошло уже больше месяца, а стабильная версия nuget-пакета Microsoft.Extensions.Caching.Hybrid так и не вышла.

Я не делаю прогнозы по датам выхода, но хочу порассуждать на тему того, чего ожидаю от стабильной версии. И чего — точно нет.

Начну с последнего — каких изменений я не ожидаю

Изменение состава и сигнатур текущих методов. Если следить за выходом новых версий пакета Microsoft.Extensions.Caching.Hybrid, можно заметить, что методы объекта HybridCache не меняются уже давно. Из этого можно сделать вывод, что в стабильной версии мы увидим тоже самое, что наблюдаем сейчас.

Какие изменения я ожидаю увидеть

Удаление объекта из кэша по тегам. На момент написания статьи метод RemoveByTagAsync вообще не имел реализации. Сейчас в версии 9.2.0-preview.1.25105.6 он реализован и вполне себе работает, так что в релизную версию явно войдёт.

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

  await cache.GetOrCreateAsync(
    "someKey",
    async ct => await SomeFuncAsync("someKey", ct),
    options,
    ["tag1", "tag2", "tag3"],
    cancellationToken);

  await cache.GetOrCreateAsync(
    "someKey",
    async ct => await SomeFuncAsync("someKey", ct),
    options,
    ["tag1", "tag4"],
    cancellationToken);

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

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

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Microsoft создала первый в истории человечества квантовый чип на топопроводниках. Это фундаментальный прорыв в технике и физике.

Microsoft потратила 20 лет на исследования и создала новый класс материалов — топопроводники. Топопроводники создают новое состояние материи — не твёрдое, жидкое или газообразное, а топологическое. Топологические кубиты не ограничены законами термодинамики и электродинамики. С ними человечество сможет создать квантовый компьютер с миллионом кубитов — он сможет решать задачи, которые занимают тысячи лет даже на современных суперкомпьютерах. Это не просто исследование: у Microsoft уже есть рабочий чип на топопроводниках — Majorana 1.

Majorana 1 оснащён восемью топологическими кубитами. Компания планирует использовать его в исследованиях, которые в будущем позволят создать чип с 1 млн кубитов. Новый процессор производится Microsoft в США. Это стало возможным благодаря тому, что он выпускается в небольших объёмах. В компании считают, что квантовый чип появится в облаке Azure до 2030 года. Однако для этого чип должен иметь хотя бы несколько сотен кубитов.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии8

«Слово о нагрузочном тестировании: курс на успешную миграцию»

📅 13 февраля, 16:00

А как тестируете вы?
📈13 февраля на онлайн-митапе обсудим преимущества и недостатки различных методов проведения нагрузочного тестирования. На примере реального кейса миграции СУБД представим нашу собственную методику оценки производительности информационных систем!

👨‍💻 Спикеры мероприятия:

Роман Севрук, менеджер по развитию решений СУБД

Александр Зубков, инженер по автоматизации нагрузочного тестирования

Алексей Сатин, архитектор инфраструктурных решений

Регистрируйтесь на онлайн-митап, чтобы узнать, как выбрать подходящий способ оценки производительности, минимизировать риски возникновения проблем и оптимизировать расходы на нагрузочное тестирование. 

Теги:
Рейтинг0
Комментарии0

PGConf.Russia 2025 ждёт доклады

Мы ищем тех, кто горит PostgreSQL так же, как и мы. Если вы администратор баз данных, разработчик, архитектор или DevOps-инженер, и в вашей работе PostgreSQL играет важную роль – нам есть что обсудить.

PGConf.Russia 2025 пройдёт 31 марта – 1 апреля в Центре международной торговли в Москве и онлайн. 

О чём рассказать?

Возможные темы для докладов на PGConf.Russia 2025:  

  • Практический опыт администрирования PostgreSQL, оптимизация производительности и автоматизация задач.

  • Архитектурные решения для обеспечения отказоустойчивости и масштабирования PostgreSQL: резервное копирование, восстановление, кластеризация, шардирование.

  • Инструменты и методики эффективной миграции на PostgreSQL с других СУБД или устаревших версий.

  • Опыт использования новых возможностей и расширений PostgreSQL, их применение и перспективы.

Почему сто́ит выступить?

PGConf.Russia 2025 — это:

  • Большая аудитория. 1 500+ увлечённых профессионалов, готовых учиться, обмениваться опытом и задавать каверзные вопросы. 

  • Признание и уважение. Ваш опыт ценен для сообщества. Выступление на PGConf.Russia – это возможность заявить о себе, повысить профессиональный статус и получить заслуженное признание.

  • Бесплатное участие и размещение. Мы ценим вклад спикеров. Для докладчиков участие в конференции и размещение – за наш счёт.

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

Как подать заявку?

До 23 февраля 2025 года зайдите на сайт PGConf.Russia 2025 и нажмите кнопку «Подать доклад». Заполните название и аннотацию доклада, выберите формат, если нужно, оставьте дополнительный комментарий для программного комитета.

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

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

⚡️ ПОЧЕМУ JAVA ТАКАЯ БЫСТРАЯ?

Есть много языков, которые не компилируется в машинный код, а исполняются на виртуальной машине или интерпритаторе - C#, Python, JavaScript и так далее, но самый быстрый из них Java.

😮 Почему?
В начале 2000-х на рынке JVM существовало несколько ключевых игроков:

  • Sun Microsystems HotSpot

  • IBM J9

  • Oracle JRockit

  • Excelsior JET

Но в декабре 2006 года, с выходом Java 6, HotSpot вырвалась вперед, разгромив конкурентов, благодаря JIT-компиляции.

🤔 Как работает JIT?
Just In Time компиляция — это механизм, который компилирует часто исполняющиеся участки кода в машинный код во время выполнения программы, что значительно ее ускоряет.

Рассмотрим метод:

public void exampleMethod(int value) {
    if (value > 0) {
        // Исполняется часто
        System.out.println("Positive value");
    } else {
        // Исполняется редко
        System.out.println("Non-positive value");
    }
}
  1. При первом вызове exampleMethod JVM интерпретирует байт-код

  2. Если exampleMethod вызывается многократно с положительными значениями, JIT-компилятор определяет это как "горячую точку"

  3. После достижения порога вызовов этой точки с условием value > 0 компилируется машинный код для метода

  4. Если позже будет вызван метод с отрицательным значением (что не ожидалось), произойдет uncommon trap, и управление передастся интерпретатору для обработки этого случая

☕️ То есть, JVM в рантайме определяет путь, который чаще всего проходит программа, и именно этот путь компилируется нативно и максимально оптимизируется.

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

👨‍💻 Джуниор

Теги:
Всего голосов 12: ↑2 и ↓10-8
Комментарии4

Для точности ваших математических библиотек принимайте «Ульп». «Ульп» — и тесты не страшны!

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

Для этого достаточно договориться о единице измерения. Расстояние между соседними числами обозначается как 1 ульп (ulp — unit in the last place). Относительно него и будем оценивать погрешность вычисления математической функции. Поделим расстояние от результата до эталона на то, что является одним ульпом — то есть на расстояние от эталона до соседнего числа той же точности. Стандарт libm требует, чтобы ошибка не превышала 0,5 ульпа с учетом округления. 

Мы договорились о единицах измерения. Но остался еще один вопрос: с чем же мы сравниваем результаты? Откуда брать эталон в квазибесконечной точности? Здесь помогут системы компьютерной алгебры — прикладные программы для символьных вычислений и числовых операций произвольной точности.

Из таких систем ученые особенно любят Maple или Scilab, инженеры — Mathcad или Matlab, а разработчики — Sollya, поскольку эта библиотека имеет удобный C-интерфейс и ее можно вызывать прямо из тестов libm.

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

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

Читать статью →

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

Система управления проектами для удаленных команд Virex теперь доступна!

Коммуникация, задачи, аналитика, гибкость — всё это про Virex.

Система управления проектами Virex начинается с простоты. Все проекты в одном месте. Все ключевые данные, задачи и прогресс проекта одном экране.

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

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

Встроенные чаты для каждого проекта. Общайтесь со своей командой прямо в Virex.

Заходите в Virex прямо сейчас!

https://app.virex.studio

Теги:
Всего голосов 3: ↑2 и ↓1+2
Комментарии2

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

Один из пользователей сервиса Highload.fun Joad Nacer прогнал все задачи через GPT O1 и получил интересный результат:

Картинка из ТГ Highload.fun
Картинка из ТГ Highload.fun

По 2024 году результат расположился на 20 месте с 3,574 очками, как я понимаю код был на C++. В целом нормально, но я, непрофессиональный кодер на C#, разместился на 23 месте, так что я бы оценил кодерство ИИ на уровне студента 1-го курса непрофильной специальности.

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии3

Не являюсь профессиональным программистом на C#, для меня это хобби и много лет меня интересует вопрос, почему косметически минимально изменённая программа на C# может выполняться на десятки процентов или быстрее или медленнее.

Корифеи мне конечно объясняли что мол приложению нужно "прокачаться" перед запуском и даже научили пользоваться бенчмарком для .NET, но забавность еще и в том, что на одной машине бенч может показывать одни результаты, а на другой - другие. И нет, я не про разницу в железе, а о том, что Метод1 на одной машине стабильно быстрее Метода2 на 10%, а на другом ПК - разница просто отсутствует.

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

Первая. Перестановка переменных местами:

int a = 0;
int b = 0;

и следом вариант

int b = 0;
int a = 0;

производительность меняется.

Вторая. Использование for/while:

for(int i = 0; i < 100; i++);
int i = 0; while(i < 100) i++;

еще с 90-х меня учили что в Си-подобных языках конструкции for/while по сути взаимозаменяемы, но в C# почему-то while в некоторых ситуациях оказывается быстрее.

Третья. Обнаружена пару дней назад:

int time = time * 10 + sec - 2;
sec++;

код выше работает медленнее чем

int time = time * 10 + sec++ - 2;

Из множества объяснений самым правдоподобной во всех случаях мне показалась гипотеза о том, в каких случаях какие значения оказываются в регистрах ЦПУ. Возможно это и так, но объяснение объяснением, а вопросы к компилятору всё равно останутся.

Теги:
Всего голосов 5: ↑3 и ↓2+1
Комментарии16

Раз в год-два мне приходится вспоминать, что Python — не C++.

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

Конкретнее, при переходе от этого запроса:

SELECT * FROM o_relations ORDER BY id DESC LIMIT %(limit)s

к этому:

SELECT CONCAT(entry_id::text, '|', tag_id::text) AS ids FROM o_relations ORDER BY id DESC LIMIT %(limit)s

скорость извлечения данных увеличилась примерно в 4 раза.

Причиной тому тяжёлая конвертация данных из формата С в формат Python внутри Psycopg.

За подробностями можно сходить ко мне в блог: https://tiendil.org/ru/posts/fun-case-of-speeding-up-data-retrieval-with-psycopg

Теги:
Всего голосов 14: ↑4 и ↓10-6
Комментарии4

50 оттенков кеширования: от in memory к многоуровневому redis-кластеру — Леонид Ченский / Ural Digital Weekend 2024

Опубликовали запись доклада секции «Разработка» с Ural Digital Weekend 2024.

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

Сначала Леонид кратко поговорил о проблеме быстрой отдаче сроков доставки. А далее о том, как c каждым годом они адаптировали архитектуру и какие решения для этого использовали.

Итерация 1: in memory cache.

Итерация 2: удаленный шардированный кэш-кластер (redis vs memmcached).

Итерация 3: N-уровневый кэш.

Итерация 4: шардированно-реплицированный multi-DC кэш-кластер Redis.

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

Ссылка на запись доклада в ВКонтакте.

Ссылка на презентацию: https://goo.su/2ik4N

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

В одной из недавних статей узнал про сайт HighLoad.fun, было интересно решить несколько задач и забраться в лидеры. Если кто-то любит highload задачи, то зову принять участие. Общался с автором проекта HL в телеграме - отзывчивый добродушный человек, планируется версия сервера 2.0 с новыми плюшками. Может и выглядит как реклама, но моя заинтересованность чисто спортивная, я решаю такие задачи сколько себя помню, это как кроссворды для меня, а без конкуренции нет желания улучшать результат. В секции C++ конечно соревновательный дух активнее, но я пишу на C# и там результатов не так много.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии5

Как обрабатывать 5 млн изменяющихся форм в минуту с SLI 99.99% — Кирилл Грищук

Опубликовали запись доклада секции «Разработка» с Ural Digital Weekend 2024.

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

Ссылка на запись доклада в ВКонтакте.

Ссылка на презентацию: https://goo.su/qHW9

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии1

Как мы сделали высокоскоростной RPC с помощью RDMA для собственного SDS — доклад на IT-конференции GoCloud Tech 🦾

На конференции GoCloud Tech расскажем, почему выбрали RDMA RoCE v2 — программный блок для потоковой передачи данных. Посмотрим на внутреннее устройство транспорта с позиции разработчика. Покажем, как изменилась производительность RPC между сервисами SDS. Обсудим недостатки и перспективы решения.

Приходите послушать доклад и обсудить тему в неформальной обстановке.

🕚 Когда: 24 октября с 17:40 до 18:05

📍 Где: онлайн и офлайн в Москве в лофт-пространстве Goelro

👉 Зарегистрироваться на GoCloud Tech

Полезное в блоге:

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Вклад авторов