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

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

1
Postgres ОБНОВЛЕНИЕ ... LIMIT 1
У меня есть база данных Postgres, которая содержит подробную информацию о кластерах серверов, таких как состояние сервера («активный», «резервный» и т. Д.). Активным серверам в любой момент может потребоваться переключение на резервный режим, и мне все равно, какой резервный режим используется в частности. Я хочу, чтобы запрос к базе данных …

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

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

3
Управление параллелизмом при использовании шаблона 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 …

6
Могу ли я рассчитывать на чтение значений идентификаторов SQL Server по порядку?
TL; DR: вопрос ниже сводится к следующему: при вставке строки существует ли окно возможности между генерацией нового Identityзначения и блокировкой соответствующего ключа строки в кластеризованном индексе, где внешний наблюдатель может видеть более новую Identity значение, вставленное параллельной транзакцией? (В SQL Server.) Подробная версия У меня есть таблица SQL Server с …


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

3
Вставьте, если не существует, одновременно
У меня проблемы с параллелизмом при вставке в хранимую процедуру. Соответствующая часть процедуры такова: 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 = @_othervalue END Когда мы запускаем 3 …

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

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

1
Блокировка в Postgres для комбинации UPDATE / INSERT
У меня есть две таблицы. Одним из них является таблица журнала; другой содержит, по сути, коды купонов, которые можно использовать только один раз. Пользователь должен иметь возможность использовать купон, который вставит строку в таблицу журнала и пометит купон как использованный (обновив usedстолбец до true). Естественно, здесь есть очевидная проблема состояния …

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

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

1
Помещение оператора Select в транзакцию
В чем разница между этими 2 запросами: START TRANSACTION; SELECT * FROM orders WHERE id=1; UPDATE orders SET username='John' WHERE id=1; COMMIT; И без транзакции: SELECT * FROM orders WHERE id=1; UPDATE orders SET username='John' WHERE id=1; Каков эффект от SELECTвнутренней транзакции? Если DELETE FROM orders WHERE id=1был вызван из …

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.