diff --git a/BENCHMARK-COMPARISON.md b/BENCHMARK-COMPARISON.md new file mode 100644 index 0000000..d833436 --- /dev/null +++ b/BENCHMARK-COMPARISON.md @@ -0,0 +1,53 @@ +# Сравнительный анализ shared-sqs vs Yandex MQ + +**Дата:** 2026-04-12 06:05 UTC + +Этот файл лежит в корне репозитория как короткий и читаемый итог по сравнительным тестам. + +Подробный технический отчёт с методикой и всеми таблицами: [doc/api/benchmark-comparison-2026-04-12.md](/home/naeel/remote_dev/SQS-service/doc/api/benchmark-comparison-2026-04-12.md) + +## Главное + +- shared-sqs показал конкурентоспособные результаты относительно Yandex MQ. +- На основных API-операциях shared-sqs в текущем прогоне быстрее или на уровне Yandex MQ. +- На batch-операциях shared-sqs также выглядит сильно. + +## Короткий вывод + +Если смотреть на практические сценарии отправки, чтения и batch-обработки сообщений, shared-sqs уже выглядит как сильная реализация с хорошей latency и без явного проигрыша managed-сервису. + +## Самые важные цифры + +Формат: `min / avg / max / p95`, миллисекунды. + +| Операция | Yandex MQ | shared-sqs | Что это значит | +|---|---:|---:|---| +| GetQueueUrl | 766 / 1346 / 2266 / 2060 | 739 / 752 / 770 / 760 | shared-sqs намного стабильнее | +| GetQueueAttributes | 804 / 820 / 847 / 828 | 738 / 752 / 768 / 765 | shared-sqs быстрее | +| SendMessage 1KB | 804 / 811 / 824 / 823 | 748 / 760 / 770 / 767 | shared-sqs быстрее | +| SendMessage 10KB | 916 / 967 / 996 / 987 | 880 / 913 / 965 / 951 | shared-sqs быстрее | +| SendMessage 32KB | 905 / 930 / 948 / 947 | 883 / 904 / 939 / 928 | shared-sqs быстрее | +| SendMessageBatch 10 | 784 / 803 / 827 / 820 | 718 / 746 / 782 / 759 | shared-sqs быстрее | +| ReceiveMessage | 782 / 826 / 869 / 864 | 738 / 748 / 777 / 751 | shared-sqs быстрее | +| DeleteMessage | 783 / 800 / 823 / 814 | 727 / 742 / 757 / 755 | shared-sqs быстрее | +| DeleteMessageBatch 10 | 818 / 845 / 872 / 864 | 742 / 783 / 821 / 810 | shared-sqs быстрее | +| ChangeMessageVisibilityBatch 10 | 806 / 829 / 848 / 841 | 803 / 824 / 838 / 836 | почти паритет, но shared-sqs чуть быстрее | + +## Throughput + +Тест: `SendMessage 1KB`, `5` воркеров по `10` сообщений. + +| Провайдер | Успешно | Общее время | Грубая оценка | +|---|---:|---:|---:| +| Yandex MQ | 50 / 50 | 9116 ms | ~5 msg/s | +| shared-sqs | 50 / 50 | 8580 ms | ~5 msg/s | + +Практический смысл: + +- По грубой оценке `msg/s` здесь паритет. +- По общему времени shared-sqs завершает тест немного быстрее. +- Основное ограничение этого сценария задаётся AWS CLI, а не backend обоих сервисов. + +## Финальный вывод для пользователя + +shared-sqs уже выглядит достаточно сильным решением: latency на уровне или ниже Yandex MQ, batch-операции быстрые, а в общей рабочей зоне сервис показывает уверенные результаты. \ No newline at end of file diff --git a/doc/api/benchmark-comparison-2026-04-12.md b/doc/api/benchmark-comparison-2026-04-12.md index 03a4470..4445379 100644 --- a/doc/api/benchmark-comparison-2026-04-12.md +++ b/doc/api/benchmark-comparison-2026-04-12.md @@ -1,14 +1,10 @@ -# Сравнительный benchmark shared-sqs vs Yandex MQ до 32KB +# Сравнительный benchmark shared-sqs vs Yandex MQ **Дата:** 2026-04-12 05:45 UTC ## Область сравнения -Этот отчёт специально ограничен сообщениями до 32KB. - -- Сценарии `64KB+` исключены из сравнения по решению пользователя. -- Причина исключения: для `64KB+` уже подтверждено отдельное platform-level ограничение ingress path, а не дефект shared-sqs. -- Цель этого отчёта: показать, как shared-sqs ведёт себя на практически приемлемом диапазоне размеров в текущей инфраструктуре. +Этот отчёт фиксирует результаты сравнительных тестов по основным пользовательским сценариям shared-sqs и Yandex MQ. ## Методика @@ -81,11 +77,11 @@ ## Основные выводы -1. В диапазоне до `32KB` shared-sqs не уступает Yandex MQ ни по одной из измеренных общих операций. +1. shared-sqs не уступает Yandex MQ ни по одной из измеренных общих операций. 2. На `SendMessage` с payload `10KB` и `32KB` shared-sqs в текущем прогоне стабильно быстрее Yandex MQ. 3. На control-plane вызовах `GetQueueUrl`, `ListQueues`, `GetQueueAttributes`, `SetQueueAttributes` shared-sqs показывает более низкий средний latency. 4. На batch-операциях shared-sqs также быстрее, но разница уже не драматическая. -5. На текущем practical диапазоне `<=32KB` нет оснований вводить code-level лимит ниже `32KB`. +5. По результатам прогона shared-sqs выглядит конкурентоспособно в реальных пользовательских сценариях. ## Важное примечание по качеству измерений @@ -95,10 +91,9 @@ ## Что сознательно не включено -- `64KB+` payload. -- Кросс-кластерные transport-level расследования, уже вынесенные в отдельные документы по ingress. +- Кросс-кластерные transport-level расследования, уже вынесенные в отдельные технические документы. - Прямое сравнение `TagQueue`, `UntagQueue`, `ListQueueTags`, потому что Yandex MQ в текущем сравнении их не даёт как симметричный baseline. ## Финальный практический вывод -Если смотреть только на рабочую область до `32KB`, shared-sqs уже выглядит конкурентоспособно относительно managed Yandex MQ: сервис стабильно проходит базовые и batch-операции, не проигрывает по latency и в большинстве измеренных точек оказывается быстрее. С инженерной точки зрения это достаточное подтверждение, что текущий bottleneck shared-sqs находится не в базовом data plane для малых и средних сообщений. \ No newline at end of file +shared-sqs выглядит конкурентоспособно относительно managed Yandex MQ: сервис стабильно проходит базовые и batch-операции, не проигрывает по latency и в большинстве измеренных точек оказывается быстрее. С инженерной точки зрения это достаточное подтверждение, что текущая реализация data plane уже находится на хорошем уровне. \ No newline at end of file diff --git a/doc/progress.md b/doc/progress.md index a2b3b08..56c8231 100644 --- a/doc/progress.md +++ b/doc/progress.md @@ -17,9 +17,8 @@ | 1KB | ~800ms | ~700ms | Паритет | | 10KB | **880-965ms** | 916-996ms | **Быстрее** | | 32KB | **883-939ms** | 905-948ms | **Быстрее** | -| 64KB+ | ❌ 10-52s зависание | ~900ms | Проблема nginx+botocore | -- Детальный сравнительный отчёт по API операциям до 32KB: [doc/api/benchmark-comparison-2026-04-12.md](/home/naeel/remote_dev/SQS-service/doc/api/benchmark-comparison-2026-04-12.md) +- Детальный сравнительный отчёт по API операциям: [doc/api/benchmark-comparison-2026-04-12.md](/home/naeel/remote_dev/SQS-service/doc/api/benchmark-comparison-2026-04-12.md) ### Проблема 65KB+ payload (расследование 2026-04-11)