Вопросы с тегом «concurrency»

Для вопросов о проблемах, возникающих, когда несколько пользователей или процессов одновременно получают доступ или изменяют общую информацию в системе базы данных.

78
Postgres ОБНОВЛЕНИЕ ... LIMIT 1

У меня есть база данных Postgres, которая содержит подробную информацию о кластерах серверов, таких как состояние сервера («активный», «резервный» и т. Д.). Активным серверам в любой момент может потребоваться переключение на резервный режим, и мне все равно, какой резервный режим используется в...

35
Проблема с блокировкой при одновременном удалении / вставке в PostgreSQL

Это довольно просто, но я озадачен тем, что делает PG (v9.0). Начнем с простой таблицы: CREATE TABLE test (id INT PRIMARY KEY); и несколько строк: INSERT INTO TEST VALUES (1); INSERT INTO TEST VALUES (2); Используя мой любимый инструмент запросов JDBC (ExecuteQuery), я подключаю два сеансовых окна...

30
Как вы тестируете условия гонки в базе данных?

Я пытаюсь написать код базы данных, чтобы убедиться, что он не зависит от условий гонки, чтобы убедиться, что я заблокировал правильные строки или таблицы. Но я часто задаюсь вопросом: правильный ли мой код? Можно ли заставить какие-либо существующие расы проявить себя? Я хочу быть уверен, что если...

25
Управление параллелизмом при использовании шаблона SELECT-UPDATE

Допустим, у вас есть следующий код (пожалуйста, не обращайте внимания, что это ужасно): BEGIN TRAN; DECLARE @id int SELECT @id = id + 1 FROM TableA; UPDATE TableA SET id = @id; --TableA must have only one row, apparently! COMMIT TRAN; -- @id is returned to the client or used somewhere else На мой...

24
Могу ли я рассчитывать на чтение значений идентификаторов SQL Server по порядку?

TL; DR: вопрос ниже сводится к следующему: при вставке строки существует ли окно возможности между генерацией нового Identityзначения и блокировкой соответствующего ключа строки в кластеризованном индексе, где внешний наблюдатель может видеть более новую Identity значение, вставленное параллельной...

15
Читать частично обновленную строку?

Допустим, у меня есть два запроса, выполняющихся в двух отдельных сеансах в SSMS: Первая сессия: UPDATE Person SET Name='Jonny', Surname='Cage' WHERE Id=42 Вторая сессия: SELECT Name, Surname FROM Person WITH(NOLOCK) WHERE Id > 30 Возможно ли, что SELECTоператор мог прочитать половину...

13
Вставьте, если не существует, одновременно

У меня проблемы с параллелизмом при вставке в хранимую процедуру. Соответствующая часть процедуры такова: select @_id = Id from table1 where othervalue = @_othervalue IF( @_id IS NULL) BEGIN insert into table1 (othervalue) values (@_othervalue) select @_id = Id from table1 where othervalue =...

12
Высококонкурентная система хранения

Представьте, что вы требуете, чтобы у вас было 3 огромные таблицы (структурированные данные), скажем, по 30 миллиардов строк в каждой (общий размер 4 ТБ), и многим вашим одновременным пользователям (которые являются параллельными потоками os на машинах с удаленной локальной сетью) потребуется...

11
LATCH_EX ожидает ресурс METADATA_SEQUENCE_GENERATOR

У нас есть процесс, который генерирует отчет об инвентаризации. На стороне клиента процесс разбивает настраиваемое количество рабочих потоков для создания порции данных для отчета, которая соответствует одному хранилищу из многих (потенциально тысяч, обычно десятков). Каждый рабочий поток вызывает...

11
Блокировка в Postgres для комбинации UPDATE / INSERT

У меня есть две таблицы. Одним из них является таблица журнала; другой содержит, по сути, коды купонов, которые можно использовать только один раз. Пользователь должен иметь возможность использовать купон, который вставит строку в таблицу журнала и пометит купон как использованный (обновив...

11
Что происходит, когда мы добавляем индекс в существующую таблицу с большим объемом данных?

У меня есть таблица, которая будет содержать около 15 миллионов записей. Теперь мне нужно добавить индекс в таблицу. Добавление индекса займет некоторое время для обновления каждой записи в таблице. Я совершенно запутался, приведет ли добавление индекса к простоям. Если да, то как я могу преодолеть...

10
Использование нескольких ядер для отдельных запросов MySQL в Debian

Я использую сервер MySQL для тестирования на ВМ (VMWare) с Debian в качестве гостевой ОС. Гость имеет четыре эмулируемых ядра процессора, поэтому я установил для thread_concurrency значение четыре. Я выполняю дорогостоящие объединения на больших таблицах, что может занять несколько минут, но в...

10
Несоответствие в повторяемом чтении

http://www.postgresql.org/docs/9.2/static/transaction-iso.html Режим повторяемого чтения обеспечивает строгую гарантию того, что каждая транзакция видит полностью стабильное представление базы данных. Тем не менее, это представление не всегда будет соответствовать последовательному (по одному)...

10
Лучшая ситуация для использования READ UNCOMMITTED уровня изоляции

Как мы все знаем, READ UNCOMMITTED - это самый низкий уровень изоляции, при котором могут возникать такие вещи, как грязное чтение и фантомное чтение. Когда лучше всего использовать этот уровень изоляции и по каким причинам его можно использовать? На самом деле я читал ответы раньше, но я не мог...

10
PostgreSQL - если я запусту несколько запросов одновременно, при каких обстоятельствах я вижу ускорение? При каких обстоятельствах я бы увидел замедление?

Я смиренно отношусь к вам как к человеку, который НЕ является администратором баз данных, и я уверен, что мой вопрос чреват концептуальными недостатками и «зависит от» наземных мин. Я также уверен, что все, кто решит ответить, захотят гораздо большего в плане специфики, чем я могу предоставить в...

9
PostgreSQL одновременное увеличение счетчика

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

9
Поиск уровня изоляции по умолчанию в SQL Server 2017 и Azure SQL DB

Я читаю книгу, связанную с транзакциями и параллелизмом. В одном абзаце упоминается, что: В локальном экземпляре SQL Server уровнем изоляции по умолчанию является Read-Committed на основе блокировки И следующее предложение: По умолчанию в базе данных SQL - Чтение - зафиксированный снимок на основе...