|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
msLex Достаточно один раз читающей мастер транзакции добраться до мастер таблици первой, и в блркировочном режиме мы получим все теже проблемы. Если требуется синхронизировать чтение из мастера и запись в детейл, нужно повышать читающую мастер транзакцию до RR не нужно ничего менять, нужно понять, что пример иллюстрирует. нужно осознать, что при переключении поведение транзакций кардинально изменится. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 12:46 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
alexeyvg, авторДа, нужно потратить ресурсы на tempdb, и что такого? На производстве существуют планы закупки оборудования, причем на следующий год. Как, например, оценить затраты на рост tempdb, существуют ли какие-то способы оценки? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 12:46 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
H5N1 msLex Достаточно один раз читающей мастер транзакции добраться до мастер таблици первой, и в блркировочном режиме мы получим все теже проблемы. Если требуется синхронизировать чтение из мастера и запись в детейл, нужно повышать читающую мастер транзакцию до RR не нужно ничего менять, нужно понять, что пример иллюстрирует. нужно осознать, что при переключении поведение транзакций кардинально изменится. Да, только ваш пример отлично демонстрирует, что в большинстве случаев "проблемы" при переходе на RCSI вызваны изначальными ошибками в проектировании, и те же проблемы возможны и при блокировочном RS. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 12:54 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
H5N1 msLex Достаточно один раз читающей мастер транзакции добраться до мастер таблици первой, и в блркировочном режиме мы получим все теже проблемы. Если требуется синхронизировать чтение из мастера и запись в детейл, нужно повышать читающую мастер транзакцию до RR не нужно ничего менять, нужно понять, что пример иллюстрирует. нужно осознать, что при переключении поведение транзакций кардинально изменится. Да, речь о том, что если в криво написанной логике все работало из-за блокировок по стечению обстоятельств то, в этом случае, процессы сломаются. О чем я писал выше: "Нельзя вот так просто перейти на RCSI" без полной, трудозатратной ревизии кода и рефакторинга + аппаратные затраты. Писать с учетом RCSI и планировать "железо" надо с первой строчки продукта. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 12:56 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
Однако, если бы MS устроили так, что RCSI можно было бы включить хинтом или SET настройкой, при том, что для остального кода RC остался при включение RCSI для базы, то проблем не было бы. Можно было предусмотреть два режима - активный, когда все запросы обрабатываются с версиями и пассивный, когда только указанные запросы так обрабатываются. Вот это был бы коммерческий подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 13:01 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
H5N1 нужно осознать, что при переключении поведение транзакций кардинально изменится. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 13:11 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
Владислав Колосов Да, речь о том, что если в криво написанной логике все работало из-за блокировок по стечению обстоятельств Владислав Колосов Писать с учетом RCSI и планировать "железо" надо с первой строчки продукта. А вы и адаптатор никак не можете этого понять. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 13:28 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
Владислав Колосов Однако, если бы MS устроили так, что RCSI можно было бы включить хинтом или SET настройкой ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 13:32 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
H5N1 SET ALLOW_SNAPSHOT_ISOLATION ON не обязывает переключать RC в RCSI. Ну и пример не засчитан, ибо не показывает требуемое. На будущее: прежде чем надувать щеки - внимательно читай, что тебе пишут. На этом я с тобой прощаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 16:51 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
invm, такой сценарий разве не приведет к ошибке? 1 процесс: UPDATE SET f1 = 'a' WHERE ... f1 = 'b' 2 процесс: IF NOT EXISTS (SELECT * FROM ... WHERE f1='a') INSERT ... 'a' где f1 уникально. Второй процесс при RCSI прочитает 'b' и попытается вставить 'a', но первый процесс также будет обновлять на 'a'. В случае RC 2 процесс при выполнении SELECT будет заблокирован до обновления 'b' на 'a'. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 17:49 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
invm Владислав Колосов Однако, если бы MS устроили так, что RCSI можно было бы включить хинтом или SET настройкой Относительно READCOMMITTEDLOCK я размышлял, однако, оснащать 99% таблиц таким хинтом не хочется. Однако, я увидел, что при подключении реплики доступности AlwaysON сервер начинает резервировать 14 байт в строках, если реплика включена в режиме чтения. Надо подумать на возможностью включения RCSI, поскольку реплику не так давно включили. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 17:56 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
Владислав Колосов такой сценарий разве не приведет к ошибке? Но если на RC поменять процессы местами, получите такую же ошибку. Просто вы рассуждаете не в контексте TIL, а в контексте специфики реализации этого TIL через блокировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 18:54 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
Владислав Колосов alexeyvg пропущено... Да, отлично, "просто не дождались". Если эффективный менеджер приказывает корячить галочку в настройках, а потом через 3 часа корячит обратно, "не шмогла"(с), то цирк не в RCSI, цирк в организации. Не думаю, что это верный подход к определению, на производстве сферические кони никого не интересуют и в боевой обстановке меткость оружия снижается на порядок и больше. Технология классная, только внедрить ее нельзя без плясок с бубном и неожиданными последствиями. Вы же покупаете автомобиль с уверенностью, что он заведется и поедет. не так ли? Это коммерческий продукт и работать он должен соответственно. И что? А 10 тонный кран должен поднимать 100 тонн, и на жигули можно нагрузить как на товарный поезд? На производстве сферические кони никого не интересуют, там покупают продукт, и эксплуатируют его согласно его назначению, посредством найма умеющего специалиста, а не так, что бы менеджер согнал бы крановщика, и стал бы тянуть с 10 кратным перевесом. Это физика, против не попрёшь, называй "цирком" или не называй. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 19:54 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
invm На будущее: прежде чем надувать щеки - внимательно читай, что тебе пишут. transaction 1 Код: sql 1. 2.
transaction 2 Код: sql 1. 2. 3. 4.
на RC isAllowed=0 гарантирует пустоту в detail_table, на RCSI же будет хрень (tm). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 22:05 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
hck2 на RC isAllowed=0 гарантирует пустоту в detail_table, на RCSI же будет хрень (tm). Как получить хрень (tm) на блокировочном RC. Пошаговая инструкция.1. Подготовка таблиц и данных Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
2. Открываем новое соединение и выполняем Код: sql 1. 2. 3. 4. 5. 6. 7.
3. Открываем новое соединение и выполняем Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
4. Открываем новое соединение и выполняем Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
5. В соединении из п.2 выполняем commit 6. Любуемся хренью (tm) Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2020, 12:44 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
invm, безусловно можно говнокодить, так что не будет работать ни в RC ни RCSI. но ты хотел пример который работает на RC и хрень на RCSI ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2020, 14:45 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
alexeyvg Владислав Колосов пропущено... Не думаю, что это верный подход к определению, на производстве сферические кони никого не интересуют и в боевой обстановке меткость оружия снижается на порядок и больше. Технология классная, только внедрить ее нельзя без плясок с бубном и неожиданными последствиями. Вы же покупаете автомобиль с уверенностью, что он заведется и поедет. не так ли? Это коммерческий продукт и работать он должен соответственно. И что? А 10 тонный кран должен поднимать 100 тонн, и на жигули можно нагрузить как на товарный поезд? На производстве сферические кони никого не интересуют, там покупают продукт, и эксплуатируют его согласно его назначению , посредством найма умеющего специалиста, а не так, что бы менеджер согнал бы крановщика, и стал бы тянуть с 10 кратным перевесом. Это физика, против не попрёшь, называй "цирком" или не называй. Спасибо,- поржал!: нынешним утром напряг сразу двух человек увидев в рабочей базе адский триггер с курсором. Ну вот так "сложилось",- и всё тут. И ведь нормально работает уже полгода как В общем, у коллег выходные "незадались",- но они об этом пока не догадываются... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2020, 15:23 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
hck2 безусловно можно говнокодить, так что не будет работать ни в RC ни RCSI Твой пример и есть такой говнокод, что и было продемонстрировано. А то, что ты не понял как и почему это происходит - так это твои проблемы - учи матчасть. Или вежливо попроси объяснить. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2020, 15:29 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
Ах, мечты об идеальном коде, который учитывает возможность существования RCSI сейчас и тем более учитывал это в 2010ish году. Вот бы весь SQL код писали только профессионалы... Как же жестоко устроен мир, что всякие там... пейзане... фи... пишут код, который, при включении RCSI меняет свое поведение! *упал в обморок* *пришел в себя* А если подумать... не все так идеально в мире SQL, да и в принципе, экспертные знания SQL сами не приносят счастья, тем более, когда надо вот так, с переходами на ты ... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2020, 21:05 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
PizzaPizza Ах, мечты об идеальном коде, который учитывает возможность существования RCSI Не надо учитывать существование RCSI или еще какой-нибудь реализации TIL RC. Надо просто правильно писать под этот самый TIL RC. И это должно быть требованием, иначе обязательно будут сюрпризы, именуемые "хренью". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2020, 11:31 |
|
Размещение БД в оперативной памяти с асинхронной записью на диск(без потери данных)
|
|||
---|---|---|---|
#18+
invm Владислав Колосов такой сценарий разве не приведет к ошибке? Но если на RC поменять процессы местами, получите такую же ошибку. Просто вы рассуждаете не в контексте TIL, а в контексте специфики реализации этого TIL через блокировки. Это да. Есть такие неудачные решения, которые работают если не с использованием багов, то фич. А когда баг исправляют, решение перестаёт работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 11:37 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1685836]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 165ms |
0 / 0 |