Запитання з тегом «concurrency»

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

1
ОНОВЛЕННЯ постгресів… ГРАНИЦІ 1
У мене є база даних Postgres, яка містить відомості про кластери серверів, такі як стан сервера ("активний", "очікування" тощо). Активним серверам в будь-який час може знадобитися перехід на режим очікування, і мені все одно, який режим очікування використовується зокрема. Я хочу, щоб запит до бази даних міг змінити стан очікування …

5
Проблема з блокуванням паралельних DELETE / INSERT в PostgreSQL
Це досить просто, але мене бентежить те, що робить PG (v9.0). Почнемо з простої таблиці: CREATE TABLE test (id INT PRIMARY KEY); і кілька рядів: INSERT INTO TEST VALUES (1); INSERT INTO TEST VALUES (2); Використовуючи мій улюблений інструмент запитів JDBC (ExecuteQuery), я підключаю два вікна сеансу до db, де …

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


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


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

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 Коли ми запускаємо …

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

1
Що відбувається, коли ми додаємо індекс до існуючої таблиці з великою кількістю даних?
У мене є таблиця, яка містить близько 15 мільйонів записів. Тепер мені потрібно додати індекс до таблиці. Додавання індексу потребує певного часу, щоб оновити кожен запис у таблиці. Я дуже розгублений, чи додавання індексу спричинить простої. Якщо так, то як я можу подолати простої?

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

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

6
Найкраща ситуація, щоб використати ЧИТАЙТЕ НЕЗАБАВЛЕНО рівень ізоляції
Як ми всі знаємо, ЧИТАЙТЕ НЕЗАБАВЛЕНО - це найнижчий рівень ізоляції, коли такі речі, як брудні читання та фантомні читання, можуть накопичуватися. Коли найкращий час використовувати цей рівень ізоляції і з яких причин він може бути використаний? Насправді я читав відповіді раніше, але не зміг її зрозуміти повністю, бо не …

1
Введення оператора Select в транзакцію
Яка різниця між цими двома запитами: 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.