Конференция "Базы" » Чем грозят длинные транзакции в FireBird ?
 
  • kudatsky (18.10.10 10:22) [0]
    Разрабатывается СУБД на FireBird+Delphi+FibPlus. Будут задействованы SavePoints, поэтому повидимому без длинных транзакций не обойтись. Не исключены ситуации, когда транзакция стартует утром, а подтверждается вечером. База будет иметь объём несколько ГБ и будут одновременно работать до сотни пользователей. Чем грозит такая ситуация в связи с использованием длинных транзакций ? Главное - будет ли система работать стабильно ?
  • Sergey13 © (18.10.10 10:24) [1]
    > [0] kudatsky   (18.10.10 10:22)
    > Главное - будет ли система работать стабильно ?

    ИМХО главное - будет ли она вообще работать?
  • kudatsky (18.10.10 10:30) [2]
    Она в общем то уже работает. Вполне стабильно. При 4-х или 5-х пользователях (тестировщиках) и при объёме 50 МБ. Вопрос - что будет при 100 пользователях ?
    Главное - скажутся ли открытые транзакции на стабильности работы ?
  • Sergey13 © (18.10.10 10:35) [3]
    > [2] kudatsky   (18.10.10 10:30)
    > Вопрос - что будет при 100 пользователях ?

    Насколько я помню курс марксистско-ленинской философии - критерием истины является практика. 8-)
    Ты на чем предлагаешь нам гадать - на гуще кофейной или какой то другой приблуде?
  • kudatsky (18.10.10 10:40) [4]
    Я и задавал вопрос практикам. Любителей погадать прошу не беспокоиться ;-)))
  • Sergey13 © (18.10.10 10:45) [5]
    > [4] kudatsky   (18.10.10 10:40)

    А в чем практика то? "Несколько ГБ" и "100 пользователей" - это по твоему почва для предположений? Ну, тогда 50/50 - либо будет либо нет. 8-)
  • Anatoly Podgoretsky © (18.10.10 11:33) [6]
    > kudatsky  (18.10.2010 10:22:00)  [0]

    В общем случае грозит коллапсом.
  • Медвежонок Пятачок © (18.10.10 13:18) [7]
    Не исключены ситуации, когда транзакция стартует утром, а подтверждается вечером.

    и ты еще сомневаешься?
  • Игорь Шевченко © (18.10.10 13:41) [8]
    не будет
  • Виталий Панасенко (18.10.10 15:32) [9]
    Да, если транзакция пишущая и
    > Не исключены ситуации, когда транзакция стартует утром,
    > а подтверждается вечером. База будет иметь объём несколько
    > ГБ и будут одновременно работать до сотни пользователей.
    >  

    то первая же попытка изменить данные ДРУГИМ пользователем приведет к ошибке...
  • MsGuns © (18.10.10 21:01) [10]
    У автора, по-видимому, весьма смутное представление о том, что есть "транзакция"
  • Правильный$Вася (19.10.10 18:28) [11]
    если каждый пользователь работает со своими данными, то проблем быть не должно, но тогда мне непонятен вообще этот подход
    если же данные общие, то это гниль, попросту говоря
    даже в случае "один пишет, остальные читают"
  • kudatsky (25.10.10 14:43) [12]
    Прошу извинить за отсутствие - это было по независящим от меня причинам.
    Хочу пояснить следующее: каждый пользователь работает только со своими строками. Для этого в специальное поле каждой  используемой строки ставится признак занятости. Если строка занята, то другие пользователи могут только видеть её состояние до начала транзакции.
  • Sergey13 © (25.10.10 14:56) [13]
    > [12] kudatsky   (25.10.10 14:43)

    А что вы этим всем пытаетесь достигнуть? Какова идея фикс сего предприятия? Если не секрет, что за предметная облать?
  • kudatsky (25.10.10 15:07) [14]
    Это ГИС - географическая информационная система. Точнее - редактор схем электрических сетей. Редактируется поопорная схема линии электропередачи. Каждая опора ЛЭП ставится на карте (топографической основе) на своё родное место.
  • Виталий Панасенко (25.10.10 15:14) [15]

    > Для этого в специальное поле каждой  используемой строки
    > ставится признак занятости. Если строка занята, то другие
    > пользователи могут только видеть её состояние до начала
    > транзакции.

    Интересно. Но если строка изменилась, то хоть ты тресни, пока не подтвердишь транзакцию, остальные смогут только читать
  • Sergey13 © (25.10.10 15:16) [16]
    > [14] kudatsky   (25.10.10 15:07)

    Ну и при чем тут транзакции на день?
    Застолбил все нужные опоры за конкретным пользователем

    > Для этого в специальное поле каждой  используемой строки
    > ставится признак занятости. Если строка занята, то другие
    > пользователи могут только видеть её состояние
    Точка.

    а

    > до начала транзакции.
    зачем?

    Если уж так важна целостность ВСЕХ опор сразу. Сделай копию заблокированных, отредактируй их, а потом шустренько замени оригиналы.
  • kudatsky (25.10.10 15:18) [17]
    Признак занятости ставится перед использованием. Т.е. сначала проверяется, не использует ли эти строки кто другой. Потом в отдельной транзакции эти строки отмечаются. И уж потом стартует длинная транзакция для редактирования.
  • kudatsky (25.10.10 15:22) [18]
    >Sergey13
    Мысль неплохая. Но как при этом использовать точки сохранения ? Я хочу дать пользователю возможность отойти на пару шагов назад.
  • Sergey13 © (25.10.10 16:06) [19]
    > [18] kudatsky   (25.10.10 15:22)

    Копии можно плодить. И убивать по мере надобности. Второе даже необходимо.
 
Конференция "Базы" » Чем грозят длинные транзакции в FireBird ?
Есть новые Нет новых   [134431   +15][b:0][p:0.001]