Несколько дней назад я поймал себя на том, что задаю простой вопрос.
Почему некоторые узлы валидаторов замедляются, даже когда их оборудование выглядит полностью способным справляться с нагрузкой?
Сначала я предположил, что ответ — это сетевая перегрузка или задержки хранения.
Чем глубже я вникал, тем более неожиданным становилось объяснение.
Современное программное обеспечение для валидаторов распределяет входящую работу по нескольким ядрам CPU. Проверка подписи, выполнение транзакций, проверки полномочий, сетевые события и операции с базой данных выполняются параллельно. На бумаге это звучит как идеальная архитектура для масштабирования производительности.
Но параллельные вычисления привносят и свои скрытые издержки.
Когда несколько потоков воркеров многократно обращаются к одним и тем же общим данным политики и изменяют их, процессоры постоянно обмениваются правом владения кэшем между ядрами CPU. Инженеры называют такое поведение «пинг-понгом кэша».
Вместо выполнения полезной работы процессоры тратят ценные циклы на синхронизацию внутренних состояний кэша.
Ничего технически не сломано.
Процессоры продолжают оставаться активными.
Программное обеспечение продолжает работать.
Однако в целом пропускная способность незаметно падает, потому что накладные расходы на координацию начинают заменять продуктивные вычисления.
Такой тип узкого места редко появляется в маркетинге блокчейна.
Большинство обсуждений сосредоточено на скорости транзакций, пропускной способности или производстве блоков.
Очень немногие изучают, что на самом деле происходит внутри программного обеспечения валидатора, когда тысячи запросов начинают конкурировать за одни и те же ресурсы оборудования.
Одна из причин, почему я заинтересовался @NewtonProtocol, — это именно такой взгляд.
Программируемая авторизация вводит сложную оценку политик перед выполнением. Поскольку автоматизация становится все более распространенной, программному обеспечению валидатора не потребуются просто более быстрые процессоры.
Ему потребуется более умное планирование.
Эффективное распределение нагрузки.
Снижение конкуренции за кэш.
Более качественная координация между параллельными ветвями выполнения.
В конечном итоге эти оптимизации могут внести больший вклад в долгосрочную масштабируемость, чем просто добавление дополнительного оборудования.
Производительность блокчейна никогда не определялась одной-единственной метрикой.
Пропускная способность сети имеет значение.
Хранилище имеет значение.
Криптография имеет значение.
Но архитектура ПО часто определяет, насколько эффективно используются все эти ресурсы.
Возможно, следующее поколение инфраструктуры будет определяться не самыми быстрыми машинами.
Это может определяться системами, которые тратят наименьшее количество вычислений при работе со все более сложными нагрузками.
@NewtonProtocol $NEWT $US $TAC #Newt #SKHynixADRBiggestForeignCorporateFundraising #USNaturalGasFallsOver6% #CorningJumpsOver8% #SpaceXAddedToValueIndexes
