Ограничения скорости доступа к сервисам CREST
До Фебы мы могли замерять время кэширования CREST лишь в секундах - этот процесс был реализован с помощью декоратора на языке Python. Это означало, все обращения к этому ресурсу получали результаты, полученные в одно и то же время кэширования. К примеру, если мы пытаемся закэшировать что-нибудь навроде рыночной истории, мы устанавливаем размер кэша на 1 час (В смысле, в кэш пишется история всего лишь одного часа рыночной истории в день - Прим. переводчика). К сожалению, в таком случае рыночная история не изменяется в течение дня - это происходит только в полночь по UTC.
Поэтому постоянно получается так, что при обращении к ресурсу в течение дня мы получаем одни и те же результаты - так как кэшевый 1 час истек. Если, допустим, какое-либо действие было совершено не в полночь, а, скажем, где-то в 2 часа ночи - то точка отсчета нового подобного события сдвинется на 2 часа в следующие сутки. Что не есть хорошо.
Поэтому в основу CREST мы вложили возможность разработчикам передавать функции в декоратор кэша, и, если было обращение к ресурсу, то мы можем высчитать время до его кэширования. Возвращаясь к примеру рыночной истории: допустим, мы вызываем функцию ВычислятьВСекундахДоПолночи, и вне зависимости от того, когда было обращение к ресурсу, он будет кэшироваться до Полуночи.
Эти изменения в CREST были запущены в Фебе, и их результатом стала существенная разница в количестве кэш-попаданий - что для разработчика есть хорошо. И - так как я знаю, как вы любите всякие графики - вот вам граф кэш-попаданий для всех HTTP200 запросов к CREST:
P.S. Эту простую картинку делали ну явно не 30-40 минут и явно не 3 человека, изучающие язык R. Честно-честно.
Спасибо Sarah Cor и хомосапиенс за помощь в переводе.
Спасибо Denadan за приказ о расстреле.
Сообщение отредактировал esselesse: 13 March 2015 - 0:24
красный цвет. рассстрелять!