Работа с данными через плохой канал связи

6yrop

плохой в смысле с маленькой пропускной способностью, с большой латентностью, и к тому же платным, например, через сотовый телефон.
Трехзвенка с толстым клиентом.
Часто есть большие списки, которые меняются редко, их можно кэшировать на клиенте и закачивать, только если они изменились (в идеале качать только изменения). Для этого на сервере вычисляется
MAX_по_всему_списку(время_последнего_изменения_записи) и COUNT(* и если эти значения совпали с теми, которые пришли от клиента, то список не перекачивается. Я вот думаю, если на каждом клиенте поставить SQL Server (бесплатный EE то этот подход можно использовать максимально эффективно.
Кто-нибудь сталкивался с такой проблемой? или задумывался над ней?

Unna

используй транзакционную репликацию

xz_post

транзакционную репликацию
а зачем транзакуинную ?

ava3443

Можно javascript-ом кэшировать. Между сессиями конечно не будет храниться, но хоть так.

Dasar

> Кто-нибудь сталкивался с такой проблемой? или задумывался над ней?
для начала лучше посмотреть в сторону БД, которые работают прямо из экземпляра программы, не требуя отдельной установки.

6yrop

Transactional replication
In transactional replication, the Subscribers are first synchronized with the Publisher, typically using a snapshot, and then, as the publication data is modified, the transactions are captured and sent to the Subscribers. Transactional integrity is maintained across the Subscribers by having all modifications be made at the Publisher, and then replicated to the Subscribers. Transactional replication is used when data must be replicated as it is modified, you must preserve the transactions, and the Publishers and Subscribers are reliably and/or frequently connected through the network.

6yrop

для начала лучше посмотреть в сторону БД, которые работают прямо из экземпляра программы, не требуя отдельной установки.
это какие? FireBird, Access? они тоже требуют установки, Access входит в MDAC, но не факт, что это стоит на всех клиентах.
MS SQL Server устанавливается одной командой с командной строки.

psm-home

Существует версия Firebird, которая называется embedded. Это просто DLL, которую ты носишь вместе с приложением. Исталляции, как я помню, нет. Другое дело, что FB по функциональности далеко до MS SQL Server. И насколько качественно товарищ Carlos Guzmán Álvarez налабал .NET провайдер для FB я не знаю.

Ivan8209

sqlite, berkeley etc.
---
...Я работаю антинаучным аферистом...

6yrop

это теоретические базы?

gopnik1994

FB по функциональности далеко до MS SQL Server.

аргументируй
вот меня в свое время в MS добила изоляция через блокировки
после этого я MSSQL не юзаю.

6yrop

а FB snapshot-ы использует?

xz_post

вроде бы стандартная задача про репликацию данных... можно синхронизировать субд либо при помощи субд либо самому писать репликацию...
у нас в проекте примерно такая задача - мы решили написать все самостоятельно

Ivan8209

Достоинства closed-source проектов.
---
...Я работаю антинаучным аферистом...

xz_post

проблема не в этом

xz_post

у нас проект это каша из оракла, ms sql, firebird, perl, c#, delphi и 1С...

Ivan8209

А в чём?
Если б было готовое BSD-style решение вы бы всё равно писали это ещё раз?
---
...Я работаю антинаучным аферистом...

Dasar

> MS SQL Server устанавливается одной командой с командной строки.
это правда, но в теории
на практике есть много но:
1. у пользователь должно быть много прав
2. на машине не должен стоять другой mssql
3. программа должна устанавливаться только в единственном экземпляре
и т.д.
4. при uninstall-e/reinstall-е надо рюхать, что делать с mssql-ем
ps
понятно, что все это решить можно, если сильно хочеться, но зачем?

6yrop

на машине не должен стоять другой mssql
для MSSQL2005 не обязательно
Все остальные проблемы в нашем случае решаются административными мерами , т.е. пользователю в приказном порядке говориться, что ставить

Ivan8209

> для MSSQL2005 не обязательно
А как у него IPC устроен?
---
"...Надо учиться --- не напрягаясь!"

Dasar

> Все остальные проблемы в нашем случае решаются административными мерами , т.е. пользователю в приказном порядке говориться, что ставить
вот в результате компы и не любят - потому что в них часто технические проблемы/задачи решаются административными методами, а административные проблемы/задачи решаются техническими методами.

Barbie29

вычисляй diff (man diff) между старыми и новыми данными, его далее и шли через сокет, прокинутый сквозь узкий канал...

KyKyPy3HuK

use timestamp

ava3443

berkeley
а если ещё учесть, что в ней как раз репликация появилась...
Оставить комментарий
Имя или ник:
Комментарий: