The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

sqlite3-rdiff - signature-based row differences for SQLite3 databases

Дата
17 Jan 2010
Заголовокsqlite3-rdiff - signature-based row differences for SQLite3 databases
ПояснениеУтилита, предназначенная для организации репликации данных между несколькими БД SQLite. Утилита поддерживает три базовые операции:
  1. Формирование файла хэш-сигнатур, отражающих текущее состояние всех записей БД.
  2. Генерацию delta-патча на основе сравнения текущего состояния базы с состоянием отраженным в файле сигнатур.
  3. Обновление данных в БД на основе заданного delta-патча:

Сигнатуры вычисляются с использованием хэш-функции MurmurHash для всех данных одной строки или группы строк базы. Размер файла сигнатур занимает около 10% от размера исходной базы, но имеется возможность вычисления и проверки сигнатур сразу для нескольких строк, что позволяет значительно сократить размер файла сигнатур за счет увеличения размера delta-патча. Примечательно, что при генерации одной сигнатуры для N-строк, размер файла с сигнатурами уменьшается в N раз. Группировку предпочтительно использовать для баз большого размера, данные в которых изменяются не часто.

Пример по доведению необновленной версии slave.db до актуальной БД master.db:

   sqlite3-rdiff --rows-per-hash 16 signature slave.db slave.db.sign
   sqlite3-rdiff delta slave.db.sign master.db slave.db.delta
   sqlite3-rdiff patch slave.db slave.db.delta slave.db

В итоге, для slave.db размером 1.5 Гб будет сгенерирован патч slave.db.delta размером 4.3 Мб и файл сигнатур slave.db.signature размером 13 Мб. В данный пример (--rows-per-hash 16) сигнатура создается для 16 строк таблицы, если формировать сигнатуру для каждой строки, то итоговые файлы будут следующего размера: slave.db.delta - 3.4 Мб, slave.db.signature - 160 Мб.

Home URLhttp://sqlite.mobigroup.ru/src/wiki?name=sqlite3-rdiff
Флагrussian
РазделБазы данных
Ключи

 Добавить ссылку
 
 Поиск ссылки (regex):
 

Последние заметки
<< Предыдущие 15 записей
- 02.01.2018 Создания WiFi-ретрансляторов с поддержкой построения Mesh-сети
- 27.12.2017 Как увеличить охват квартиры точкой доступа при помощи алюминиевой фольги
- 12.12.2017 Обход ограничения доступа к материалам сайтов для платных подписчиков
- 02.12.2017 Сборка ChromiumOS из исходных текстов для запуска в QEMU
- 29.11.2017 Возвращение к жизни Skype 4.3 для Linux
- 10.11.2017 Сборка системы виртуализации crosvm из Chrome OS в обычном дистрибутиве Linux
- 24.10.2017 Еscape-последовательности в сеансе OpenSSH
- 10.09.2017 Использование CAA записей в DNS для защиты от генерации фиктивных HTTPS-сертификатов
- 08.09.2017 Настройка ротации логов MongoDB
- 26.07.2017 Быстрый посмотр конфигурации GEOM во FreeBSD
- 25.07.2017 Проверка безопасности беспроводной сети WPA/WPA2 при помощи Aircrack-ng и Hashcat
- 08.07.2017 Наиболее простой способ получения и обновления сертификатов Let's Encrypt
- 09.06.2017 Создание QR-кода в консоли, чтобы быстро перенести текст на смартфон
- 24.05.2017 Просмотр подсказок/шпаргалок по командам UNIX/Linux в командной строке
- 21.04.2017 Как подключить в Ubuntu диски Seagate Business NAS и восстановить данные
Следующие 15 записей >>




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру