Додано функцію локальної синхронізації для пришвидшення завантаження та вивантаження
Спільна робота з великими файлами часто впирається у практичне обмеження, коли кожна передача мусить проходити через інтернет — навіть тоді, коли члени команди перебувають в одній локальній мережі. Щоб вирішити цю проблему, ми реалізували можливість локальної синхронізації, яка дозволяє клієнтам виявляти та передавати дані безпосередньо в межах локальної мережі (LAN).
Як працює локальна синхронізація
Функція використовує однорангову мережу за протоколом Kademlia для роботи розподіленої геш-таблиці. Під час запуску застосунку клієнт надсилає UDP-повідомлення групової розсилки (multicast), щоб долучитися до локальної мережі Kad. Після встановлення з'єднання вузли обмінюються інформацією про доступні файли в спільних групах. Це дозволяє клієнтам в одній мережі отримувати дані одне від одного, замість того щоб завантажувати все з центрального сервера через інтернет.
На практиці це означає, що великі файли можуть передаватися зі швидкістю локальної мережі — нерідко на порядки швидше, ніж каналами, обмеженими пропускною здатністю інтернету.
Диференційна синхронізація
Доповнюючи локальне виявлення, ми запровадили диференційну синхронізацію. Замість того щоб вивантажувати файли цілком, коли змінилися лише невеликі їхні частини, клієнт визначає й передає тільки відсутні або змінені блоки. Це зменшує використання пропускної здатності та пришвидшує як вивантаження, так і завантаження — що особливо корисно для великих двійкових файлів, які часто зазнають незначних правок.
Виявлення конфліктів за допомогою Dotted Version Vectors
Надійна синхронізація в розподілених середовищах потребує ретельного виявлення конфліктів. LightUpOn.Cloud використовує Dotted Version Vectors (DVV) — досконалий механізм відстеження причинності, заснований на академічних дослідженнях. На відміну від традиційних векторів версій, які можуть породжувати хибні конфлікти, DVV забезпечує точне відстеження причинно-наслідкових зв'язків між оновленнями, дозволяючи системі правильно розпізнавати одночасні зміни та ефективно розв'язувати ті, що пов'язані причинно.
Такий підхід зберігає надійні гарантії узгодженості, не жертвуючи перевагами продуктивності локальних і диференційних передач.
Практичний ефект
Для команд, які працюють з великими дизайнерськими файлами, відеоматеріалами чи наборами даних, ці вдосконалення означають помітно швидші робочі процеси. Файли, синхронізація яких між офісами раніше тривала хвилини, тепер можуть завершуватися за секунди, коли пристрої перебувають в одній локальній мережі. Диференційні оновлення додатково скорочують час очікування під час поступових змін, тоді як механізм DVV забезпечує точне опрацювання конфліктів навіть за одночасного доступу.