Может кто-нибудь объяснить мне, в чем разница между атомными операциями и атомными транзакциями? Мне кажется, что эти два - одно и то же. Это правильно?атомные операции и атомные транзакции
ответ
В заявлении: атомная транзакция - это самый маленький набор операций для выполнения необходимых шагов. Либо все необходимые операции выполняются (успешно), либо происходит сбой атомной транзакции.
Атомная операция обычно не имеет ничего общего с транзакциями. Насколько мне известно, это происходит из аппаратного программирования, где набор операций (или один) может быть немедленно решён.
Чтобы получить более широкую картину, вы посмотрите на может:
Некоторые цитаты из указанных выше ресурсов:
О базе данных асы:
В атомной сделке, ряд операций с базами данных либо все происходят, или ничего не происходит. Гарантия атомарности предотвращает обновление базы данных, происходящую только частично, что может привести к большим проблемам , чем отказ от целой серии. Другими словами, атомарность означает неделимость и неприводимость.
О программировании:
В параллельном программировании, операции (или набор операций) является атомным, линеаризуема, неделимыми или источник бесперебойного, если она, как представляется, остальную часть системы происходить мгновенно. Atomicity является гарантией изоляции от параллельных процессов. Кроме того, атомарные операции обычно имеют определение «успешное или неудачное» - они либо успешно изменяют состояние системы, либо не имеют видимого эффекта .
Я видел слово сделки используется чаще для баз данных и работы в программировании, особенно в программировании на уровне ядра.
Концепция Atomity распространена между атомными транзакциями и атомными операциями, но они обычно связаны с разными доменами.
Атомные транзакции связаны с операциями с базой данных, где набор действий должен быть полным, или НИ ОДИН из них не закончен. Например, если кто-то заказывает рейс, вы хотите как получить платеж, так и зарезервировать место ИЛИ не делать ни того, ни другого. Если одному из них было позволено преуспеть, а другое не удалось, база данных была бы непоследовательна.
Атомные операции, с другой стороны, обычно связаны с низкоуровневым программированием в отношении многопроцессорных или многопоточных приложений и аналогичны критическим разделам. Например, если два потока одновременно получать доступ и изменять ту же переменную, каждый поток проходит через следующие этапы:
- прочитать переменную из хранилища в локальную память.
- Измените значение в локальной памяти.
- Запишите измененное значение обратно в исходное место хранения.
Но в многопоточной системе прерывание или другой переключатель контекста может произойти после того, как первый процесс прочитал значение, но не записал его обратно. Второй процесс (или прерывание) затем будет считывать и изменять значение OLD и записывать его модифицированное значение обратно в хранилище. Когда первый процесс снова включен, он не знает, что что-то могло измениться, поэтому он записывает свое изменение в исходное значение. Следовательно, операция, которую второй процесс выполнил с переменной, будет потеряна. Если операция атома, она может быть завершена без прерывания с момента ее начала. Обычно это выполняется с использованием примитивов аппаратного уровня, таких как Test-and-Set или Compare-and-Swap.
- 1. Атомные операции в Джанго?
- 2. Атомные операции на `unique_ptr`
- 3. Атомные операции на поплавках
- 4. Насколько дороги атомные операции?
- 5. Атомные операции многоточечной очереди
- 6. Атомные операции над списком
- 7. Модели UnitOfWork и атомные операции
- 8. Кэширование APC и атомные операции
- 9. Атомные операции в Redis
- 10. Атомные операции в CUDA
- 11. Атомные операции с DerbyJS
- 12. Атомные операции в Sequelize
- 13. Firebase: атомные транзакции и многооконные обновления
- 14. Атомные битпольные операции на 80x86?
- 15. Атомные операции достаточно для мьютекса?
- 16. Когда НЕ использовать атомные операции?
- 17. Атомные операции над суперскалярным процессором
- 18. Native Android, блокированные/атомные операции
- 19. Атомные операции CUDA и запуск параллельного ядра
- 20. Атомные операции и генерация кода для gcc
- 21. Пакетные/атомные операции в Selenium RemoteWebDriver?
- 22. Атомные транзакции в магазинах с ключом
- 23. Атомные инструкции и атомный тип
- 24. Операции записи на атомные файлы (кросс-платформа)
- 25. определение времени работы процессора - атомные операции
- 26. Рубиновые атомные операции в многопоточной среде
- 27. Атомные операции на нескольких бездействующих внешних системах
- 28. Атомные операции с отображенными в памяти файлами
- 29. Атомные операции над файлом из разных процессов
- 30. Атомные операции с данными критического сечения