|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
YuRockТак, одну неразрешимую проблему вроде решили :), осталось научиться делать НЕ_ReadConsistency транзакции при настройках в конфе по умолчанию :) нет уж подожди. Я твой тест повторил и да тоже не заметил что промежуточная сборка мусора работает. Хотя судя по описанию она должна была сработать. Поэтому хочется прояснить ситуацию у Влада. Видимо я что-то не понимаю Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
пока приложение работало запускал получение статистики по таблицы и длина цепочки версий всё время увеличивалась ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:34 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Симонов Денисдлина цепочки версий всё время увеличивалась Уверен? Приведённый код не создаёт цепочку версий. Он создаёт кучу записей с ровно двумя версиями у каждой, которые никто не собирает в результате отсутствия чтения. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:40 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Ишь, какие круги по воде-то пошли... Я-то думал - все давно всё знают и просто похихикают над старцем, понимающем по отдельности слова read_commited, concurrency и consistency в смысле уровней изоляции и растерянно уставившимся, как баран на новые ворота, на их сочетание, пытаясь представить себе плод греховной связи ужа с ежом. Тынц почитал, не могу сказать что всё здорово понял. Как оказалось, я, к стыду своему, умудрился ещё и забыть английский, то есть, хоть большинство слов и знакомые, утрачена чуйка концепта построения фраз и смысл улавливается с трудом. Посему от комментариев насчёт что такое хорошо и что такое плохо пока воздержусь. Вообще-то наша любимая RC RO, которую бабушка Аня научила стартовать в состоянии commited, от рождения попахивала хаком. А с хаками надо держать ухо востро и ожидать неожиданных сюрпризов, так что какие-то телодвижения к более стройной концепции были в общем-то ожидаемы. Но по прочтении случившейся беседы у меня возникло устойчивое убеждение, что название Firebird 4 тут не годится, надо придумывать какое-то совсем другое птичье имя. Во избежание иллюзий. Потому что вот с этим ъъъъъ Это же полный п....ц, применительно, например к старым приложениям на дельфи с ibx/fib+, разве нет? YuRock В общем, ... , переход на 4-ку невозможен (только для совершенно новых проектов, коих в моей жизни вряд ли предвидится). полностью согласен. Тут надо сначала перевести своё собственное сознание на другие рельсы, разбить вдребезги стереотип, складывавшийся десятилетиями, разработать собственную архитектурную концепцию, довести её до стереотипа и потом перетрахивать всё что нажито непосильным трудом. То есть, фактически сделать его заново с нуля. Ткнулся вот сейчас на рабочем столе в иконку (можете начинать смеяться) FARа, наступил на каталог с текстами пятилетней несвежести (с моего ухода на пенсию) пятка основных приложений, трёхзвенки отдельно проживают. 3700 файлов и 100 мегабайт. От этих приложений у Дельфового линкера крышу срывает, собираются только из командной строки и обязательно предварительно перекрестясь. И вот это всё перетрахать? Концептуально-архитектурно? Ну-ну. Мимопроходящий Fr0sT-Brutal пропущено... У вас можно сколько угодно, а компоненты не умеют сохранять датасеты при закрытой транзакции. один мягко говоря, организм, захреначил такое поведение в изначальный FIB, а все последующие компонентостроители посчитали что раз сам отЭц (Deatz) сделал именно так, то это есть божественный канон, и менять оное - идти супротив божественного. зы: у нас это настраивается. Брателло, не плюй в колодец Гришаня когда это родил-то? Когда скорости в LAN меряли в Кбайт/сек, в модемах в Кбит/сек, а объёмы ОЗУ в сотнях Кбайт. И отошёл в сторонку. На эту концепцию датасета чуть только не молились после Borland Pascal и всяких Record Manager-ов, когда каждую строку приходилось собирать десятком реквестов к разным таблицам. А последователям надо было бабло зарабатывать, и сегодня, а не в светлом будущем. С развитием железа потребовалось и развитие концепций, выразившееся, не полностью уверен, что к добру, в TClientDataset. Мой первый опыт с ним, где-то на границе емелиумов, на действительно дальней связи - комплект справок о состоянии запасов-заказов-резервов-ценах - в каком-нибудь Челябинске-Иркутске из Питера грузился 40 минут. И это я ещё не центровые запросы туда вставил, а засасывал справочники и собственно данные по отдельности и джойнил на клиенте, локейтами. На данные уходило минуты полторы, остальное - строковые литералы. Пришлось их таки перевести на репликацию. Да и сейчас - в запросах для клиента директора фабрики козлов жёстко зашиты ограничения по дате, на полгода вроде, чтоб старые данные не тащить десятками минут и у ноута его из щелей байты не посыпались :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:41 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, стоп. DELETE делает чтение, там же WHERE нет. Он должен был всё прочитать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:43 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Симонов Денис, Это не мой тест, а ъъъъъ. А по поводу Consistency - блин, ну ничего ж сложного нет добавить константу no_read_consistency, по аналогии с recversion/norecversion. У меня тысячи установок FB. Менять/контролировать конфы везде - это практически нереально. Гораздо проще в одном месте в своей программе, где я транзакции создаю по типам, которые мне нужны, необходимые мне константы жёстко прописать и не зависеть от конфигов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:44 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Симонов Дениспо идее delete и должен был собрать как это? при delete остается 1 старая версия и 1 delete stub. Кто их будет убирать? При update все гораздо проще, он читает и убирает. А delete конкретной записи - это финальная операция. Второй раз delete не сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:45 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Симонов ДенисDELETE делает чтение, там же WHERE нет. Теоретически да. Возможно, обрамляющая транзакция Read Committed портит всю малину. Поменяй на Snapshot. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:47 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
kdv Симонов Дениспо идее delete и должен был собрать как это? при delete остается 1 старая версия и 1 delete stub. Кто их будет убирать? При update все гораздо проще, он читает и убирает. А delete конкретной записи - это финальная операция. Второй раз delete не сделать. а ты повнимательней посмотри. Там DELETE перевыполняется 100500 раз. Да первый удалит предыдущую версию, но когда следующий запустится он уже прочитает delete stub от предыдущего в этот момент по идее должна сработать сборка мусора ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:48 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Симонов Денис не заметил что промежуточная сборка мусора работает В твоём примере delete не собирает мусор, т.к. tra1 удерживает OST и блокирует традиционную сборку мусора, а промежуточная тут не применима. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:48 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
hvlad, хах. Спасибо, вот теперь понял в чём дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:51 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Старый плюшевый мишка, не надо паники :) Всё может работать как и раньше. Read Consistency установлен в 1 по умолчанию для того, чтобы новые юзеры сразу работали правильно. Предполагается, что старые юзеры в состоянии проверить свои приложения и изменить пар-р в конфиге. Мы многого от них ждём ? PS исходный патч Николая не имел этой возможности и мне пришлось с ним долго спорить, дабы это добавить. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:54 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
hvlad Предполагается, что старые юзеры в состоянии проверить свои приложения и изменить пар-р в конфиге. Мы многого от них ждём ? А вот конфиги править везде - да, многого ждете ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:56 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
YuRock А по поводу Consistency - блин, ну ничего ж сложного нет добавить константу no_read_consistency YuRock У меня тысячи установок FB. Менять/контролировать конфы везде - это практически нереально. Гораздо проще в одном месте в своей программе, где я транзакции создаю по типам, которые мне нужны, необходимые мне константы жёстко прописать и не зависеть от конфигов. Или можно при запуске программы стартовать RC RV тр-цию и проверить её реальный тип. Не совпало - ругайся и проси изменить конфиг. Вариантов много. Сидеть на старье и ворчать на всё новое - тоже вариант, но других не надо заставлять. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:57 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
YuRock При чем тут проверить приложения. притом, чтобы панику не поднимать в отсутствие объективных причин ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 15:58 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
YuRock, лично моё мнение. Конфигурировать Firebird надо всегда. Параметры по умолчанию практически никогда не подходят. Только не говори, что ты размер страничного кеша дефолтным оставляешь. Это только для совсем мизерных баз так можно. Но для них весь плач про сборку мусора не актуален ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:00 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Симонов Денисно когда следующий запустится он уже прочитает delete stub от предыдущего это если кто-то вздумает повторно удалять одни и те же записи. Да, индекс видит все версии, по индексу прочитается, и всё будет ок. А вот если сегодня мы удаляем только за сегодня, а завтра - только за завтра? Никаких повторных удалений или попаданий в ключи не будет. И весь этот мусор так и будет валяться, до тех пор пока sweep не запустится (автоматом или вручную). Опять же, чтобы быть на 100% уверенным, надо сделать тест :-) Но правильный тест :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:07 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
hvlad Старый плюшевый мишка, не надо паники :) Всё может работать как и раньше. Read Consistency установлен в 1 по умолчанию для того, чтобы новые юзеры сразу работали правильно. Предполагается, что старые юзеры в состоянии проверить свои приложения и изменить пар-р в конфиге. Мы многого от них ждём ? PS исходный патч Николая не имел этой возможности и мне пришлось с ним долго спорить, дабы это добавить. Ты маладэц, слюшай! Я эту портянку начал набирать до постов про конфиг, ближе к концу электрик ток украл (у нас в подъезде счётчики меняют), пришлось с квадратным матом колотить второй раз, естественно, новое не читая. Единственно что смущает - такие опции в конфиге рано или поздно становятся deprecated. Меня, впрочем, это колыхать уже не должно, честно говоря, даже уже не колышет, я как Верещагин, за державу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:08 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
hvlad с isc_dpb_config ты можешь задать и ReadConsistency = 0 Ну тогда ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:10 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
kdv, да я то разобрался в чём дело. Просто цепочка версий всегда равна 2 в данном случае промежуточную сборку мусора не возможно сделать. Собственно говоря сама идея грохать записи и тут же их добавлять реального смысла не имеет. Для таких случаев есть GTT ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:13 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Симонов Денис YuRock, лично моё мнение. Конфигурировать Firebird надо всегда. Параметры по умолчанию практически никогда не подходят. Только не говори, что ты размер страничного кеша дефолтным оставляешь. Это только для совсем мизерных баз так можно. Но для них весь плач про сборку мусора не актуален 99% моих баз - мизерные. Их таких несколько тысяч, все кроме центральных, которых только десятки. И да, для мизерных конфиги - дефолтные. Но вопрос сборки мусора для них - очень актуален. Любая база, даже мизерная, стать колом вполне способна, и обязательно всегда делает это, если оставлять длинную пишущую транзакцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:14 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
YuRockЛюбая база, даже мизерная, стать колом вполне способна, и обязательно всегда делает это, если оставлять длинную пишущую транзакцию. Тут необходимо-таки уточнить, что способна она встать колом только с очень и очень кривым дизайном БД и ещё более кривым приложением. Во избежание неверных толкований случайно сюда залетевшими из гугля. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:18 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov YuRockЛюбая база, даже мизерная, стать колом вполне способна, и обязательно всегда делает это, если оставлять длинную пишущую транзакцию. Тут необходимо-таки уточнить, что способна она встать колом только с очень и очень кривым дизайном БД и ещё более кривым приложением. Во избежание неверных толкований случайно сюда залетевшими из гугля.Вполне достаточно просто висящей пишущей транзакции. Ну, кроме довольно редких случаев, когда не бывает DELETE/UPDATE и/или ROLLBACK. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:21 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
YuRockВполне достаточно просто висящей пишущей транзакции. Нет, не достаточно. Постулат дизайна номер 1: База данных предназначена для длительного хранения редко меняющихся данных. Для краткосрочного хранения быстро меняющихся данных применяются совсем другие средства. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:34 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov YuRockВполне достаточно просто висящей пишущей транзакции. Нет, не достаточно. Постулат дизайна номер 1: База данных предназначена для длительного хранения редко меняющихся данных. Для краткосрочного хранения быстро меняющихся данных применяются совсем другие средства. У тебя в родословной случаем греческой ветки нет? Был там у них один мужик, вроде Прокрустом звали ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:37 |
|
ANN Выпущен Firebird 4!
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov YuRockВполне достаточно просто висящей пишущей транзакции. Нет, не достаточно. Постулат дизайна номер 1: База данных предназначена для длительного хранения редко меняющихся данных. Для краткосрочного хранения быстро меняющихся данных применяются совсем другие средства.Quia tuum est regnum, et potestas, et gloria in saecula. Amen. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:48 |
|
|
start [/forum/topic.php?fid=40&msg=40118171&tid=1559839]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 163ms |
0 / 0 |