-
Разрабатывается СУБД на FireBird+Delphi+FibPlus. Будут задействованы SavePoints, поэтому повидимому без длинных транзакций не обойтись. Не исключены ситуации, когда транзакция стартует утром, а подтверждается вечером. База будет иметь объём несколько ГБ и будут одновременно работать до сотни пользователей. Чем грозит такая ситуация в связи с использованием длинных транзакций ? Главное - будет ли система работать стабильно ?
-
> [0] kudatsky (18.10.10 10:22)
> Главное - будет ли система работать стабильно ?
ИМХО главное - будет ли она вообще работать?
-
Она в общем то уже работает. Вполне стабильно. При 4-х или 5-х пользователях (тестировщиках) и при объёме 50 МБ. Вопрос - что будет при 100 пользователях ?
Главное - скажутся ли открытые транзакции на стабильности работы ?
-
> [2] kudatsky (18.10.10 10:30)
> Вопрос - что будет при 100 пользователях ?
Насколько я помню курс марксистско-ленинской философии - критерием истины является практика. 8-)
Ты на чем предлагаешь нам гадать - на гуще кофейной или какой то другой приблуде?
-
Я и задавал вопрос практикам. Любителей погадать прошу не беспокоиться ;-)))
-
> [4] kudatsky (18.10.10 10:40)
А в чем практика то? "Несколько ГБ" и "100 пользователей" - это по твоему почва для предположений? Ну, тогда 50/50 - либо будет либо нет. 8-)
-
> kudatsky (18.10.2010 10:22:00) [0]
В общем случае грозит коллапсом.
-
Не исключены ситуации, когда транзакция стартует утром, а подтверждается вечером.
и ты еще сомневаешься?
-
не будет
-
Да, если транзакция пишущая и
> Не исключены ситуации, когда транзакция стартует утром,
> а подтверждается вечером. База будет иметь объём несколько
> ГБ и будут одновременно работать до сотни пользователей.
>
то первая же попытка изменить данные ДРУГИМ пользователем приведет к ошибке...
-
У автора, по-видимому, весьма смутное представление о том, что есть "транзакция"
-
если каждый пользователь работает со своими данными, то проблем быть не должно, но тогда мне непонятен вообще этот подход
если же данные общие, то это гниль, попросту говоря
даже в случае "один пишет, остальные читают"
-
Прошу извинить за отсутствие - это было по независящим от меня причинам.
Хочу пояснить следующее: каждый пользователь работает только со своими строками. Для этого в специальное поле каждой используемой строки ставится признак занятости. Если строка занята, то другие пользователи могут только видеть её состояние до начала транзакции.
-
> [12] kudatsky (25.10.10 14:43)
А что вы этим всем пытаетесь достигнуть? Какова идея фикс сего предприятия? Если не секрет, что за предметная облать?
-
Это ГИС - географическая информационная система. Точнее - редактор схем электрических сетей. Редактируется поопорная схема линии электропередачи. Каждая опора ЛЭП ставится на карте (топографической основе) на своё родное место.
-
> Для этого в специальное поле каждой используемой строки
> ставится признак занятости. Если строка занята, то другие
> пользователи могут только видеть её состояние до начала
> транзакции.
Интересно. Но если строка изменилась, то хоть ты тресни, пока не подтвердишь транзакцию, остальные смогут только читать
-
> [14] kudatsky (25.10.10 15:07)
Ну и при чем тут транзакции на день?
Застолбил все нужные опоры за конкретным пользователем
> Для этого в специальное поле каждой используемой строки
> ставится признак занятости. Если строка занята, то другие
> пользователи могут только видеть её состояние
Точка.
а
> до начала транзакции.
зачем?
Если уж так важна целостность ВСЕХ опор сразу. Сделай копию заблокированных, отредактируй их, а потом шустренько замени оригиналы.
-
Признак занятости ставится перед использованием. Т.е. сначала проверяется, не использует ли эти строки кто другой. Потом в отдельной транзакции эти строки отмечаются. И уж потом стартует длинная транзакция для редактирования.
-
>Sergey13
Мысль неплохая. Но как при этом использовать точки сохранения ? Я хочу дать пользователю возможность отойти на пару шагов назад.
-
> [18] kudatsky (25.10.10 15:22)
Копии можно плодить. И убивать по мере надобности. Второе даже необходимо.