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

Высокая производительность *

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

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

Спецификация уникальных идентификаторов UUIDv7 для ключей баз данных и распределенных систем по новому стандарту RFC9562

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

Долгожданный стандарт RFC9562 "Universally Unique IDentifiers (UUID)" с тремя новыми версиями идентификаторов UUID (6, 7 и 8) вместо малопригодного RFC4122 наконец-то вступил в силу. Я участвовал в разработке нового стандарта. Обзор стандарта можно посмотреть в статье.

Введенные новым стандартом идентификаторы седьмой версии UUIDv7 — это лучшее, что теперь есть для ключей баз данных и распределенных систем. Они обеспечивают такую же производительность, как и bigint. UUIDv7 уже реализованы в том или ином виде в основных языках программирования и в некоторых СУБД.

Сгенерированные UUIDv7 имеют все преимущества UUID и при этом упорядочены по дате и времени создания. Это ускоряет поиск индексов и записей в БД по ключу в формате UUID, значительно упрощает и ускоряет базы данных и распределенные системы. Неупорядоченность значений UUID прежде сдерживала использование UUID в качестве ключей и вынуждала разработчиков выдумывать собственные форматы идентификаторов или довольствоваться последовательными целыми числами в качестве ключей.

Черновик стандарта активно обсуждался на Хабре в апреле 2022 года в комментариях к статье "Встречайте UUID нового поколения для ключей высоконагруженных систем".

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

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

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

Новости

Шардирование баз данных и проектирование систем

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

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

Такой подход позволяет избежать проблем с производительностью, возникающих, когда одна из машин работает в условиях перегрузки, и обеспечивает более экономичное и грамотное масштабирование. По мере увеличения объема данных и трафика все чаще возникает необходимость горизонтального масштабирования путем добавления новых машин, а не вертикального путем модернизации одного большого сервера.
Читать дальше →
Всего голосов 9: ↑10 и ↓-1+11
Комментарии0

Аттракцион невиданной щедрости: суперкомпьютер Cheyenne продали за 2% от изначальной цены

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

На онлайн-аукционах можно купить всякое — от гаджетов до целых зданий и сооружений. Кроме того, есть и возможность приобрести суперкомпьютер, причём по дешёвке. На днях стало известно о том, что Cheyenne был продан всего за $480 085 долларов. Вместе с победителем за этот лот соревновались ещё 27 участников онлайн-торгов. Для такой системы полмиллиона долларов — сущие копейки. Что произошло? Подробности — под катом.

Читать далее
Всего голосов 7: ↑9 и ↓-2+11
Комментарии4

Невероятно, но факт: умножение матриц на GPU идёт быстрее на «предсказуемых» данных

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

Шёл 2022 год. Я обратил внимание на новый интересный проект CUTLASS, отличающийся очень высокой скоростью выполнения операций умножения матриц. Я взял большую задачу по умножению матриц — 8192 x 8192 x 8192, и померял производительность в PyTorch, где используется библиотека cuBLAS.

Читать далее
Всего голосов 32: ↑40 и ↓-8+48
Комментарии13

Истории

Мощные GPU в Китае: полное самообеспечение к 2027 году. Реально ли?

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

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

Особенное внимание уделяется процессорам GPU, на производство и продажу которых негативное влияние оказал экспортный контроль со стороны США. Кроме того, Китай продолжает продвигать инициативы в области искусственного интеллекта. Субсидии будут выделяться компаниям, которые готовы покупать графические процессоры у отечественных производителей. И не стоит забывать о нескольких триллионах долларов, которые выделяются в течение последних лет самим производителям. Подробности — под катом.

Читать далее
Всего голосов 16: ↑13 и ↓3+10
Комментарии2

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

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

Привет, Хабр! Мы делаем софт для ресторанов. Это немного сложнее и намного интереснее, чем может показаться. В этом блоге мы будем рассказывать про разные интересные задачи, которые нам приходится решать. Сегодня - про то, как мы организовали работу высоконагруженного сервиса, причем в условиях, когда нагрузка может резко возрастать в 10 раз. И не по цене крыла от Боинга при этом.

