Penyebab umum orang berpikir ada "cache" yang dimainkan, selain peta identitas SQLAlchemy biasa yang lokal untuk transaksi, adalah bahwa mereka mengamati efek isolasi transaksi. Sesi SQLAlchemy bekerja secara default dalam mode transaksional, artinya menunggu hingga session.commit()
dipanggil untuk menyimpan data ke database. Selama waktu ini, transaksi lain yang sedang berlangsung di tempat lain tidak akan melihat data ini.
Namun, karena sifat transaksi yang terisolasi, ada putaran ekstra. Transaksi lain yang sedang berlangsung tidak hanya tidak akan melihat data transaksi Anda sampai dilakukan, mereka juga tidak dapat melihatnya dalam beberapa kasus sampai mereka melakukan atau dibatalkan juga (yang merupakan efek yang sama dengan close() Anda di sini). Transaksi dengan tingkat isolasi rata-rata akan mempertahankan status yang telah dimuat sejauh ini, dan terus memberi Anda status lokal yang sama untuk transaksi meskipun data sebenarnya telah berubah - ini disebut pembacaan berulang dalam bahasa isolasi transaksi.
http://en.wikipedia.org/wiki/Isolation_%28database_systems%29