Получение больших объемов данных с использованием подкачкиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Получение больших объемов данных с использованием подкачки

Сообщение Anonymous »

Например, у меня есть облачная среда и клиентская среда, и я хочу синхронизировать большой объем данных из облака с клиентом. Допустим, у меня есть таблица базы данных в облаке с именем Files, и я хочу, чтобы точно идентичная таблица существовала в клиентской среде.

Теперь предположим несколько вещей:
  • Таблица файлов очень большая .
  • Данные каждой строки в файлах могут быть обновлены в любое время и имеют столбец последнего обновления.
  • Я хочу чтобы получить дельту и убедиться, что я идентичен в обеих средах.
Мое решение:
  • Сначала я выполняю полную синхронизацию, возвращая все записи клиенту.
  • Я сохраняю время LastSync в клиенте среде и продолжайте синхронизировать дельты со временем LastSync.
  • Я выполняю полную синхронизацию и дельта-синхронизацию с использованием пейджинга: клиент запускает первый запрос для получения счетчика
  • code> результатов для разницы и столько же других запросов, необходимых для размера страницы каждого запроса.
Например, количество:

Код: Выделить всё

SELECT COUNT(*) FROM files WHERE last_update > @LastSyncTime
Загрузка страницы:

Код: Выделить всё

SELECT col1, col2..
FROM files
WHERE last_update > @LastSyncTime
ORDER BY files.id
LIMIT @LIMIT
OFFSET @OFFSET
Моя проблема:

Что, если, например, первая выборка (выборка Count) будет потребуется некоторое время (например, несколько минут), и за это время больше записей будут обновлены и добавлены в последнее обновление.

Например:< /p>


[*]Выборка счетчика дала 100 записей за 1000 секунд последнего обновления.
[*]1 запись обновлена ​​при получении счетчика.
[*]Теперь последнее обновление 1000 секунд даст 101 запись.
[*] при выборке страницы будет получено только 100 записей из 101 с упорядочиванием по идентификатору
[*]1 запись пропущена и не синхронизирована с клиентом


Я попробовал еще 2 варианта:


[*]Синхронизация с from-to ограничение даты для последнего обновления.
[*]Упорядочение по последнему обновлению вместо столбца id.
< /ul>

Я вижу проблемы в обоих вариантах.

Подробнее здесь: https://stackoverflow.com/questions/509 ... ing-paging
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»