Кратко
- В
draft-ietf-cdni-ci-triggers-rfc8007bis-20нижестоящая CDN обязана ответить на запрос отмены, но реализация настоящей отмены остаётся необязательной. Даже принятый запрос может проиграть работе, которая уже начинается или заканчивается. cancelling,cancelled,processed,completeи удаление ресурса подтверждают разные этапы. Удаление способно лишить оператора статуса, не помешав дальней ветви закончить действие.
Оператор отправляет purge, замечает ошибку в области действия и немедленно нажимает отмену. Интерфейс отвечает успешно. Самая опасная следующая мысль — считать, что старое действие теперь не происходило.
Ревизия 20 проекта CDNI Control Interface / Triggers позволяет вышестоящей CDN просить нижестоящую заранее разместить, инвалидировать или очистить контент и метаданные. Предварительное размещение получает копию до спроса. Инвалидация запрещает повторное использование без проверки, но не требует стереть данные. Очистка требует больше не хранить выбранные данные. Разные глаголы задают разные факты.
Отмена участвует в той же гонке
Нижестоящая CDN должна ответить на отмену, однако фактическую возможность отменять проект называет необязательной. Если принят запрос для pending, работа всё равно может начаться между наблюдением состояния и обработкой запроса. Для active или processed система должна попытаться остановиться, но не гарантирует, что не успеет нормально завершиться.
Поэтому cancelling и cancelled не взаимозаменяемы. Первое означает, что остановка запрошена. Второе появляется только тогда, когда обработка прекратилась раньше обычного конца. Если исходное действие выиграло гонку, итогом может остаться complete или failed. Принятая воля оператора не меняет задним числом состояние удалённого узла.
У самой очистки есть временная граница. Данные, полученные до входа в active, должны попасть под действие; текущие загрузки тоже следует охватить. Данные, полученные после начала, охватываться не должны, но текст признаёт, что добиться этого можно не всегда. Команда не создаёт идеально одновременный срез всех процессов кэширования.
При замене версии эта неточность превращается в сбой. Если новую копию разместить до окончания старой очистки, она может прибыть первой, а затем быть удалена прежней командой. Зависимость в расширении политики выполнения позволяет дождаться первого триггера. Это технический барьер против неверного порядка, а не лишняя бюрократия.
Processed честно обозначает предел наблюдения
Состояние processed означает, что триггер создан, новых обновлений не будет, а завершение нельзя подтвердить через этот интерфейс. Нижестоящая CDN продолжает работу и по возможности сообщает ожидаемое время конца. Это не осторожная формулировка успеха, а признание отсутствия финального чека.
Оператору следует оставить такой случай открытым. Для очистки можно сопоставить последний статус, доступные списки объектов и ошибок, изменение обращений к origin, проверки кэшей и фактически выдаваемую версию. Для предварительного размещения — запросить ожидаемую версию из нужной зоны покрытия. Независимые наблюдения не всеведущи, но не дают отсутствию квитанции превратиться в положительную квитанцию.
HTTP-коды стоят ещё раньше. 201 Created подтверждает ресурс триггера. 202 Accepted подтверждает приём незавершённой команды. 204 No Content при немедленном удалении подтверждает исчезновение ресурса состояния. Ни один из них сам по себе не описывает байты в каждом кэше.
Удаление может убрать свидетеля, но не работу
Удаление похоже на отмену, однако после него ресурс становится недоступен. Поэтому проект рекомендует отмену, если статус понадобится после завершения.
Гонка при удалении сохраняется. pending может успеть начать работу; active или processed может не успеть остановиться. Корректный ответ на DELETE, исчезнувший URI состояния и продолжающаяся очистка в дальней ветви не противоречат друг другу.
Автоматическое истечение создаёт ту же дыру позднее. CDN может удалить терминальные ресурсы и отвечать 404. Она должна объявлять срок хранения и не должна преждевременно удалять processed, пока выполнение или дальнейшая передача ещё вероятны. Неповторяемый UUID защищает имя от повторного использования, но не возвращает исчезнувшую историю.
Каскад ждёт последнюю ветвь
Транзитная CDN может передать триггер дальше. Она не вправе сообщить complete, пока действие не завершено у неё и у всех затронутых нижестоящих CDN. Если хотя бы одна ветвь остаётся processed, агрегат остаётся таким же. Отмена сохраняет cancelling, пока каждая ветвь не сообщит cancelled, complete или failed.
Так быстрый узел не свидетельствует за медленный. Одновременно появляется обязанность хранить соответствие исходного триггера транзитным ресурсам, путь CDN, ошибки ветвей, время переходов и последующее наблюдение контента.
В ромбовидной топологии один downstream может получать связанные данные несколькими путями, с разными задержками и конфликтующими метаданными. Проект считает это ошибкой конфигурации. Расширенные счётчики объектов, узлов и байтов помогают заметить аномальный масштаб, но они необязательны и не устраняют повторный учёт одного объекта на нескольких узлах. Это индикаторы, а не реестр уникальных объектов.
Complete имеет сильное, но ограниченное значение
Проект запрещает сообщать complete, пока успешно не выполнены все операции, включая работу нижестоящих CDN. Это серьёзная гарантия протокольного уровня.
Однако она относится к сформулированному запросу. Очистка, не совпавшая ни с одним известным объектом, может успешно завершиться с нулевым эффектом. Шаблон может выбирать не то множество, которое представлял оператор. А CDNI разделяет интерфейсы управления, метаданных, маршрутизации запросов и журналирования. Завершение управления не доказывает автоматически представление, полученное пользователем.
Надёжный регламент сохраняет пять точек: исходный триггер, приём соседней CDN, запрос отмены или удаления, терминальное состояние каждой ветви и независимый результат для контента. Он не разрешает необратимый следующий шаг только по cancelling, processed или 2xx. Возможности партнёра проверяются до аварии.
Ревизия 20 остаётся Internet-Draft. В зафиксированном реестре IANA по-прежнему находятся типы RFC 8007, а не предлагаемые .v2; источники не подтверждают внедрение у названного CDN. Но операционная граница уже полезна: принятая отмена доказывает поступление запроса остановки, а не отсутствие очистки.
Источники
- Карточка CDNI Triggers в Datatracker
- История версий в Datatracker
- CDNI Triggers, вторая редакция, версия 20
- CDNI Triggers, вторая редакция, версия 19
- RFC 8007: CDNI Control Interface / Triggers
- RFC 6707: постановка задачи CDNI
- RFC 7336: архитектура CDNI
- RFC 7337: требования CDNI
- RFC 8006: метаданные CDNI
- RFC 8008: зона и возможности CDNI
- RFC 8009: интерфейс журналирования CDNI
- RFC 9110: семантика HTTP
- RFC 9562: UUID
- Параметры CDNI в IANA
- Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
- Running-Code Primacy
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров

