Modify the GCing of sessions to be the following: 1/ internal sessions are cached on each host; that means only one internal session per host should be created in a pool; that also means that internal RPC call will no more do login/call/logout but only call (so potentially that should speed-up complex RPC calls);
2/ it is now possible to get all the tasks created using a specific session (Db.Session.get_tasks) and thus to know whether a session is active or not; 3/ Now, only inactive and external sessions are GCed (ie with no pending tasks and with Db.session.pool = false). 8 files changed, 62 insertions(+), 43 deletions(-) ocaml/idl/datamodel.ml | 2 + ocaml/idl/ocaml_backend/context.ml | 5 ++ ocaml/idl/ocaml_backend/context.mli | 1 ocaml/xapi/db_gc.ml | 11 ++++-- ocaml/xapi/helpers.ml | 64 ++++++++++++++++------------------- ocaml/xapi/message_forwarding.ml | 5 -- ocaml/xapi/xapi.ml | 3 - ocaml/xapi/xapi_globs.ml | 14 +++++++ _______________________________________________ xen-api mailing list [email protected] http://lists.xensource.com/mailman/listinfo/xen-api
