> But both "single writer" and “multiple readers" remain true regardless of the 
> journal mode in use. And the same isolation semantics are provided either 
> way, no?

It remains true, but I’m not sure if it's useful to understand isolation. I 
think isolation could be understood from multiple ‘useful’[1] perspectives.

From a user’s perspective, the behaviour of the system is equivalent to some 
serial execution of transactions, giving the appearance that one transaction 
ran to completion before the next started. Working around the lack of this 
guarantee might be hard for programmers, and it’s useful to understand that the 
guarantee exists. This perspective is probably common to all databases which 
supports serializable isolation.

From an operational perspective, which describes algorithms used and 
implementation details. I think it’s useful to understand algorithms because 
different algorithms give rise to different `busy` scenarios, and having a 
better mental model of algorithm helps reason about some of these scenarios. 
I’m not sure if the ’single writer’, ‘multiple reader’ abstraction gives 
insight into this perspective. A weaker model might end up confusing the user, 
if he ends up in a scenario which he doesn’t understand.

There’s also a mathematical perspective, which involves(I think) proving that 
any legal history an algorithm produces is isolated.

Rahul

--------

[1]: Ref: Transaction Processing Concepts and Techniques - Jim Gray


_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to