А вот как
Всего голосов 8: ↑9 и ↓-1+10
Комментарии5

Преодолевая недовольство: изучение степени удовлетворенности работы в компании с помощью матрицы оценки

Время на прочтение3 мин
Количество просмотров787

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

Сомнения в своих способностях и страх перед неизвестностью - это естественные эмоции, которые могут возникать при принятии такого серьезного решения.

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

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

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

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

Читать далее
Всего голосов 3: ↑4 и ↓-1+5
Комментарии5

Как Яндекс создал свою шину данных, чтобы передавать сотни гигабайт в секунду

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

10 лет назад сотни серверов Яндекса работали на Apache Kafka®, но в этом продукте нам нравилось далеко не всё. Наши задачи требовали единой шины для передачи всех видов данных: от биллинговых до журналов приложений. Сегодня объёмы достигли уже десятков тысяч именованных наборов сообщений.

При таком количестве данных в Apache Kafka® становилось сложно управлять правами доступа, организовывать распределённую работу нескольких команд и многое другое. Проблемы роста и отсутствие подходящего решения в открытом доступе привели к тому, что мы разработали своё решение YDB Topics и выложили его в опенсорс в составе платформы данных YDB. В этом посте расскажу о предпосылках создания продукта, нашей архитектуре передачи данных, возникающих задачах и возможностях, которые появились вместе с YDB Topics.

Читать далее
Всего голосов 51: ↑59.5 и ↓-8.5+68
Комментарии24

Как Uber обслуживает более 40 миллионов чтений в секунду из онлайн-хранилища с помощью встроенного кэша

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

Привет, Хабр! Представляю вам перевод статьи "How Uber Serves Over 40 Million Reads Per Second from Online Storage Using an Integrated Cache" автора Preetham Narayanareddy. Из неё вы узнаете, как в Uber проектировалась система кэширования на основе Redis, с какими сложностями и тонкостями пришлось столкнуться разработчикам, и как в итоге им удалось создать действительно высокопроизводительное решение.

Читать далее
Всего голосов 6: ↑7 и ↓-1+8
Комментарии6

Получение данных для сайта из 1С: Предприятие (на примере статусов заказов Управление Торговлей 11.5)

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

Постановка задачи: получать данные о заказах из базы данных 1С: Предприятие в формате JSON для отображения на сайте. Запросы должны обрабатываться максимально быстро, по возможности, не мешать работе локальных пользователей.

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

Читать далее
Всего голосов 2: ↑3 и ↓-1+4
Комментарии7

Создаём надёжные API для бэкенда при помощи конечных автоматов: подробное руководство

Время на прочтение7 мин
Количество просмотров8.1K
Я — бэкенд-разработчик, поэтому мне довелось по достоинству оценить, насколько важны конечные автоматы при построении надёжных систем, которые хорошо масштабируются. Конечные автоматы отлично подходят для моделирования сложной бизнес-логики и автоматизации переходов между состояниями. В этом посте будет разобрано, что представляют собой конечные автоматы, в чём их польза для бэкенд-разработки, и как с их помощью решать распространённые задачи.

Что такое конечные автоматы?


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

Конечные автоматы часто используются в разработке программ для моделирования сложных потоков задач. С помощью конечных автоматов можно чётко и структурированно определить поведение системы. Тогда о системе становится проще рассуждать, её удобнее отлаживать и поддерживать.
Читать дальше →
Всего голосов 8: ↑9 и ↓-1+10
Комментарии18

Разбираемся с динамической памятью (кучей) в приложениях Java

Время на прочтение8 мин
Количество просмотров4.7K
Начнём с простого вопроса. В самом ли деле каждый Java-разработчик понимает, как в Java работает память? Одна из обязанностей любого Java-разработчика — гарантировать, что в результате тонкой настройки приложения на Java из него получится выжать такую производительность, какую только возможно. Требуется время, чтобы научиться управлять памятью в Java и понять этот процесс, это касается всех, кто имеет дело с Java. В этой статье попробую объяснить, как овладеть этими умениями.
Читать дальше →
Всего голосов 11: ↑13.5 и ↓-2.5+16
Комментарии6

