Перейти к содержимому
Экосистема AI Vibe
← Назад к AI Vibe News

Редакция 10 августа 2026 г.

Новости

История правок в SQLite: сжатый blob вместо строки на каждую правку

Столбец SQLite с сжатым JSON-массивом версий текста рядом с раздутой таблицей отдельных строк на каждую правку.

Классика с историей правок в SQLite — отдельная строка на каждую версию текста. Для документа на 20 КБ это ещё +20 КБ за любое сохранение. Willison собрал прототип с одной строкой на документ: текущий текст, blob с архивом и несжатый JSON-массив Unix-таймстампов.

Внутри blob — JSON-массив всех прошлых версий, упакованный через zlib или Zstandard. На 1000 симулированных ревизий 20,4 МБ сырых данных сжались до 80,3 КБ. Схему обсуждали в голосовом режиме ChatGPT на прогулке; исходники за 38 минут выдал GPT-5.6 Sol Pro.

Два прототипа

  • WholeBlobHistoryStore — перезаписывает один сжатый blob целиком при каждой правке.
  • ChunkedHistoryStore — укладывает историю в отдельные «запечатанные» чанки, чтобы не разжимать весь массив на каждом сохранении.

Когда режут на чанки

Для длинных лент Sol предложил лимит: до 128 ревизий или 3 МБ несжатого JSON на чанк. Неизменённые замены по умолчанию не пишутся; конкурентные обновления проходят через BEGIN IMMEDIATE.

Источник: SQLite compressed text-history prototypes.