From 15e4b1ad8b04618f0a8bd491ed6eb8b332f3de48 Mon Sep 17 00:00:00 2001 From: yuvipanda Date: Thu, 27 Jul 2017 23:47:40 -0700 Subject: [PATCH] Don't expire objects on commit --- jupyterhub/orm.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jupyterhub/orm.py b/jupyterhub/orm.py index 5d147a2c..7b4715a1 100644 --- a/jupyterhub/orm.py +++ b/jupyterhub/orm.py @@ -599,5 +599,9 @@ def new_session_factory(url="sqlite:///:memory:", reset=False, **kwargs): check_db_revision(engine) Base.metadata.create_all(engine) - session_factory = sessionmaker(bind=engine) + # We set expire_on_commit=False, since we don't actually need + # SQLAlchemy to expire objects after commiting - we don't expect + # concurrent runs of the hub talking to the same db. Turning + # this off gives us a major performance boost + session_factory = sessionmaker(bind=engine, expire_on_commit=False) return session_factory