Сетевой рендеринг на гибридном кластере

Основные типы рендеринга:

В глобальном плане, есть два основных типа рендеринга, главными отличиями которых является скорость, с которой просчитывается и финализируется изображение, а также качество картинки.

Scanline (сканлайн).

Сканлайн рендер — выбор тех, кто приоритет отдаст скорости, а не качеству. Именно за счет своей скорости, данный тип рендера зачастую используется в видеоиграх и интерактивных сценах, а также во вьюпортах различных 3D пакетов. При наличие современного видеоадаптера, данный тип рендера может выдавать стабильную и плавную картинку в реальном времени с частотой от 30 кадров в секунду и выше.

Raytrace (рейтрейс).

Этот тип рендера создан для тех, кто хочет получить картинку с максимально качественной и детализированной прорисовкой. Рендеринг именно этого типа, имеет очень большую популярность у любителей фотореализма, и стоит отметить что не спроста. Довольно часто с помощью рейтрейс-рендеринга мы можем увидеть потрясающе реалистичные кадры природы и архитектуры, которые отличить от фотографии удастся не каждому, к тому же, нередко именно рейтрейс метод используют в работе над графиков в CG трейлерах или кино.

К сожалению, в угоду качеству, данный алгоритм рендеринга является очень медлительным и пока что не может использоваться в риал-тайм графике.

Методы визуализации.

Большинство рендер движков использует три основных метода вычисления. Каждый из них имеет как свои преимущества, так и недостатки, но все три метода имеют право на своё применение в определенных ситуациях.

Построение изображения.

Как уже говорилось ранее, рендеринг — это один из самых сложных технических этапов, ведь во время рендеринга идут сложные математические вычисления, выполняемые движком рендера. На этом этапе, движок переводит математические данные о сцене в финальное 2D-изображение. Во время процесса идет преобразование 3d-геометрии, текстур и световых данных сцены в объединенную информацию о цветовом значение каждого пикселя в 2D изображение.

Предлагаем ознакомиться  Мобильный хот-спот что это в Windows 10

Проблема инвалидации кэша

«В компьютерной науке есть только две сложные вещи: инвалидация кэша и именование сущностей».
Фил Карлтон

Инвалидация кэша — это, и правда, очень сложная задача. Как её решить? Во-первых, можно часто обновлять кэш, задавая очень короткое время хранения кэшированных объектов (TTL, Time To Live, время жизни). Это иногда будет приводить к тому, что страницы будут загружаться медленнее, чем обычно. Во-вторых, можно создать механизм инвалидации кэша, основанный на неких событиях.

В нашем случае данная проблема была решена с использованием очень маленького показателя TTL, равного 30 секундам. Но мы, кроме того, реализовали возможность предоставления клиентам устаревших данных из кэша. В то время, когда клиенты получают подобные данные, обновление кэша ведётся в фоновом режиме. Благодаря этому мы избавились от проблем, вроде задержек и «холодного старта», которые свойственны для функций AWS Lambda.

Вот как это работает. Пользователь посещает сайт Webiny. Мы проверяем HTML-кэш. Если там имеется снимок страницы — мы отдаём его пользователю. Возраст снимка может быть равен даже нескольким дням. Мы же, передавая пользователю этот старый снимок за несколько сотен миллисекунд, параллельно запускаем задачу по созданию нового снимка и по обновлению кэша.

На выполнение этой задачи обычно уходит несколько секунд, так как мы создали механизм, благодаря которому у нас всегда есть некоторое количество заранее запущенных, готовых к работе функций AWS Lambda. Поэтому нам не приходится, во время создания новых снимков, тратить время на холодный запуск функций.

В результате мы всегда возвращаем клиентам страницы из кэша, а когда возраст кэшированных данных достигает 30 секунд — содержимое кэша обновляется.

Кэширование — это, определённо, та область, в которой мы ещё можем кое-что улучшить. Например, мы рассматриваем возможность автоматического обновления кэша в том случае, когда пользователь публикует страницу. Однако такой механизм обновления кэша тоже не идеален.

Предлагаем ознакомиться  HDMI, DisplayPort, VGA, DVA: что выбрать для подключения монитора или телевизора

Например, предположим, что на домашней странице ресурса выводится три самых свежих публикации из блога. Если кэш обновляется при публикации новой страницы, то, с технической точки зрения, после публикации будет сформирован лишь кэш для этой новой страницы. Кэш для домашней страницы при этом окажется устаревшим.

Мы всё ещё ищем способы улучшения системы кэширования нашего проекта. Но до сих пор акцент делался на том, чтобы разобраться с существующими проблемами производительности. Мы полагаем, что проделали достаточно хорошую работу в плане решения этих проблем.

Оцените статью
Техничка
Adblock detector