Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Синхронізація порціями

Читайте также:
  1. Синхронізація зі знанням того, що є на пристрої
  2. Синхронізація оновлених даних

У мобільних пристроїв мало оперативної пам'яті. Якщо за один запит пристрій отримає відповідь від сервера розміром у 3000 рядків з БД, то парсинг такого розміру json -файл в об'єкти на пристрої може викликати недостачу пам'яті. У цьому випадку додаток або аварійно завершиться, або не збереже отриману відповідь. Але навіть якщо пристрій зможе обробити таку кількість даних за один раз, то продуктивність програми в моменти синхронізації буде низька (лаги інтерфейсу, не плавна прокрутка і т.п.) Тому необхідно запитувати список більш дрібними порціями.

На схемі: "last_updated" і "amount" - значення, які зберігаються в мобільному додатку. "Last_item" - остання надіслана з сервера сутність. Саме новіше цього значення буде запитаний наступний список.

Приклад запиту: {lastUpdated: "2013-01-01 00:00:00", amount: 100}

При використання такого типу запиту можлива ситуація, що якщо в таблиці є 250 записів з однаковим "updated" (наприклад, "2013-01-10 12:34:56") і розмір порції дорівнює 100, то прийдуть тільки перші 100 записів. Решта 150 будуть відсічені жорсткою умовою (updated> lastUpdated). При запиті перших 100 записів lastUpdated встановиться в "2013-01-10 12:34:56", і наступний запит матиме умова (updated> "2013-01-10 12:34:56"). Також не допоможе пом'якшення умови (updated> = "2013-01-10 12:34:56"), тому що пристрій тоді буде нескінченно запитувати перші 100 записів.

Наприклад, при імпорті даних з текстового файлу поле "updated" використовувалась функція NOW(), що повертає час. Імпорт файлу з тисячами рядків може зайняти менше секунди. Може статися й так, що весь довідник буде мати однаковий "updated". Щоб виправити таку ситуацію необхідно використовувати унікальне поле у межах одного моменту ("updated"). Поле "id" унікально взагалі по всій таблиці, тому слід додатково в синхронізації використовувати саме його.

Реалізація цього методу є такою. Сервер віддає список відсортований по "updated" і "id", а пристрої запитують дані за допомогою "lastUpdated" і нового параметра "lastId". Умова, що виконується на сервері під час генерування відповіді: ((updated> lastUpdated) || (updated == lastUpdated and id> lastId)).

Рис. 3.9. МС даних за третім методом

 

Оскільки швидкість передачі через мобільний інтернет є незначною(середня швидкість передачі ~18000 байт/с), то необхідно зробити так, щоб за один запит дані передавались ½ часу проміжку між повторною синхронізацією, тобто 10/2 = 5 секунд. Кількість даних, що може бути передана за 5 секунд дорівнює 18000 * 5 = 90000 байт. Це зумовлене тим, що якість покриття на різних місцевостях може відрізнятись і необхідно для забезпечення надійної роботи додатку.

Таблиця 3.9

Тестування третього методу

Запит, № Кількість переданого трафіку(байт) Час виконання операції на сервері(мс) Час виконання операції на пристрої(мс) Загальний час виконання операції(мс)
  252 374      
  27 473      
  26 300      
  27 310      
  27 014      

 

Рис. 3.10. Кількість переданих байт інформації при кожному запиті

Рис. 3.11. Часова діаграма початку і завершення синхронізації

 

Загальна кількість переданих байт за 5 запитів дорівнює 360 471.

Дані передаються майже однаковими малими порціями, що виключає можливої ситуації коли до завершення синхронізації n починається синхронізація n+1.

Переваги:

- низьке навантаження на пам’ять та процесор пристрою

Недоліки:

- для пристроїв різних характеристик, обмеження для одного пристрою не підходить для іншого пристрою(якщо обмеження низькі – синхронізація відбуватиметься довше ніж є можливість, якщо обмеження вищі – нестабільність роботи додатку)

Область застосування:

- для пристроїв однакової характеристики

 


Дата добавления: 2015-12-07; просмотров: 99 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.008 сек.)