История изменений
Исправление aist1, (текущая версия) :
Я немного о другом. Например, два клиента снимают по $100 со счета, на котором всего осталось $100.
Дополню. Эмулировать транзакционные приложения на ПСД можно, но они для этого, вообще говоря, не оптимизированы. Есть частные случаи — например очень шустрая LMDB именно из-за минималистичности CoW, но там один писатель может быть в каждый момент времени (SWMR). Это отлично работает для коротких транзакций типа перевода денег со счета на счет, так как транзакции получаются очень быстрыми. И плохо работает, когда нам нужно, например, сначала много прочитать, а потом что-то записать. SWMR-схема отлично подходит для всяких строго-консистентных примитивов типа очередей, счетчиков и т.п. Но не для БД в общем случае.
В общем случае делать синхронизацию распределенных транзакций через ПСД может оказаться плохой идеей. И тут старые добрые RDBMS будут рулить еще долго.
ПСД отлично подходят для гибиридных аналитико-транзакционных приложений, где есть изменяемые во времени данные, но нужен быстрый доступ на чтение к иммутабельным версиям (point-in-time).
Upd. Ввиду большой практической значимости транзакционности, у меня есть соответствующий встраиваемый SWMRStore, на основе которого можно строить более сложные хранилища.
Исходная версия aist1, :
Я немного о другом. Например, два клиента снимают по $100 со счета, на котором всего осталось $100.
Дополню. Эмулировать транзакционные приложения на ПСД можно, но они для этого, вообще говоря, не оптимизированы. Есть частные случаи — например очень шустрая LMDB именно из-за минималистичности CoW, но там один писатель может быть в каждый момент времени (SWMR). Это отлично работает для коротких транзакций типа перевода денег со счета на счет, так как транзакции получаются очень быстрыми. И плохо работает, когда нам нужно, например, сначала много прочитать, а потом что-то записать. SWMR-схема отлично подходит для всяких строго-консистентных примитивов типа очередей, счетчиков и т.п. Но не для БД в общем случае.
В общем случае делать синхронизацию распределенных транзакций через ПСД может оказаться плохой идеей. И тут старые добрые RDBMS будут рулить еще долго.
ПСД отлично подходят для гибиридных аналитико-транзакционных приложений, где есть изменяемые во времени данные, но нужен быстрый доступ на чтение к иммутабельным версиям (point-in-time).