HN2new | past | comments | ask | show | jobs | submitlogin

> The only reason your system needs to be deterministic is because your company is afraid

With good reason. It is called caution. We're talking about a nation's economy.

You misunderstand me about the reason for running yesterday's or any other day's full load. The idea is that after you have made a bug fix or a performance fix, you want to see that the output reflects the fix; the best way to do that is do a diff with yesterday's output given the same input, and one should be able to ensure both correctness (all changes accounted for) and completeness (all the input tuples that ought to reflect a difference do reflect the correct difference).

Given that there are a hundreds of thousands of events a second and terabytes of data, it is impractical to run a test 100 different ways. Besides, how do you know you got it correct? Events are not commutative because there are limits. Deposit is not commutative with Withdraw, because Withdraw can throw an OutOfMoneyException. Order matters.

Please refer to [1] Parallel and Distributed Simulation, fig. 9.4, pg 265 for an example of an anomaly introduced by the lack of a total order. The text also covers why it is necessary to have a model of time; it is not enough to have agents sending messages to each other and let them duke it out.

[1] https://doc.lagout.org/science/0_Computer%20Science/3_Theory...



Ah you're right, I misunderstood. In your simulation you actually already know what the result of the simulation has to be ahead of time and you're just verifying the system arrives at that end result. That's very different from the type of simulation of citybound where they're actually modeling the behaviour of all the actors, and as long as none of them violate any invariants it doesn't matter what the end result is, any result would be correct.

When you said financial simulation I thought you were modeling the behaviours of actors in a market, and how your system would trade against those actors, but what you're doing is more like banking or an exchange?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: