Details
| Title | Потоковая обработка данных, обеспечивающая баланс между латентностью записи и скоростью аналитики: выпускная квалификационная работа магистра: направление 09.04.04 «Программная инженерия» ; образовательная программа 09.04.04_01 «Технология разработки и сопровождения качественного программного продукта» = Stream data processing providing a balance between write latency and analytics speed |
|---|---|
| Creators | Котельников Тимофей Андреевич |
| Scientific adviser | Селин Иван Андреевич |
| Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Imprint | Санкт-Петербург, 2026 |
| Collection | Выпускные квалификационные работы ; Общая коллекция |
| Subjects | потоковая обработка данных ; асинхронная архитектура ; распределённый брокер сообщений ; Apache Kafka ; колоночная СУБД ; ClickHouse ; нагрузочное тестирование ; сквозная задержка ; система поддержки принятия решений ; .NET ; stream data processing ; asynchronous architecture ; distributed message broker ; columnar DBMS ; load testing ; end-to-end latency ; decision support system |
| Document type | Master graduation qualification work |
| Language | Russian |
| Level of education | Master |
| Speciality code (FGOS) | 09.04.04 |
| Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
| DOI | 10.18720/SPBPU/3/2026/vr/vr26-4894 |
| Rights | Доступ по паролю из сети Интернет (чтение) |
| Additionally | New arrival |
| Record key | ru\spstu\vkr\45067 |
| Record create date | 9/4/2026 |
Allowed Actions
–
Action 'Read' will be available if administrator prepare required files
| Group | Anonymous |
|---|---|
| Network | Internet |
Предметом исследования являются архитектурные характеристики программных конвейеров приёма и аналитической обработки потоковых событий в условиях смешанной нагрузки записи и аналитического чтения. Цель работы — разработка программного обеспечения, обеспечивающего баланс между латентностью записи и скоростью аналитических запросов на одних и тех же данных. Методология исследования включает сравнительный анализ существующих архитектурных подходов (очередь задач, потоковая обработка с буферизацией в оперативной памяти, шаблон CQRS совместно с событийным хранилищем), формализованное обоснование выбора языка программирования с применением системы поддержки принятия решений (СППР) на основе бинарных отношений предпочтений, проектирование и программную реализацию предлагаемой асинхронной потоковой архитектуры, а также экспериментальное нагрузочное тестирование четырёх архитектурных решений по единой методике в идентичных условиях. В результате работы спроектирована и реализована асинхронная потоковая архитектура с явным разделением приёма, передачи, обработки и хранения событий на основе распределённого брокера сообщений Apache Kafka 3.7 (KRaft) и колоночной СУБД ClickHouse 24.8 на движке MergeTree с пакетной вставкой 1 000 событий или 200 миллисекунд. Программная реализация выполнена на платформе Microsoft .NET 8 в виде двух исполняемых сервисов и общей библиотеки общим объёмом 1 053 строки прикладного кода с покрытием тестами на четырёх уровнях (всего 191 автоматический тест). Подготовлены варианты развёртывания на Docker Compose и Kubernetes (Helm). Разработана инфраструктура нагрузочного тестирования на базе Apache JMeter, Prometheus, Grafana и InfluxDB. Экспериментально установлено, что предлагаемое решение достигает целевой пропускной способности 5 000 запросов в секунду при сквозной задержке конвейера p95 менее 1 миллисекунды и задержке аналитических запросов p95 порядка 5–7 миллисекунд без признаков деградации, превосходя альтернативные архитектурные решения по совокупности ключевых метрик. Научная новизна работы состоит в применении методики измерения сквозной задержки на стороне аналитического хранилища, не подверженной погрешностям рассинхронизации часов между распределёнными узлами, а также в формализованном обосновании выбора технологического стека на основе СППР. Область применения результатов — проектирование и реализация производственных систем продуктовой аналитики, наблюдаемости распределённых программных приложений, мониторинга бизнес-показателей в режиме реального времени, анализа поведения пользователей. Выводы. Цель работы достигнута. Разработанное программное обеспечение полностью удовлетворяет сформулированным функциональным и нефункциональным требованиям. Сформулированы количественно обоснованные рекомендации по выбору архитектурного шаблона для систем потоковой обработки событий в зависимости от уровня нагрузки и требований к актуальности аналитических представлений.
The subject of the study is the architectural characteristics of software pipelines for ingesting and analytically processing streaming events under mixed write and analytical read workloads. The aim of the work is to develop software providing a balance between write latency and analytical query response time on the same data. The research methodology includes a comparative analysis of existing architectural approaches (task queue, stream processing with in-memory buffering, the CQRS pattern combined with event sourcing); a formalised justification of the programming language selection by means of a decision support system (DSS) based on binary preference relations; the design and software implementation of the proposed asynchronous streaming architecture; and an experimental load testing of four architectural solutions performed under identical conditions according to a unified methodology. As a result, an asynchronous streaming architecture has been designed and implemented with explicit separation of event ingestion, transport, processing, and storage, based on the Apache Kafka 3.7 distributed message broker (KRaft mode) and the ClickHouse 24.8 columnar DBMS with the MergeTree table engine and batch insertion of 1,000 events or 200 milliseconds. The software is implemented on the Microsoft .NET 8 platform as two executable services and a shared library, totalling 1,053 lines of application code, covered by tests at four levels (191 automated tests in total). Deployment options for Docker Compose and Kubernetes (Helm) have been prepared. A load testing infrastructure based on Apache JMeter, Prometheus, Grafana, and InfluxDB has been developed. It has been experimentally established that the proposed solution reaches the target throughput of 5,000 requests per second with an end-to-end pipeline latency of less than 1 millisecond at the 95th percentile and an analytical query latency of approximately 5–7 milliseconds at the 95th percentile, with no signs of degradation, outperforming the alternative architectural solutions across all key metrics. The scientific novelty of the work consists in applying an end-to-end latency measurement methodology on the analytical storage side, which is not affected by clock-skew errors between distributed nodes, and in a formalised justification of the technology stack selection based on a DSS. The area of application of the results is the design and implementation of production-grade systems for product analytics, observability of distributed software applications, real-time business-metric monitoring, and user-behaviour analysis. Conclusions. The aim of the work has been achieved. The developed software fully satisfies the formulated functional and non-functional requirements. Quantitatively justified recommendations for selecting an architectural pattern for streaming event processing systems are provided depending on the load level and the requirements for the freshness of analytical views.
| Network | User group | Action |
|---|---|---|
| ILC SPbPU Local Network | All |
|
| Internet | Authorized users SPbPU |
|
| Internet | Anonymous |
|