powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird "вешает" диск на 100% при записи в Win10
25 сообщений из 84, страница 3 из 4
Firebird "вешает" диск на 100% при записи в Win10
    #39365996
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержант чтобы мои датасеты вели внешне вели себя примерно так же, как и те, что я изучал когда-то (например, в связке Delphi BDE + Paradox).

это ты зря

Товарищ младший сержантСо всем остальным я буду разбираться потом (а может, и не буду разбираться), когда система начнет тормозить при старте, файл базы начнет разбухать и т.д.

а что начало тормозить или разбухать?
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39365998
Товарищ младший сержант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисТоварищ младший сержант чтобы мои датасеты вели внешне вели себя примерно так же, как и те, что я изучал когда-то (например, в связке Delphi BDE + Paradox).

это ты зря

Товарищ младший сержантСо всем остальным я буду разбираться потом (а может, и не буду разбираться), когда система начнет тормозить при старте, файл базы начнет разбухать и т.д.

а что начало тормозить или разбухать?

У меня лично нет. Вернее, к тому моменту, когда начало, я уже знал, отчего и что делать.
...
Я так, о мировой гармонии побухтеть вылез. :)
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39365999
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисдлинные транзакции RO RC не являются большой проблемой.У ТС не RC RO, т.к. RC RO не может быть OAT
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366001
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЯ сомневаюсь что в этом случае длинные RO RC будут такими же безобидными.В новой схеме снапшот будет создаваться для запроса\курсора, а не для RC тр-ции.
Т.е. RC тр-ция (любая RO\RW) сама по себе по-прежнему никак не влияет на OAT, а вот незакрытый курсор - очень даже.
Для snapshot (concurrency) тр-ций ничего не изменится
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366002
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВсе датасеты нынче - кэширующие. Другие фактически вымерли. Проблема в том, что идея
делать background fetch шокирует даже Влада, а кроме самого датасета никто не в состоянии
определить момент когда result set дофетчен и можно переходить в режим briefcase, закрывая
и курсор и транзакцию. Я уже не говорю о том, что все поголовно наследники FIBC
унаследовали его неспособность в этот режим переходить.


ну background fetch вовсе не обязателен. Пользователь может и подождать, а заодно и разработчики научатся не открывать в гридах по миллиону записей.

Когда я разбирался с FireDac там вполне можно было сделать FetchAll завершить транзакцию и перейти в режим briefcase. Причём это делалось довольно прозрачно.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366004
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисне проще ли это делать в кэширующие датасеты и завершать транзакцию?
Я как-то имел на эту тему разговор с Владом. И он сказал, что для девелоперов умолчательным был бы лучше автокоммит. Если уж транзакциями управлять не хотят (или не умеют), так пусть за них это делает сервер.
Собственно, не имею ничего против. Только вот исторически FreeIBComponents не делали fetchall при закрытии транзакции, а тупо убивали (а не обрубали) кэш. Зачем, почему - только Грегори Диц сможет ответить.
А после него - все копировали это поведение (точно так же как бездумно копировали умолчательный no_rec_version в драйверах).

С другой стороны, хорошо стартануть транзакцию, выполнить запрос, и потихоньку фетчить. Но если там N миллионов записей в перспективе, то FetchAll при Commit, ясное дело, вызовет разрыв шаблонов (мол, опять Firebird виноват). А если обрезать буфер по коммиту, то непонятно, что с ним делать если вдруг юзер решит ехать дальше, чем считано с сервера.

MS как-то пытается приучать, что либо FetchAll, либо никак (например, в dbExpress нет датасетов, зато есть абстрактный ClientDataSet). Но наследие прошлого висит на ноге тяжелой гирей.

Впрочем, выполнять запросы с клиента без старта транзакции сервер вполне может научиться. А там и до изменения поведения компонент недалеко.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366005
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПроблема в том, что идея
делать background fetch шокирует даже ВладаОпять звон... сетевой сервер делает фетч в фоне, но фетчит не весь поток, а только пока не заполнит пакет данных.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366010
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot hvlad
Опять звон... сетевой сервер делает фетч в фоне, но фетчит не весь поток, а только пока не
заполнит пакет данных.
[/quot]
Не надо видеть слово "сервер" там, где его нет. И слово "клиент" читать как "клиентская
библиотека" - тоже не надо. Background fetch это задача приложения (для ленивых -
библиотеки компонент).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366013
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladУ ТС не RC RO, т.к. RC RO не может быть OAT

