172 похожих чатов

У меня новичковый вопрос - как две serializable транзакции (одна

меняет запись в таблице, другая выбирает оттуда записи) могут вызвать ошибку сериализации?

13 ответов

13 просмотров

Если одна только пишет, а другая только читает — по идее, нет.

Если есть партицыонирование и автосоздание партицый – возможно, что можэт.

Yan-Shkurinskiy Автор вопроса
Yaroslav Schekin
Но это DDL.

Так-то да, но замаскированный.

Yan-Shkurinskiy Автор вопроса

А вот в догонку - если две serializable транзакции меняют две разные строки, однако получаю ошибку сериализации [40001] ERROR: could not serialize access due to read/write dependencies among transactions Detail: Reason code: Canceled on identification as a pivot, during write. Можно пожалуйста пояснить почему нельзя так обновлять, хотя интуитивно строки разные и ничто не мешает им обновиться независимо

Yan-Shkurinskiy Автор вопроса
Yan Shkurinskiy
А вот в догонку - если две serializable транзакции...

Методом проб кажется понял что это write skew, т.к. на repeatable read оно уже не повторяется

Yan Shkurinskiy
А вот в догонку - если две serializable транзакции...

Это зависит ещё и от того, какие строки эти транзакцыи читали. Притом, дажэ не то, чтобы строки — а по каким условиям дажэ. И если например у одной получен вариант строки, которую вторая обновляет — а у второй получен вариант строки, которую обновляет первая — то сериализовать (выбрать такую последовательность, в которой одна транзакцыя идёт после другой) — не получится.

Yan-Shkurinskiy Автор вопроса
Ilya Anfimov
Это зависит ещё и от того, какие строки эти транза...

При апдейте в обоих транзакциях был where по уникальной колонке, для каждого запроса значение своё, не должны были строки пересечься (если я правильно понял) Кажется есть смысл глянуть как появляется write skew и что делатьс этим

Yan Shkurinskiy
При апдейте в обоих транзакциях был where по уника...

Вопрос не только "при апдейте" — а вообще во всей транзакцыи.

Yan-Shkurinskiy Автор вопроса
Ilya Anfimov
Вопрос не только "при апдейте" — а вообще во всей ...

Тогда не понял :( В транзакции вроде строк не читал никаких, в каждой транзакции чисто один апдейт

Yan Shkurinskiy
Тогда не понял :( В транзакции вроде строк не чита...

Покажыте текст апдэйта и определение таблиц – возможно, сможэм понять.

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Так а кто может спарсить всех участников чата? Идишники
Magic
17
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
13
Ребята, а из API геокодеров (по адресам в РФ) что сейчас актуального и есть ли среди актуального бесплатное/с нормаотным лимитом запросов? ситуация простая - на сайте периоди...
Dreamer_0x01 VeseloV
8
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Карта сайта