Как сервер Jetbrains YouTrack масштабируется при нагрузке? - PullRequest
0 голосов
/ 02 августа 2020

Если Youtrack использует Xodus в качестве базовой базы данных, то как YouTrack может обеспечить масштабируемость?

  1. Система блокировки записи Xodus предотвращает масштабируемость приложения, созданного с помощью базы данных (см.: Снять блокировку среды на каждое завершение транзакции и https://youtrack.jetbrains.com/issue/XD-807)

В типичной серверной среде Java, когда сервер сталкивается с большей нагрузкой, он порождает новые процессы того же приложения (обычно); именно здесь Xodus ломается, поскольку его механизм блокировки всегда привязан к первому процессу, который использовал или получил доступ к среде.

Итак, как YouTrack в целом может обойти это ограничение и иметь возможность работать в качестве производственной сети приложение?

1 Ответ

0 голосов
/ 05 сентября 2020

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

Горизонтально масштабируемые приложения могут показаться более типичными в наши дни, поскольку их, как правило, проще реализовать. Любая критическая проблема с вашим кодом, например состояние гонки, скорее всего, приведет к отказу только одного узла. Таким образом, этот подход немного более снисходителен к ошибкам программирования, которые все мы время от времени совершаем.

Система блокировки записи Xodus предотвращает масштабируемость приложения, созданного с помощью базы данных должно быть ясно, что архитектура Xodus запрещает только горизонтально масштабируемые решения. В свою очередь, вертикально масштабируемые приложения прекрасно с этим справляются. Это также отвечает на ваш вопрос о YouTrack. Он масштабируется вертикально и неплохо с этим справляется.

...