Con la fragmentación, ¿cómo puede mantener una transacción confiable en múltiples servidores de bases de datos?Sharding y transacciones con MySQL
Por ejemplo, si tuviera una tabla llamada AccountLedger
en un servidor de base de datos (instancia de MySQL) y una tabla llamada User
en otro servidor de base de datos, es posible ejecutar una transacción a través de ambas instancias de base que a la vez se comprometan de forma fiable, o revertir en caso de falla?
Ejemplo transacción:
servidor de base de datos AccountLedger:
START TRANSACTION;
INSERT INTO AccountLedger SET
UserID = @UserID,
Date = @Date,
Debit = @Debit,
Balance = @Balance;
servidor de base de datos de usuario:
START TRANSACTION;
UPDATE User SET
Balance = @Balance
WHERE UserID = @UserID;
AccountLedger servidor de base de datos:
COMMIT;
Usuario servidor de base de datos:
COMMIT; -- What happens if the COMMIT fails here (power goes out or whatever)
He leído mucho sobre sharding, pero me parece que no puede encontrar ninguna información sobre el uso de las transacciones con sharding. ¿Alguien me puede apuntar en la dirección correcta?