Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
goldvoice
6 лет назад

Технический пост: состояние гонки

Пару дней назад (во время новогодних каникул) случилось падение баз данных. "Неожиданно" на дублирующих серверах закончилось место. Главный сервер с БД не пострадал, так как был заранее расширен под подобную ситуацию, но возросшая нагрузка на него привела к незапланированному ребуту.

ГолдВойс "встал" в обоих ситуациях. Он застрял в состоянии гонки и поднялся одновременно.

Это стандартная ситуация с проблемами масштабирования высоко-нагруженных проектов. Стандартные базы данных не выдерживают нагрузки по записи, выборкам и прочим прелестям. Точнее "выдерживают", но с парой деталей. Проект выдержит теоретически рост нагрузки раз в 10-100. Но не в рамках блокчейн-цепи.

В блокчейн цепях существует проблема одно-поточности обработки блоков. Она предварительно решена содержанием всей базы данных (блоков и структур данных) — в специализированных решениях, которые хранят все это добро в оперативной памяти. Стандартные базы данных, работающие на файлах и использующие разные прослойки с подтверждением транзакций проигрывают по скорости работы с данными. Что с нами и случилось.

Блоки приходят каждые 3 секунды. А обработка блока занимает 3.3-3.9 секунды. Не будем же ругать рост количества транзакций в блоках, рост активности в блокчейне. Проблема в архитектуре и она была очевидна с самого начала.

Поэтому несколько ночей подряд мы решали проблему с состоянием гонки. Блоки догнали, вынесли часть действий в очередь обработки (об этом будет другой пост), проблема и решена, и осталась одновременно с этим.

Решена она увеличением серверных мощностей, вынесением очереди медленных не приоритетных действий (в redis) и изменение части архитектурных решений.

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

ГолдВойс какое-то время поштормит, но в итоге — все будет отлично :)

3
128.269 GOLOS
На Golos с July 2017
Комментарии (7)
Сортировать по:
Сначала старые