Так речь уже не о ТС. Если бы Dimitry Sibiryakov не влез с осуждением концепции открытия одной длинной транзакций RO RC, то об этом никто бы и не заговорил.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366024
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержантсуществующее облако сведений о работе с FireBird провоцирует новичка начать работу не совсем правильно.
поясните, пожалуйста, ход неправильной мысли. Т.е. базовые сведения, и какие неправильные действия из них выводятся.
Насколько я в курсе, все неправильные выводы делаются либо на отсутствии базовых сведений, либо на их неверном понимании/прочтении.

Типа (все утверждения - либо сомнительные, либо неверные)
- надо делать backup/restore регулярно
- чтобы выключить сборку мусора, надо сделать gfix -housekeeping 0
- мусор попадает в бэкап
- версии возникают при чтении данных
- если мы стартуем читающую транзакцию (RW, которая ничего не пишет), то версии не накапливаются
и т.д.

У новичка, к сожалению, редко бывает задача разобраться, как это работает. Он думает что нечто работает "вот так", и пока ему по лбу не прилетит, он разбираться не начнет. Так что, не надо перекладывать с одной головы на другую.

p.s. еще один показательный пример - с "лишними" опциями бэкапа-рестора. Начинаешь спрашивать, нафига? - "так было до меня". Или - "я прочитал где-то, что надо так". Но где прочитал, и почему "надо так" - ответа нет.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366029
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисТак речь уже не о ТС.
как раз о ТС. :-) он показал, что есть OAT. и сказал, что это "читающая транзакция, с которой не должно быть проблем".
Из чего выходит, что у него вовсе не RO RC.
После чего меня начали обвинять, что я провоцирую на "длинные читающие", убеждая людей использовать для этого только RO RC, чего они почему-то не делают, следуя только рекомендации "длинных читающих". И понеслась...
:-)
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366039
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНе надо видеть слово "сервер" там, где его нетДвижку пофигу кто фетчит записи
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366044
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 13 декабря 2016 г. 18:04:19:

Kdv> И понеслась...я сейчас тоже наеду ;)
ЛЮБАЯ долгоиграющая транзакция - bad design.
не только в IB/FB - везде.
поясню свой опиньён:
даже если (применительно к IB/FB) это RC RO RV, такая транзакция
не даст консистентного чтения в реальных боевых условиях.
в системах чуть сложнее "палки-верёвки" нахер нужен такой отчёт (грубо говоря).
нужен срез - старт снапшота, полный фетч, коммит.
всё.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366052
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvпоясните, пожалуйста, ход неправильной мысли. Т.е. базовые сведения, и какие неправильные
действия из них выводятся.

Базовые сведения: твоя статья об управлении транзакциями. Из неё новичок выводит, что
длинная RORC транзакция - это хороший, правильный способ взаимодействия с базой, а не (как
следовало бы понять) workaround, позволяющий малой кровью обойти архитектурные косяки VCL
и FIBC-производных компонент в приложении с GUI на DB-aware control-ах.

В результате (как это сделал ТС) такую транзакцию лепят даже в ботов и фоновые сервисы,
где она совершенно ни к чему.

Это даже если бы ТС таки выбрал правильные параметры транзакции...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366055
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийЛЮБАЯ долгоиграющая транзакция - bad design.
не только в IB/FB - везде.
дык. Потому RO RC - это и есть "якобы транзакция". Сделали что могли на текущем движке.
Мимопроходящийтакая транзакция не даст консистентного чтения в реальных боевых условиях.
эээ. При чем тут снапшот? Ну даже если снапшот - раньше он один и был в InterBase, потом "враги" придумали RC.
Но длинные транзакции-то вылезли в компонентах.
Либо потеря кэша датасета после коммита, либо длинный TIBDatabase.DefaultTransaction, либо идиотское поведение компонент с автокомитом, которые тупо стартуют "дефолтную" транзакцию сразу после выполнения запроса и коммита. Нахрена они это делают НЕ перед выполнением запроса, я не знаю. В FIBPlus вообще умудрились для UpdateSQL/InsertSQL/DeleteSQL сделать длинную RW транзакцию с commitRetaining. Типа, апофеоз.

Вот потому и сделали RO RC, чтобы хоть как-то уменьшить вред от длинных транзакций. И для отчетов ее никто не предлагал.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366056
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovИз неё новичок выводит, что длинная RORC транзакция - это хороший, правильный способ взаимодействия с базой
тут согласен, я вообще собирался несколько статей с тематикой транзакций, версий и мусора переделать (местами). Сам читаю, и вижу, что кривовато написано.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366058
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 13 декабря 2016 г. 18:28:55:

