ARCANADA
Все записи
Блог 15 июля 2026

Cubrim-2: Глобальный Адресатор и общий язык для данных

Cubrim-2: Глобальный Адресатор и общий язык для данных
MP3
Аудио
0:00 / 0:00

Cubrim-1 и Cubrim-2 — не две версии одного результата. Cubrim-1 уже работает как архиватор: его можно запустить, восстановить файлы и сравнить результат с другими программами. Cubrim-2 — исследование Глобального Адресатора, где я проверяю другой вопрос: можно ли заранее дать устройствам общую проверенную память, а потом передавать не целые объекты, а ссылки на знакомые блоки и действительно новые данные.

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

Сначала — что уже измерено

В открытом бенчмарке на корпусах Silesia, enwik8 и Canterbury Cubrim-1 занял первое место в общем взвешенном результате среди десяти архиваторов. Его коэффициент — 0,2227. У ближайшего соперника, PPMd, — 0,2286: примерно на 2,6% выше, а здесь меньше означает лучше. Следом идут xz, 7-Zip и Brotli.

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

Cubrim-2 не наследует это первое место. У Адресатора другая задача и другая единица честности: считать нужно не красоту короткой ссылки, а полную стоимость общей системы.

От архива — к общей памяти

Обычный архив приносит получателю всё, что нужно для восстановления файла. Адресатор начинается с другого условия: отправитель и получатель заранее имеют одинаковый каталог неизменяемых блоков. Тогда уже знакомый фрагмент можно назвать адресом, порядок сборки — описать, а по каналу передать только отсутствующий остаток.

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

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

Матрицы: пределы на бумаге и данные на дисках

Рабочее название общей основы — Универсальные Матрицы Данных Валентовых. Слово «матрица» описывает раскладку битов, но не отменяет комбинаторику. Для блока длиной B бит существует ровно 2B вариантов. Размерность этого числа не меняет: одномерная строка из 64 бит и куб 4×4×4 содержат те же 64 бита и имеют одинаковые 264 возможных состояний.

Если вообразить склад из 20 000 дисков по 1 ТБ и попытаться сохранить вообще все варианты вместе с их содержимым, последним помещающимся размером будет B=51: 251 × 51 бит — это 1,44×1016 байт. При B=52 нужно уже 2,93×1016 байт. А около B=266 число вариантов 2266 достигает порядка 1080, сопоставимого с обычной оценкой числа атомов в наблюдаемой Вселенной. Полный перебор матриц физически бессмыслен. Реальная система может хранить только блоки, которые действительно встретились в данных.

Именно это я проверил на кросс-девайс корпусе объёмом 13,48 ГБ: 9,06 ГБ с arcana-devs, 3,38 ГБ с arcana-www и 1,04 ГБ с arcana-prod. Между хостами передавались только хэши. Одни и те же 4096 бит, или 512 байт, раскладывались четырьмя способами:

  • 1D: 14 965 607 уникальных блоков, 57,80%, или 7,14 ГиБ;
  • 2D: 12 077 059, 62,35%, или 5,76 ГиБ;
  • 3D: 8 020 728, 57,46%, или 3,82 ГиБ;
  • 4D: 5 578 363, 53,03%, или 2,66 ГиБ.

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

Если механически продолжить измеренную долю уникального на мировой объём порядка 10 ЗБ, получится примерно 5,3–6,2 ЗБ матриц, то есть миллиарды дисков по 1 ТБ. Это линейная экстраполяция, а не прогноз: мировой набор данных имеет другой состав, и на большем масштабе поведение может измениться. Но она хорошо отрезвляет. Выигрыш Адресатора не в складе «всех возможных кубов», а в дедупликации повторяющихся 38–47% и в курировании: хранить блоки, встретившиеся хотя бы дважды, вместо накопления всего подряд.

Короткий адрес не отменяет цену

Исследование подтвердило порог амортизации N*=2 во всех семи измеренных классах данных: там, где повторения между устройствами действительно есть, уже второе устройство может окупить каталог и ссылки. Но у строго уникальных личных данных повторяемость стремится к нулю, а N* — к бесконечности. Для них общей экономии нет.

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

Поэтому я не обещаю «любой файл в нескольких байтах». Я ищу область, где заранее доставленная и курируемая основа действительно дешевле повторной передачи, и отдельно отмечаю область, где обычное локальное сжатие остаётся честнее и лучше.

Почему космос делает задачу практической

Космос превращает абстрактную экономию байтов в конструкцию миссии. На аппарате конечны память и энергия; окно связи имеет расписание; повторная передача может стоить часов или дней. При этом борт должен пережить обрыв канала, проверить целостность каждого блока и восстановить рабочее состояние без человека рядом.

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

Из этих вопросов получаются проверяемые сценарии. Например: на Земле и на борту лежит одна базовая карта; в следующее окно связи отправляются новые наблюдения, список адресов и манифест версии. Эксперимент считается успешным не тогда, когда пакет мал, а когда аппарат после искусственного обрыва сам обнаруживает недостающий блок, не смешивает версии, восстанавливает целый объект и сохраняет предыдущую исправную сборку. Если для этого приходится дослать почти весь объект, Адресатор в этом сценарии не выиграл.

Другой сценарий — группа аппаратов с общей программной базой, но разными приборами. Здесь нужно измерять не только один канал Земля–борт, а полную стоимость раздачи основы, локального хранения и последующих обновлений. Именно такая постановка отделяет полезную амортизацию от переноса расходов в невидимую колонку.

Исследование, а не обещание

Глубокая исследовательская фаза Адресатора завершила двадцать четыре гипотезы и привела к ограниченной архитектуре из двух механизмов для прототипа. Это уже не чистая фантазия: есть измеренные результаты, отрицательные проверки и границы применимости. Но это ещё не универсальный продукт. Полный журнал гипотез, методы и текущий ход разработки я оставляю в живом разделе «Глобальный Адресатор» на cubrim.com, чтобы статья не подменяла исследовательский протокол красивым пересказом.

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

Я всё ещё хочу, чтобы Земля и далёкий аппарат могли говорить на общем языке данных. Теперь эта метафора нравится мне именно своей немагичностью. Язык нужно заранее выучить, словарь — доставить, версии — согласовать, ошибки — обнаружить. Cubrim-1 уже показал мне, что долгую идею можно довести до измеримого архиватора. Cubrim-2 должен заслужить следующий шаг тем же способом: не обещанием, а воспроизводимой проверкой.