tag:blogger.com,1999:blog-3346090548501966296.post7018046067200423887..comments2024-03-26T05:03:04.875-07:00Comments on Perspectives on LedgerSMB: ACID as a basic building block of eventually consistent, distributed transactionsChris Travershttp://www.blogger.com/profile/06211762965865744803noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-3346090548501966296.post-33246170550461258322012-09-11T23:33:09.647-07:002012-09-11T23:33:09.647-07:00This is a very thoughtful article about the import...This is a very thoughtful article about the importance of ACID in business.The model defined is very attractive if made into practice.Auditing by humans can be faulty at some time as humans are prone to errors.So, this model can be made effective.<br /><a href="http://www.panayainc.com" rel="nofollow"> sap solution manager<br /> </a>Anonymoushttps://www.blogger.com/profile/02498432426477799649noreply@blogger.comtag:blogger.com,1999:blog-3346090548501966296.post-14558677999244267032012-08-16T18:15:34.178-07:002012-08-16T18:15:34.178-07:00First, I agree that you don't want humans doin...First, I agree that you don't want humans doing most of the work regarding checking consistency and reconciliation. The best way to think of it is that the computer does the grunt work and the human supervises, reviews at least in summary (perhaps in detail if required) and approves.<br /><br />Now, if you have loose coupling, you can do some neat things with eventual consistency. For example, system A can import data into system B (which has RI constraints), and system B processes that data and enters it into system C (which also has RI constraints). The system A -> system B interface may be entirely unsupervised, and the system B -> system C interface may be completely supervised. Supervision here referring to humans being in the loop and performing batch approval.<br /><br />Within two updates you have consistency between system A and system C. However unlike the NoSQL model, systems A, B, and C are functionally different, so we are looking at syncing systems for different functions together without losing integrity of our data, and without keeping humans out of the loop at least to the point of having some frequent review of the data.<br /><br />I think the reason why NoSQL misses local consistency is that it is a scale out solution. You aren't talking about eventual consistency between functionally different systems. You are talking about eventual consistency between hot-swappable systems, and that is where I start to cringe. "You processed my credit card but I never received what I ordered" becomes a complaint that is very difficult to track.Chris Travershttps://www.blogger.com/profile/06211762965865744803noreply@blogger.comtag:blogger.com,1999:blog-3346090548501966296.post-50924714648382652262012-08-16T09:47:24.194-07:002012-08-16T09:47:24.194-07:00This article makes a great point about local ACID ...This article makes a great point about local ACID consistency with eventual consistency between locations. This model is very attractive if it can be achieved. Also, you are completely on the money as far as matching distributed systems to real life business processes. A lot of programmers miss that. <br /><br />That said, the real problem in most systems is creating workable models for eventual consistency. One of the reasons that NoSQL systems don't have transactions or referential integrity is that it's much easier to implement eventual consistency. For example you can patch up individual rows without worrying about violating integrity constraints. There is active research (example: CALM theorem) to try to move beyond the primitive NoSQL approaches, but it is still very speculative. <br /><br />Also, I think your point about human control has to be phrased carefully. Humans are quite poor at reconciliation and consistency checking compared to computers. In large systems these features must be built-in, though you may audit them for proper functioning from time to time. Robert Hodgeshttps://www.blogger.com/profile/05379726998057344092noreply@blogger.com