Память DDR5 стоит как никогда дешево. Но как она влияет на игры?

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

Что общего у DDR5 и меда из песенки Винни-Пуха? Откровенно говоря, ничего, кроме двойственной природы. Они вроде есть, но в то же время их нет. Мед - потому что его все время норовят съесть, а DDR5 - потому что все делают вид, будто этого стандарта не существует и продолжают упорно использовать DDR4. Будем честны: не самое плохое решение. Все-таки стандарт оперативки предыдущего поколения по-прежнему неплохо себя показывает даже в сборке с новыми процессорами. Но ведь DDR5-то от этого хуже не становится.

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

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

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Matomo v4. Как выжать 7к+ rps? Строим высокопроизводительный кластер

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

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

Читать далее
Всего голосов 2: ↑3 и ↓-1+4
Комментарии1

Бойлерплейт как инструмент стандартизации Go-проектов

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

Трудности в процессе разработки на Go — частая история. Чтобы их преодолеть, нам даже пришлось писать собственный бойлерплейт. Хотя казалось бы — всё уже есть, но нет, нам понадобилось имплементировать собственную хардкорную штуку. Расскажем, почему и зачем.

Читать далее
Всего голосов 9: ↑7.5 и ↓1.5+6
Комментарии3

Как качественно управлять своим временем (notion шаблон)

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

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

Читать далее
Всего голосов 6: ↑7.5 и ↓-1.5+9
Комментарии16

Эффективное использование журнала регистрации и технологического журнала 1С в решении вопросов производительности

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

Эта статья носит своей целью продемонстрировать другой подход в анализе проблем производительности в системах 1С:Предприятие с применением журнала регистрации (ЖР) и технологического журнала (ТЖ).

Напомню, что ЖР логирует действия пользователей — кто, когда в каком объекте внес изменения, с какого компьютера, каким сеансом и т. п. ТЖ — это средство для логирования уже самой платформы. Для расследования проблем производительности информация из журналов очень полезна, но основное время уходит на её поиск, сопоставление с другими метриками и счетчиками мониторинга.

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

Вот! В этом как раз вся «соль» идеи.

Читать далее
Всего голосов 6: ↑7.5 и ↓-1.5+9
Комментарии2

В Китае свободно продаётся улучшенная версия ИИ-ускорителя Nvidia A100. Что это за модель?

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

Ampere A100 от Nvidia — самый мощный ИИ-ускоритель до момента появления Hopper H100, не говоря уже о H200 и грядущем Blackwell GB200. Но, как оказалось, есть более продвинутая версия A100, она улучшена по сравнению с обычной моделью. Ускоритель свободно продаётся в Китае, несмотря на санкции со стороны США. Возможно, Nvidia экспериментировала с ускорителем, либо же его модифицировали специально для Китая. Подробности — под катом.

Читать далее
Всего голосов 12: ↑13.5 и ↓-1.5+15
Комментарии3

Альфа — это не только планета жестоких эльфов из фильма Кин-Дза-Дза, но еще и компьютерная архитектура

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

Году в 1993 мой приятель микрософтовец Лев Белов при встрече с безумными глазами произнес «Ты понимаешь, что это все! Window NT спортировали на Альфу! Все, архитектура x86 с Интелом закончилась!»

И вот архитектура DEC Alpha вновь возникла в моем дискусе в диалогах на линкдине пару дней назад. Инженер по имени Александр Кушнеров высказал утверждение, что на Альфе не получилось или было принцииально невозможно достичь низкого энергопотребления.

Тезис про «принципиально невозможно» мне кажется сомнительным. Поэтому я высказал вот какие соображения:

Читать далее
Всего голосов 19: ↑16 и ↓3+13
Комментарии15

Шифрование в Kubernetes: основы

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

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

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

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