  This paper presents the first dynamic predictive analysis for data store
applications under weak isolation levels, called Isopredict. Given an observed
serializable execution of a data store application, Isopredict generates and
solves SMT constraints to find an unserializable execution that is a feasible
execution of the application. Isopredict introduces novel techniques that
handle divergent application behavior; solve mutually recursive sets of
constraints; and balance coverage, precision, and performance. An evaluation on
four transactional data store benchmarks shows that Isopredict often predicts
unserializable behaviors, 99% of which are feasible.