Kdv> Вот потому и сделали RO RC, чтобы хоть как-то уменьшить вред от длинных транзакций.
хотели как луче,
а вышло как всегда.

(с) В.С.Черномырдин
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366063
Товарищ младший сержант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv...В FIBPlus вообще умудрились для UpdateSQL/InsertSQL/DeleteSQL сделать длинную RW транзакцию с commitRetaining...
?
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366144
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержант?
ну здрасьте. По крайней мере было такое, по умолчанию. у pFIBDataSet две транзакции, чтения и записи. И на запись было по дефолту CommitRetaining. Я уж и не помню, что мне ответили, когда я спросил "а что это за ужас".
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366163
Товарищ младший сержант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvТоварищ младший сержант?
ну здрасьте. По крайней мере было такое, по умолчанию. у pFIBDataSet две транзакции, чтения и записи. И на запись было по дефолту CommitRetaining. Я уж и не помню, что мне ответили, когда я спросил "а что это за ужас".

Будем считать, что ты забыл.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366172
Товарищ младший сержант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержантkdvпропущено...

ну здрасьте. По крайней мере было такое, по умолчанию. у pFIBDataSet две транзакции, чтения и записи. И на запись было по дефолту CommitRetaining. Я уж и не помню, что мне ответили, когда я спросил "а что это за ужас".

Будем считать, что ты забыл.

CommitRetainig для датасета (TpFIBDataSet) в FibPlus выполняется:
- когда включен режим автокоммита
и
(
- когда для датасета транзакция одна и та же для чтения и для изменений
- либо -
- когда для этой единственной транзакции TimeoutAction = TACommitRetaining
)
...
Для TpFIBQuery выполняется автоматический CommitRetainig, когда:
- когда включен режим автокоммита
- когда для его транзакции TimeoutAction = TACommitRetaining
...
...
Для TpFIBDataBase похоже условия, при ApplyUpdates и "перед дисконнектом".
...
...

Считать такой режим "умолчанием" как бы не совсем справедливо, не? Чтобы он заработал, нужно все же произвести кое-какие движения.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366204
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержантCommitRetainig для датасета (TpFIBDataSet) в FibPlus выполняется:
- когда включен режим автокоммита
ну и? это хорошо, что-ли?
Товарищ младший сержантСчитать такой режим "умолчанием" как бы не совсем справедливо, не?
в ФИБплюсе многие умолчания время от времени менялись. Например pFIBDatabase.SynchronizeTime по умолчанию True. Че, здорово, когда вдруг в приложении время с сервера устанавливается?
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366221
Товарищ младший сержант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvТоварищ младший сержантCommitRetainig для датасета (TpFIBDataSet) в FibPlus выполняется:
- когда включен режим автокоммита
ну и? это хорошо, что-ли?
Товарищ младший сержантСчитать такой режим "умолчанием" как бы не совсем справедливо, не?
в ФИБплюсе многие умолчания время от времени менялись. Например pFIBDatabase.SynchronizeTime по умолчанию True. Че, здорово, когда вдруг в приложении время с сервера устанавливается?
Ну при чем тут теперь SynchronizeTime.
Ты практически не знаешь FIB+, но периодически наезжаешь.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366256
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержантНу при чем тут теперь SynchronizeTime.
Ты практически не знаешь FIB+, но периодически наезжаешь.
при том, что это "неожиданное умолчательное поведение". А наезжаю я потому, что кроме этого есть и другие внезапно неожиданные поведения, умолчательные или нет.
Например, почему автокоммит должен завершаться по commitretaining, если уже фиг знает сколько времени как этот режим не рекомендуется?

p.s. FIBPlus я использую, но копаться в нем приходится только тогда, когда что-нибудь работает не так, как ожидалось. Или когда у компонент "слишком много ума". Меня не особо интересуют фишки FIBPlus, которые только запутывают или скрывают представление разработчика о том, как работает его программа.
...
Рейтинг: 0 / 0
Firebird "вешает" диск на 100% при записи в Win10
    #39366278
Товарищ младший сержант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv...
Например, почему автокоммит должен завершаться по commitretaining, если уже фиг знает сколько времени как этот режим не рекомендуется?
...
Я фигею с вас. Выше описал условия, когда CommitRetaining происходит, что тут непонятного?
Как еще должно быть? Ну, скажи, что будет с открытыми датасетами, когда транзакция одна, и эта транзакция завершится по Commit.
...
Рейтинг: 0 / 0
25 сообщений из 84, страница 3 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird "вешает" диск на 100% при записи в Win10
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]