3 ms·
How heterogeneous do you mean? But basically, "yes". IBM had CICS transactions back in the day for some definition of heterogeneity. Tuxedo did this in the 80
by gregw2 3y ago
How heterogeneous do you mean? But basically, "yes".
IBM had CICS transactions back in the day for some definition of heterogeneity. Tuxedo did this in the 80s across broader platforms. In the 90s (when I heard of it) there was an open standard created for it: https://en.wikipedia.org/wiki/X/Open_XA https://en.wikipedia.org/wiki/X/Open_XA so that Unix-y type systems had some agreement on how to do it without buying mainframe/tuxedo-y type components. And around or a bit after then, Microsoft created its own "Distributed Transaction Coordinator". This is not my area of expertise but I've heard about it throughout the last 30 years.
The NoSQL side of heterogeneous is newer than the 90s but even there, I found in 2 minutes a paper from 2006, 17 years ago, on the topic: https://www.researchgate.net/profile/Akon-Dey/publication/282156834_Scalable_Distributed_Transactions_across_Heterogeneous_Stores/links/56058b9608ae5e8e3f32b98d/Scalable-Distributed-Transactions-across-Heterogeneous-Stores.pdf https://www.researchgate.net/profile/Akon-Dey/publication/28...
This is definitely a wheel that gets reinvented.
- cratermoon 3y agoI'd understood distributed transactions to be a vendor-specific thing. I'd never have realized I could have IMS/DB, DB2, and MSSQL all in the same txn.
- gregw2 3y agoCandidly this is not my area of expertise but I always thought it was multi-vendor. Lacking first-hand knowledge, a curious quick web search does imply that at least the Open/XA standard was supposed to be multi-vendor: The Open Group has defined an industry-standard model for transactional work that allows changes made against unrelated resources to be part of a single global transaction. An example of this is changes to databases that are provided by two separate vendors. This model is called the X/Open Distributed Transaction Processing model. Source: https://www.ibm.com/docs/en/i/7.1?topic=concepts-xa-transaction-support-commitment-control https://www.ibm.com/docs/en/i/7.1?topic=concepts-xa-transact... Is Microsoft's MSDTC more single-vendor? Even that seems to support multi-vendor databases through its support of Open/XA: When the DTC acts as an XA-compliant transaction manager, Oracle, IBM DB/2, Sybase, Informix, and other XA-compliant resource managers can participate in transactions that the DTC controls. Source: https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc753563(v=ws.10)?redirectedfrom=MSDN https://learn.microsoft.com/en-us/previous-versions/windows/... Diving into the history of which distributed transaction manager was the first to support multi-vendor database transactions is left as an exercise for the reader... P.S. Some good Oracle docs on distributed transactions that gives you a flavor of how it works: https://docs.oracle.com/cd/A97630_01/java.920/a96654/xadistra.htm https://docs.oracle.com/cd/A97630_01/java.920/a96654/xadistr... I suspect industry knowledge/awareness of this stuff waned as web-generated transactions boomed and cloud platform vendors like AWS sold "eventual consistency" to developers and through them back to management and end users (like myself!) who think "Oh, that's weird, why didn't X update? Let me just refresh my browser... oh, there it is".
- PaulHoule 3y agoI've met a lot of people (typically open source enthusiasts) who say that distributed transactions are a dumpster fire and other people (Microsoft/enterprise partisans) who think they are great.
- cratermoon 3y agoMy go-to for a critique of distributed transactions is "Life beyond Distributed Transactions: an Apostate’s Opinion"[1] which says in the abstract "performance costs and fragility make them impractical". That was 2007, though. 1 https://www.ics.uci.edu/~cs223/papers/cidr07p15.pdf https://www.ics.uci.edu/~cs223/papers/cidr07p15.pdf
- PaulHoule 3y agoThat’s a good statement of the anti case.