Con il sharding, come è possibile mantenere una transazione affidabile su più server di database? Ad esempio, se avessi una tabella denominata AccountLedger
su un server di database (istanza MySQL) e una tabella denominata User
su un altro server di database, è possibile eseguire una transazione su entrambe le istanze di database che saranno entrambe affidabili, oppure rollback in caso di fallimento?Sharding e transazioni con MySQL
Esempio:
server di database AccountLedger:
START TRANSACTION;
INSERT INTO AccountLedger SET
UserID = @UserID,
Date = @Date,
Debit = @Debit,
Balance = @Balance;
server di database degli utenti: server di database
START TRANSACTION;
UPDATE User SET
Balance = @Balance
WHERE UserID = @UserID;
AccountLedger:
COMMIT;
utente server di database:
COMMIT; -- What happens if the COMMIT fails here (power goes out or whatever)
Ho letto un bel po 'su sharding, ma io non riesco a trovare tutte le informazioni sull'uso di operazioni con sharding. Qualcuno può indicarmi la giusta direzione?