Search code examples
multithreadingconcurrencysequentialconsistency

How to understand Quiescent Consistency?


I am reading 'The Art of Multiprocessor Programming'. Now, i get stuck at third chapter , because do not understand the notion of Quiescent Consistency.Can you give me a example to expain what is Quiescent Consistency?Please as clearly as possible!


Solution

  • In distributed programming, there is an approach to describe data structure behavior known as quiescent consistency. There is a number of consistency conditions, sequential consistency, linearizability and others. These conditions describe how an object behaves when there are several threads calling its methods.

    A data structure possesses quiescent consistency if it is consistent between its states of quiescence, i.e. when there are no methods currently in progress. As soon as a quiescently consistent structure has no operations pending (i.e. reaches the quiescence), we may be sure that the executions of methods before this state and after this state is never interpositioned.

    An execution is quiescently consistent if the method calls can be correctly arranged retaining the mutual order of calls separated by quiescence, a period of time where no method is being called in any thread.

    enter image description here

    Sources:
    http://coldattic.info/shvedsky/pro/blogs/a-foo-walks-into-a-bar/posts/88
    http://coldattic.info/shvedsky/pro/blogs/a-foo-walks-into-a-bar/posts/72