Вышла версия Syncthing 2.0 с масштабной переработкой базы данных

Syncthing 2.0, инструмент для одноранговой синхронизации файлов с открытым исходным кодом, дебютирует с переходом на SQLite, обновлённой системой ведения журнала, ускоренной синхронизацией и многим другим.
Syncthing — любимый многими энтузиастами самостоятельного хостинга инструмент для одноранговой синхронизации файлов, который позволяет синхронизировать папки на нескольких устройствах без использования центрального сервера или облачного хранилища. Вышла долгожданная версия 2.0 — первая в новой серии 2.x.
Прежде всего разработчики предупреждают, что пользователям следует «быть готовыми к некоторым недоработкам и сохранять дух авантюризма» Тем не менее обновление содержит значительный набор улучшений, исправлений и изменений, которые закладывают основу для будущего.
Одним из самых значительных изменений стал переход от серверной части базы данных LevelDB к SQLite. Это изменение должно упростить обслуживание базы данных и снизить вероятность возникновения ошибок, хотя процесс миграции при первом запуске может занять некоторое время у пользователей с большими настройками.
Кроме того, была модернизирована система ведения журналов: добавлены структурированные записи, возможность управления уровнем журнала для каждого пакета и новый уровень WARNING между INFO и ERROR. Интерфейс командной строки также был оптимизирован: удалены старые длинные параметры с одним дефисом, некоторые параметры переименованы, а другие преобразованы в подкоманды.
Что касается ведения домашнего хозяйства, то Syncthing больше не будет хранить удалённые элементы в базе данных вечно — по умолчанию они удаляются через шесть месяцев, но этот срок можно изменить или отключить.
Производительность также повысилась, так как было отменено обнаружение скользящего хэша изменённых данных, что привело к ускорению сканирования и синхронизации. «Папка по умолчанию» исчезла, а между устройствами версии 2 теперь стандартно используется несколько подключений, что помогает ускорить передачу метаданных и файлов.
Однако не все новости одинаково полезны для всех платформ. Из-за проблем с кросс-компиляцией SQLite готовые двоичные файлы больше не предоставляются для некоторых систем, включая DragonFly BSD, Illumos, Solaris, Linux PPC64, NetBSD и некоторые варианты OpenBSD и Windows ARM.
Под капотом — длинный список исправлений ошибок и улучшений. Среди них — более эффективная обработка разрешения конфликтов при удалении файлов (теперь удаление может быть «выигрышным» вариантом), использование ключей Ed25519 для синхронизации подключений, возможность ограничения пропускной способности локальной сети и поддержка сопоставления портов UDP с QUIC. Многие улучшения также направлены на повышение эффективности использования памяти, очистку кода и оптимизацию процесса сборки.
Полный список всех изменений в Syncthing 2.0 см. в журнале изменений.
Если вы подумываете о том, чтобы попробовать Syncthing, наше руководство «Как настроить и использовать Syncthing для синхронизации файлов в Linux» поможет вам быстро и без проблем приступить к работе.
Редактор: Анастасия Богатырчук