|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
kdv, Не ну и я все про нее же. Значит все-таки в четверке. Ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 23:56 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Vlad F, посередь минорных версий? Не, сейчас такое только у Интербэйза. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 23:59 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
kdv, А и причем здесь посередь, ди и еще при том минорных? Я ведь про в принципе. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 00:01 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Vlad FЕсли ты про новую сборку "новая сборка" - это 3.0.4, 3.0.5, 3.0.6... 4.0 - это не сборка, это версия. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 00:50 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
hvladkdvOAT - OIT это вообще фигня какая-тоВлияющая на размер активной части TIP, которую - копирует каждая snapshot тр-ция, а это память и IO - кеширует каждый процесс для read-committed тр-ций, а это тоже память - особенно для CS\SC Так штааа... я правильно понимаю, что каждый процесс классика хранит это состояние и синхронизирует при изменениях? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 06:48 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
kdvДегтярев Евгенийне силен в терминах, RC это read committed? http://www.ibase.ru/ibtrans/ Работать с БД и только догадываться что такое RC, это как-то ... сильно. а я и не утверждал такого, потому только догадываюсь )) kdvДегтярев Евгенийа разве по умолчанию транзакция не rc? при чем тут умолчания? я обрисовал как с TIP работают транзакции read committed и snapshot. Других транзакций в ИБ и ФБ нет. У ИБ и ФБ по умолчанию транзакция Snapshot (сюрприз). У IBX - тоже snapshot. У FIBPlus - read committed. Как у других компонентов - до лампочки, потому что я давно говорю, что "по умолчанию" транзакции использовать нельзя, надо явно задавать уровень изолированности, потому что он х.з. какой по умолчанию в каких компонентах. К примеру, RC "по умолчанию" в ИБ и ФБ no_rec_version (см. статью выше). про необходимость ручного управления я в курсе, потому и спросил про умолчания (спасибо за разъяснения) там где есть понимание и ручное управление - проблем как у ТС просто не будет, а где нет имеем то что получается ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 07:21 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Vlad F, есть ветка Red Database (не в курсе вошло ли это в последний их релиз или только экспериментальная) в которой реализован Read Statement Consistent для RC и промежуточная сборка мусора. Вроде как хотели портировать в 4.0. Где то была презенташка от Влада, если найду ссылку опубликую. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 08:52 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Дегтярев Евгенийhvladпропущено... Влияющая на размер активной части TIP, которую - копирует каждая snapshot тр-ция, а это память и IO - кеширует каждый процесс для read-committed тр-ций, а это тоже память - особенно для CS\SC Так штааа... я правильно понимаю, что каждый процесс классика хранит это состояние и синхронизирует при изменениях?Да ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 09:28 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Vlad F, если интересно вот та презенташка https://www.firebirdsql.org/file/community/conference-2016/statement-level-read-consistency.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 09:49 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Дегтярев Евгенийя правильно понимаю, что каждый процесс классика хранит это состояние и синхронизирует при изменениях? хранит - да, но "синхронизирует" - нет. Нечего там синхронизировать. При snapshot читается TIP от OIT до Next, и дальше всё - транзакция сама никак TIP не меняет, никакая. Еще раз - RC обращается к глобальному TIP, периодически, при проверке состояния транзакций у читаемых версий, на то она и read committed. Поэтому RC хранить у себя копию TIP незачем. А Snapshot делает себе "личную копию TIP" именно для того, чтобы не видеть ничьих чужих изменений, и "перечитывать TIP" ей без надобности. Так что, в общем, и у snapshot, да и у RC нет никакой "синхронизации TIP". А глобальный TIP (в базе) меняется только когда какая-то транзакция завершилась. кроме того, не "каждый процесс классика", а просто каждый коннект в любой архитектуре - CS, SC, SS. По потреблению памяти этот самый TIP влияет одинаково. Разница тут только в раздельном кэше БД у CS-SC и SS. p.s. либо объясните, что имеете в виду под "синхронизацией". Лично я тут её не усматриваю. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 10:07 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
kdvДегтярев Евгенийя правильно понимаю, что каждый процесс классика хранит это состояние и синхронизирует при изменениях? хранит - да, но "синхронизирует" - нет. Нечего там синхронизировать. Влад выше сказал обратное. авторПри snapshot читается TIP от OIT до Next, и дальше всё - транзакция сама никак TIP не меняет, никакая. Еще раз - RC обращается к глобальному TIP, периодически, при проверке состояния транзакций у читаемых версий , на то она и read committed. Поэтому RC хранить у себя копию TIP незачем. А Snapshot делает себе "личную копию TIP" именно для того, чтобы не видеть ничьих чужих изменений, и "перечитывать TIP" ей без надобности. Таких проверок на один запрос может быть миллион и чтобы это эффективно работало, надо чтобы эти данные были в памяти процесса. Для SS всё ништяк, все и так в одном процессе живут, для классика нужна копия в каждом. по крайней мере я себе это так представляю, пусть разработчики меня поправят авторТак что, в общем, и у snapshot, да и у RC нет никакой "синхронизации TIP". у транзакций нет, я говорил про процессы авторА глобальный TIP (в базе) меняется только когда какая-то транзакция завершилась. FB 2.5 classic, 4к соединений, получается при каждом комите надо TIP синхронизировать в 4к процессов. У меня нет данных по кол-ву транзакций в сек, но достаточно чтобы одна кривая апликуха, держащая OIT, поставила всю систему на колени. PS to hvlad: 1 синхронизация TIP синхронная? 2 синхронизируется весь TIP или как то более хитро? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 13:55 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
kdvVlad FЕсли ты про новую сборку "новая сборка" - это 3.0.4, 3.0.5, 3.0.6... 4.0 - это не сборка, это версия. Дмитрий! Я про новую сборку мусора . ))) Перечитай нашу с тобой переписку в данном контексте. А под "в принципе" имелось ввиду, в четверке или пятерке в принципе.) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 14:16 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Симонов ДенисVlad F, если интересно вот та презенташка https://www.firebirdsql.org/file/community/conference-2016/statement-level-read-consistency.pdf Спасибо, обязательно гляну в рабочем порядкке. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 14:18 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Дегтярев Евгений1 синхронизация TIP синхронная? 2 синхронизируется весь TIP или как то более хитро?TIP хранится в страницах БД, соответственно (часть TIP) кешируется и синхронизируется по тем же принципам, что и страницы БД. Если какая-то страница TIP не нужна процессу, то он её не использует и не "синхронизирует". При старте snapshot тр-ции читается активная часть TIP (OIT - Next). Есс-но, она может быть целиком или частично в страничном кеше. Тут нужно заметить, что если активная часть TIP часть велика, а страничный кеш - мал (привет, CS), то содержимое страничного кеша может быть вытеснено при старте snapshot тр-ции. Дополнительно есть кеш (активной части) TIP, используемый RC тр-циями совместно. Он обновляется когда тр-ция завершается (и изменяет своё состояние), или когда есть сомнения в актуальности кешированного состояния тр-ции. Отсюда ответы: 1. нет, не синхронная (т.е. все процессы не обновляют свой кеш в тот момент, когда кто-то что-то поменял) 2. как-то более хитро ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 14:31 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Дегтярев ЕвгенийВлад выше сказал обратное. ничего он обратного не сказал, см. его ответ ниже. Я специально умолчал про кэш, потому что этот механизм несколько сбоку в отношении пресловутой мифической "синхронизации TIP". Достаточно понять, что я именно написал, и прочитать хоть чуть-чуть как транзакции меняют свое состояние, и как отслеживают состояния других транзакций, чтобы перестать говорить про "синхронизацию". Может я нагнетаю, но мне кажется, что вы под синхронизацией представляете нечто другое, чем происходит на самом деле. Дегтярев Евгенийможет быть миллион и чтобы это эффективно работало, надо чтобы эти данные были в памяти процесса. за это отвечает КЭШ. Точно так же как и за синхронизацию изменений на страницах данных. Движок же в процессе работы транзакций и чтения версий ПРОВЕРЯЕТ состояния транзакций, либо из копии snapshot, либо из tip базы. Дегтярев Евгенийя говорил про процессы процессы дофига чего синхронизируют между собой через lock manager, например. Модификацию одной и той же страницы из разных транзакций, и т.д. Без "синхронизации" мульти-юзер доступ просто бы не работал. Дегтярев Евгенийполучается при каждом комите надо TIP синхронизировать в 4к процессов. вот не получается. При коммите движок записывает в TIP изменение состояния конкретной транзакции. Если другим RC-транзакциям надо проверить версию этой транзакции, то они прочитают измененную страницу с этим куском с диска. Snapshot транзакции будут проверять состояния других транзакций только в локальной копии, никто никуда лазить не будет, и синхронизировать тоже. авторно достаточно чтобы одна кривая апликуха, держащая OIT, поставила всю систему на колени. извините, но это полная ерунда. Во-первых, никакая аппликуха не держит OIT. OIT, в отличие от OAT, это давно завершившаяся роллбэком транзакция. Во-вторых, чем она "поставит систему на колени"? Если же тут перепутано, и имелось в виду OAT, так - надо для читающих использовать read read committed. Тогда никаких длинных OAT не будет. - не надо держать долго read write read committed в приложениях. Собственно, опять же, "на колени" - это когда дофига версий и старая OAT. Нет версий - нет тормозов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 15:06 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Vlad FЯ про новую сборку мусора. сборка мусора - это сборка мусора. А просто сборка - это не сборка мусора. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 15:07 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
огонь, kdv, hvlad, спасибо за разъяснения. авторЕсли же тут перепутано, и имелось в виду OAT, так - надо для читающих использовать read read committed. Тогда никаких длинных OAT не будет. - не надо держать долго read write read committed в приложениях. Собственно, опять же, "на колени" - это когда дофига версий и старая OAT. Нет версий - нет тормозов. конечно OAT авторДополнительно есть кеш (активной части) TIP, используемый RC тр-циями совместно. Он обновляется когда тр-ция завершается (и изменяет своё состояние), или когда есть сомнения в актуальности кешированного состояния тр-ции. А вот тут можно подробности услышать? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 09:49 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Дегтярев ЕвгенийавторДополнительно есть кеш (активной части) TIP, используемый RC тр-циями совместно. Он обновляется когда тр-ция завершается (и изменяет своё состояние), или когда есть сомнения в актуальности кешированного состояния тр-ции. А вот тут можно подробности услышать?Когда тр-ция завершается коммитом\роллбеком, её новое состояние пишется и на соотв. страницу TIP, и в кеш TIP. Когда read-committed тр-ция проверяет состояние какой-либо другой тр-ции, она первым делом спрашивает кеш TIP. Если кешированное состояние - финальное (committed или dead), то очевидно, что оно уже не может измениться и на этом процесс проверки завершён. Если кешированное состояние - не финальное (active или limbo), то делается попытка определить - жива ли данная тр-ция в данный момент. Если она жива, то состояние active, иначе читается соотв. страница TIP (при этом обновляется кеш TIP) и берётся свежее состояние. Кеш TIP обновляется сведениями о состоянии всех тр-ций на данной странице TIP "Живость" тр-ции определяется по возможности захватить её блокировку - если тр-ция жива, то она сама её держит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 10:53 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Дегтярев Евгений, на всякий случай - мне к последнему ответу hvlad добавить нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 13:21 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
kdvVlad FЯ про новую сборку мусора. сборка мусора - это сборка мусора. А просто сборка - это не сборка мусора. :-) Дмитрий, ты словодблуд. А кроме того, я вообще не к тебе тогда обращался, и настоящий адресат почему-то все понял правильно. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 14:53 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
Vlad F, я не словоблуд. Это проблема русского языка, что слово build - сборка и фраза "garbage collection" - сборка мусора - начинаются в русском языке с одного и того же слова. Поэтому для меня "сборка" не является "сборкой мусора", даже при разнице в одно сообщение. К тому же, речь шла в том числе про новую фичу ФБ 4, которую тоже можно назвать "сборкой". А насчет - "меня не спрашивали" - ну ок, не буду отвечать тогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 16:55 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
kdv> А насчет - "меня не спрашивали" - ну ок, не буду отвечать тогда. Дим, побереги бисер. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 17:02 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
А я думал, "сборка" - это складка на одежде. Типа "кофточка со сборками". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 17:10 |
|
Это ещё не конец?
|
|||
---|---|---|---|
#18+
WildSery> А я думал, "сборка" - это складка на одежде. А чего не сборка-разборка АК тогда? :) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 17:21 |
|
|
start [/forum/topic.php?fid=40&msg=39659039&tid=1561079]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 439ms |
0 / 0 |