Спрощена класична транзакція з базою даних може розглядатися як:
- читання М предметів
- виконавши деякий розрахунок на основі цих показань
- написання деяких N результатів на основі цих розрахунків, які можуть включати в себе елементи, спочатку прочитані.
При здійсненні цих транзакцій (одночасно) властивості ACID потрібно підтримувати.
Точно такі ж вимоги (N оновлень на основі M читає трансакційно) існують і в інших одночасних системах, що не мають СУБД.
Мені цікаво дізнатися, які алгоритми існують для виконання / вирішення цих транзакцій, і які відносні сильні та слабкі сторони в цих алгоритмах. Чи можете ви порадити читання? Це можуть бути книги або онлайн-довідники / навчальні посібники.
Пояснення:
Так, наприклад, наївним алгоритмом може бути кожна транзакція, що займає єдиний глобальний замок, фактично примушуючи єдину нитку та вилучати одночасність. Трохи складнішим алгоритмом буде окремий блокування читання / запису окремих елементів з наказом уникнути тупикової ситуації). І т. Д. Чи є гарне джерело, яке документує різні алгоритми вирішення цієї проблеми. Навіть відповідь, яка лише вказувала на єдиний алгоритм з його силою та слабкими сторонами, була б корисною.