Здравствуйте товарищи.
Есть у меня приложение которое активно работает с базой данной.
1. При конекте клиент(флешка) подргужает все нужные ей таблицы и хранит у себя ввиде ArrayCollection.
2. Далее клиент периодически (раз в 30 секунд) спрашивает сервер: а нет ли чё новенького?
3. Сервер отвечает, да есть новенькое в таблице А, вот получи "новенькое" по таблице А за последние 30 секунд в виде ArrayCollection А_upd.
4. Клиент получает изменения A_upd и в цикле обновляет свою таблицу А.
Сталкнулся сейчас с проблемами:
1. Производительность. Например мне надо оперативно отобразить в DataGride информацию сборную из нескольких таблиц в итоге получаю вложенные циклы (2-3 уровня) по обработке больших ArrayCollection. Всё нормально работает на таблицах с 10 записями, на 1000 тормозит жёстко.
2. Целостность данных. Если апдейт будет во время работы по построению данных в датагриде, то может получиться ошибка при обработки удалённых данных.
Вопрос: как лучше сделать?
Писать микро-движёк базы данных на стороне флешки? типа индексы партиционирование "таблиц" в ArrayCollection. Делать лок при обновлении данных.