Патент Google, описывающий инфраструктурный механизм обновления индекса (репозитория документов). Система позволяет добавлять новые версии документов и удалять старые, не блокируя доступ к данным для параллельно выполняющихся поисковых запросов. Это достигается за счет управления «доступным диапазоном» данных и отложенного удаления старых версий.
Описание
Какую задачу решает
Патент решает фундаментальную инфраструктурную проблему: как обновлять поисковый индекс (репозиторий документов) с высокой частотой и низкой задержкой (обеспечивая свежесть данных), не прерывая и не замедляя параллельную обработку входящих поисковых запросов. Он устраняет необходимость блокировки системы или сложных процессов слияния индексов, позволяя поддерживать высокую доступность поиска при частых обновлениях контента.
Что запатентовано
Запатентована система управления репозиторием (Tokenspace Repository) и метод управления данными, который минимизирует необходимость синхронизации между потоками обновления (Write Threads) и потоками запросов (Query Threads). Это достигается за счет механизма управления версиями данных («Доступный диапазон» или Accessible Range) и системы отложенного удаления старых данных («Сборка мусора» или Garbage Collection) на основе «Эпох» (Epochs).
Как это работает
Система работает по принципу, схожему с мультиверсионным контролем параллелизма (MVCC). Когда поступает новая версия документа (V2), она добавляется в конец репозитория, изначально за пределами текущего Accessible Range. Затем диапазон атомарно обновляется, чтобы включить V2. Старая версия (V1) помечается как недействительная (invalidated). Новые запросы видят V2. Запросы, которые уже выполнялись, продолжают использовать V1, так как они работают со снимком Accessible Range на момент их запуска. V1 физически удаляется только тогда, когда система гарантирует (через механизм Epochs), что ни один активный запрос ее больше не использует.
Актуальность для SEO
Высокая (с точки зрения инфраструктуры). Обеспечение непрерывной доступности и максимальной свежести индекса — критически важные задачи для современных поисковых систем. Принципы, описанные в этом патенте ключевыми инженерами Google (Джеффри Дин и Майкл Берроуз), лежат в основе эффективной работы распределенных систем хранения и индексирования Google.
Важность для SEO
Минимальное влияние (1/10). Это чисто инфраструктурный патент. Он не описывает алгоритмы ранжирования, факторы качества или методы анализа контента. Он объясняет техническую реализацию того, как Google обеспечивает возможность частых обновлений индекса без остановки системы. Для SEO-специалиста этот патент не предоставляет прямых рекомендаций по оптимизации, но дает понимание потенциальной скорости, с которой изменения могут быть учтены в поиске.
Детальный разбор
Термины и определения
- Accessible Range (Доступный диапазон)
- Диапазон позиций в репозитории, который содержит действительные документы, доступные для запросов. Определяется начальной (BeginRepositoryPos) и конечной (EndRepositoryPos) позициями. Обеспечивает консистентный снимок данных для запроса.
- Epoch (Эпоха)
- Механизм для отслеживания активности запросов и управления сборкой мусора. Позволяет системе отслеживать, какие запросы могут ссылаться на данные, запланированные к удалению.
- FIFOArray (Массив FIFO — First-In-First-Out)
- Специализированная структура данных, используемая для хранения репозитория. Данные добавляются только в конец («back end») и удаляются только из начала («front end»).
- Garbage Collection List (Список сборки мусора)
- Структура данных, содержащая записи для каждой Epoch. Каждая запись включает счетчик активных потоков (ThreadCount) и список элементов для удаления (DeleteItems).
- Invalidation (Инвалидация)
- Процесс пометки старой версии документа как недействительной. Она остается физически доступной для уже запущенных запросов, но становится невидимой для новых запросов.
- Query Processor/Thread (Поток запроса)
- Процесс или поток, отвечающий за выполнение поисковых запросов пользователей.
- Synchronization Lock (Блокировка синхронизации)
- Глобальная блокировка, используемая для защиты ключевых структур данных (таких как Accessible Range) во время их кратковременного обновления.
- Tokenspace Repository (Репозиторий пространства токенов)
- Основное хранилище данных, где документы хранятся как непрерывная последовательность токенов. Реализован с использованием FIFOArray.
- Treadmilling («Беговая дорожка»/Перемещение данных)
- Процесс дефрагментации FIFOArray. Действительные данные копируются из начала массива в его конец, после чего исходные данные в начале удаляются, освобождая память.
- Write Processor/Thread (Поток записи)
- Процесс или поток, отвечающий за добавление и обновление документов в репозитории и индексе.
Ключевые утверждения (Анализ Claims)
Патент описывает инфраструктурный механизм управления данными.
Claim 1 (Независимый пункт): Описывает основной метод обновления документа без прерывания запросов.
- Первая версия документа (V1) хранится в Accessible Range репозитория.
- Система получает вторую версию (V2).
- V2 сохраняется в репозитории, но за пределами текущего Accessible Range.
- Конец (second end) Accessible Range изменяется так, чтобы включить V2. Теперь и V1, и V2 доступны потокам.
- V1 помечается как недействительная (invalidating), но не удаляется.
- Критическое условие (Snapshot Isolation): Инвалидированная V1 остается доступной для тех запросов, которые начали выполняться до инвалидации. Запросы, начавшиеся после инвалидации, не могут получить доступ к V1 (они будут использовать V2).
- Запросы выполняются непрерывно во время всех этих операций.
- Инвалидированная V1 удаляется только тогда, когда на нее больше не ссылается ни один активный поток.
Claim 2 (Зависимый от 1): Уточняет синхронизацию индекса.
Одновременно с изменением Accessible Range репозитория для включения V2, изменяется и доступный диапазон соответствующих индексных записей (index records), чтобы включить записи, соответствующие как V1, так и V2.
Claim 3 (Зависимый от 1): Определяет модель консистентности для запросов.
Каждый поток выполняет запрос, используя тот диапазон репозитория (Accessible Range), который был доступен в момент начала выполнения запроса. Изменения в Accessible Range, происходящие во время выполнения запроса, игнорируются этим запросом.
Где и как применяется
Этот патент описывает фундаментальный механизм управления данными, находящийся на стыке процессов индексирования и обслуживания запросов.
INDEXING – Индексирование и извлечение признаков
На этом этапе Write Processors обрабатывают новый или обновленный контент и записывают его в Tokenspace Repository и Tokenspace Inverted Index. Описанный механизм управляет тем, как именно эти данные записываются, когда они становятся видимыми и как удаляются старые версии.
RANKING / RERANKING – Ранжирование и Переранжирование
На этих этапах Query Processors постоянно обращаются к репозиторию и индексу для получения данных. Механизм патента гарантирует, что эти запросы могут выполняться непрерывно и получать согласованное представление данных (Accessible Range), не конфликтуя с процессами индексирования.
Входные данные:
- Новые или обновленные версии документов (от Write Processors).
- Входящие поисковые запросы (для Query Processors).
- Системные данные о состоянии репозитория (Accessible Range, Epoch, ThreadCount).
Выходные данные:
- Обновленное состояние Tokenspace Repository и Inverted Index.
- Результаты поисковых запросов.
На что влияет
Это инфраструктурный механизм. Он влияет на все типы контента, все типы запросов, все тематики и все языки одинаково. Его основное влияние заключается в повышении общей свежести (freshness) индекса и скорости его обновления, а не в изменении ранжирования.
Когда применяется
Алгоритмы применяются непрерывно:
- При обновлении данных: Каждый раз, когда Write Processor добавляет новый документ или обновляет существующий.
- При выполнении запросов: Каждый раз, когда Query Processor начинает обработку нового запроса (для определения Accessible Range и обновления счетчиков Epoch).
- При обслуживании: Периодически для физического удаления недействительных данных (Garbage Collection) и дефрагментации хранилища (Treadmilling).
Пошаговый алгоритм
Система состоит из трех основных параллельных процессов.
Процесс А: Обновление документа (Write Thread)
- Получение обновления: Получить новую версию документа (V2).
- Сохранение (вне диапазона): Сохранить V2 в конец Tokenspace Repository (в FIFOArray), за пределами текущего Accessible Range. Обновить индекс.
- Захват блокировки: Захватить глобальную Synchronization Lock.
- Обновление диапазона: Изменить конечную позицию (EndRepositoryPos) Accessible Range так, чтобы включить V2.
- Освобождение блокировки: Освободить Synchronization Lock. (Шаги 4-5 выполняются очень быстро).
- Инвалидация старой версии: Пометить старую версию (V1) как недействительную. Добавить V1 в список удаления (DeleteItems) для текущей Epoch.
Процесс Б: Выполнение запроса (Query Thread)
- Получение запроса: Получить запрос на выполнение.
- Захват блокировки: Захватить глобальную Synchronization Lock.
- Получение диапазона: Зафиксировать текущий Accessible Range для использования этим запросом.
- Регистрация в Эпохе: Увеличить счетчик активных потоков (ThreadCount) для текущей Epoch в Garbage Collection List.
- Освобождение блокировки: Освободить Synchronization Lock.
- Выполнение: Выполнить запрос, используя зафиксированный Accessible Range. Изменения в репозитории игнорируются.
- Захват блокировки: Захватить глобальную Synchronization Lock.
- Дерегистрация из Эпохи: Уменьшить ThreadCount для соответствующей Epoch.
- Освобождение блокировки: Освободить Synchronization Lock.
Процесс В: Сборка мусора (Garbage Collection)
- Мониторинг Эпох: Отслеживать ThreadCount для всех активных Epochs.
- Определение завершенных Эпох: Идентифицировать Эпохи, где ThreadCount достиг нуля (при условии, что все предыдущие Эпохи также завершены).
- Физическое удаление: Удалить данные (DeleteItems), которые были инвалидированы в этих завершенных Эпохах, и освободить память.
Какие данные и как использует
Патент фокусируется исключительно на механизмах хранения и управления доступом, а не на анализе контента или ранжировании.
Данные на входе
- Контентные данные (Токены): Документы используются как последовательности токенов (GTokenIDs). Содержание токенов не имеет значения для этого алгоритма.
- Индексные данные: Записи в инвертированном индексе, указывающие на позиции токенов в репозитории.
- Системные/Управляющие данные:
- Accessible Range (Начальная и конечная позиции).
- Synchronization Lock (Состояние блокировки).
- Epoch (Текущий идентификатор эпохи).
- ThreadCount (Счетчики активных потоков).
- Идентификаторы документов (GDocID, LDocID).
Никакие SEO-специфичные факторы (ссылочные, поведенческие, технические, временные и т.д.) в данном патенте не упоминаются и не используются.
Какие метрики используются и как они считаются
- Accessible Range: Определяется двумя значениями: BeginRepositoryPos и EndRepositoryPos. Изменяется потоком записи для включения новых данных и сборщиком мусора для исключения удаленных данных.
- ThreadCount: Счетчик. Увеличивается при старте запроса и уменьшается при его завершении.
- Пороговое значение для сборки мусора: Данные Эпохи могут быть удалены, когда ее ThreadCount достигает предопределенного значения (обычно 0), и все предыдущие Эпохи также завершены.
Выводы
Патент описывает внутренние инфраструктурные процессы Google без прямых рекомендаций для SEO.
- Приоритет доступности и свежести: Изобретение демонстрирует, как Google решает инженерную задачу обеспечения высокой доступности (система всегда отвечает на запросы) и свежести данных (обновления применяются быстро), устраняя конфликты между записью и чтением.
- Управление параллелизмом (MVCC): Система использует механизм, функционально схожий с MVCC, для обеспечения параллельного доступа с минимальными блокировками. Блокировки используются только на очень короткое время для обновления указателей или счетчиков.
- Консистентность снимков (Snapshot Isolation): Концепция Accessible Range гарантирует, что любой запрос видит согласованный снимок индекса на момент своего запуска, даже если индекс обновляется параллельно.
- Управляемая сборка мусора: Удаление старых версий документов точно контролируется механизмом Epochs и счетчиками потоков (ThreadCount). Это гарантирует, что данные не будут удалены физически, пока они используются хотя бы одним активным запросом.
- Дефрагментация хранилища: Механизм Treadmilling используется для борьбы с фрагментацией хранилища (FIFOArray) и эффективного освобождения памяти.
Практика
ВАЖНО: Патент является инфраструктурным и не дает прямых практических выводов или рекомендаций для SEO-специалистов по оптимизации контента или сайтов.
Best practices (это мы делаем)
- Обеспечение технической доступности сайта: Понимание этого механизма подтверждает, что инфраструктура Google способна очень быстро обрабатывать и индексировать обновления. Это подчеркивает важность технической оптимизации сайта для быстрого сканирования (быстрые ответы сервера, корректное управление Crawl Budget), чтобы обновления оперативно попадали в индекс.
- Фокус на своевременности контента: Поскольку система спроектирована для обеспечения максимальной свежести, это косвенно подтверждает важность предоставления актуального и своевременно обновляемого контента.
Worst practices (это делать не надо)
- Предположение о задержках индексации: Опираться на стратегии, предполагающие, что Google медленно обновляет свой индекс, рискованно. Инфраструктура рассчитана на обновления в режиме, близком к реальному времени, поэтому тактики, основанные на задержках (например, краткосрочные манипуляции контентом), могут быть неэффективны.
Стратегическое значение
Стратегическое значение патента заключается в понимании возможностей инфраструктуры Google. Он подтверждает, что Google ставит в приоритет скорость, доступность и свежесть данных. Это означает, что задержки в обновлении поисковой выдачи чаще связаны с приоритетами сканирования (Crawling) и временем на переоценку сигналов ранжирования (Ranking), а не с техническими ограничениями на скорость записи данных в индекс (Indexing).
Практические примеры
Практических примеров для SEO нет, так как патент описывает внутреннюю инфраструктуру управления репозиторием и параллельными запросами.
Вопросы и ответы
Описывает ли этот патент какие-либо факторы ранжирования?
Нет. Патент полностью посвящен инфраструктуре хранения данных, управлению параллельным доступом и обновлению индекса. В нем не упоминаются никакие сигналы, которые могли бы использоваться для оценки релевантности или качества документов.
Означает ли этот патент, что Google индексирует контент в реальном времени?
Патент описывает инфраструктуру, которая делает индексацию в почти реальном времени возможной. Он устраняет технический барьер, связанный с блокировкой базы данных во время обновлений. Благодаря этому механизму, как только контент обработан, он может быть добавлен в основной репозиторий с минимальной задержкой и сразу стать доступным для поиска.
Что такое «Accessible Range» (Доступный диапазон)?
Это часть репозитория, видимая для поисковых запросов. Когда запрос стартует, он фиксирует текущий Accessible Range и использует его на протяжении всего времени выполнения. Это гарантирует, что запрос видит согласованный снимок индекса, даже если он обновляется параллельно.
Что такое «Эпоха» (Epoch) в контексте этого патента?
Эпоха — это механизм для безопасной сборки мусора. Это период времени, в течение которого система отслеживает, какие запросы активны. Устаревшие данные нельзя удалять, пока не завершатся все запросы той эпохи, в которой эти данные были актуальны или были помечены для удаления.
Исчезает ли старая версия страницы мгновенно, когда индексируется новая?
Нет. Согласно патенту, обе версии кратковременно сосуществуют. Старая версия помечается как недействительная, но остается доступной для тех запросов, которые уже начали выполняться. Она удаляется только после того, как все эти запросы завершатся.
Что такое «Treadmilling» («Беговая дорожка»)?
Это метод для освобождения места в хранилище типа FIFO (FIFOArray). Поскольку данные могут удаляться только с начала массива, система периодически копирует актуальные данные с начала в конец. Это позволяет «сдвигать» массив и освободить непрерывные блоки памяти в начале, занятые устаревшими данными.
Связан ли этот патент с обновлением Google Caffeine?
Да, концептуально он тесно связан. Обновление Caffeine (около 2010 года) было направлено на переход от пакетной обработки к непрерывному обновлению индекса. Механизмы, описанные в этом патенте (поданном в 2006), предоставляют техническую основу для реализации такой непрерывной и быстрой индексации.
Как эта система минимизирует использование блокировок (locking)?
Вместо блокировки всего индекса во время обновления или запроса, блокировки используются только на очень короткое время для атомарного обновления метаданных (указателя Accessible Range и счетчиков ThreadCount). Сами процессы записи данных и выполнения долгих поисковых запросов происходят без удержания глобальной блокировки.
Какова практическая польза этого патента для SEO-специалиста?
Прямой пользы для тактического SEO нет. Патент полезен для общего понимания того, как работает инфраструктура Google. Он подчеркивает, что Google инвестирует значительные ресурсы в обеспечение свежести данных и скорости работы, что косвенно подтверждает важность актуального контента и хорошей технической оптимизации для быстрой индексации.
Авторы патента — Джеффри Дин и Майкл Берроуз. О чем это говорит?
Это говорит о высокой значимости изобретения для инфраструктуры Google. Это ключевые инженеры Google, ответственные за разработку фундаментальных технологий хранения и обработки данных (например, BigTable, MapReduce). Их участие указывает на то, что описанные механизмы лежат в основе критически важных систем компании.