Typowym powodem, dla którego ludzie myślą, że w grę wchodzi „pamięć podręczna”, poza zwykłą mapą tożsamości SQLAlchemy, która jest lokalna dla transakcji, jest obserwacja skutków izolacji transakcji. Sesja SQLAlchemy domyślnie działa w trybie transakcyjnym, co oznacza, że czeka na session.commit()
jest wywoływana w celu utrwalenia danych w bazie danych. W tym czasie inne transakcje w toku gdzie indziej nie będą widzieć tych danych.
Jednak ze względu na odosobniony charakter transakcji jest dodatkowy zwrot. Te inne transakcje w toku nie tylko nie zobaczą danych transakcji, dopóki nie zostanie ona zatwierdzona, ale w niektórych przypadkach nie będą ich widzieć, dopóki nie zostaną zatwierdzone lub wycofane również (co jest tym samym efektem, który ma tutaj twoje close()). Transakcja o średnim stopniu izolacji będzie utrzymywał stan, który został załadowany do tej pory i nadal będzie dawał ten sam stan lokalny dla transakcji, nawet jeśli rzeczywiste dane uległy zmianie - nazywa się to powtarzalnymi odczytami w żargonie izolacji transakcji.
http://en.wikipedia.org/wiki/Isolation_%28database_systems%29