{"action":"created","issue":{"url":"https://api.github.com/repos/magro/memcached-session-manager/issues/117","labels_url":"https://api.github.com/repos/magro/memcached-session-manager/issues/117/labels{/name}","comments_url":"https://api.github.com/repos/magro/memcached-session-manager/issues/117/comments","events_url":"https://api.github.com/repos/magro/memcached-session-manager/issues/117/events","html_url":"https://github.com/magro/memcached-session-manager/issues/117","id":102671019,"number":117,"title":"Nonsticky-session support: touching unmodified/not-updated sessions must be solved differently","user":{"login":"google-code-exporter","id":13935235,"avatar_url":"https://avatars.githubusercontent.com/u/13935235?v=3","gravatar_id":"","url":"https://api.github.com/users/google-code-exporter","html_url":"https://github.com/google-code-exporter","followers_url":"https://api.github.com/users/google-code-exporter/followers","following_url":"https://api.github.com/users/google-code-exporter/following{/other_user}","gists_url":"https://api.github.com/users/google-code-exporter/gists{/gist_id}","starred_url":"https://api.github.com/users/google-code-exporter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google-code-exporter/subscriptions","organizations_url":"https://api.github.com/users/google-code-exporter/orgs","repos_url":"https://api.github.com/users/google-code-exporter/repos","events_url":"https://api.github.com/users/google-code-exporter/events{/privacy}","received_events_url":"https://api.github.com/users/google-code-exporter/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/magro/memcached-session-manager/labels/enhancement","name":"enhancement","color":"FFFFFF"},{"url":"https://api.github.com/repos/magro/memcached-session-manager/labels/imported","name":"imported","color":"FFFFFF"},{"url":"https://api.github.com/repos/magro/memcached-session-manager/labels/Milestone-1.4.0","name":"Milestone-1.4.0","color":"FFFFFF"},{"url":"https://api.github.com/repos/magro/memcached-session-manager/labels/Priority-Medium","name":"Priority-Medium","color":"FFFFFF"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-08-23T23:25:07Z","updated_at":"2015-08-23T23:25:16Z","closed_at":null,"body":"_From [martin.grotzke](https://code.google.com/u/martin.grotzke/) on January 03, 2011 01:50:56_\n\nFor sticky sessions there's an optimization that sessions are only updated in memcached if the session content has changed.\r\nSuch sessions are \"touched\" in memcached regularly (some time before they would expire), this makes use of tomcats background processing and the locally stored sessions.\r\n\r\nFor non-sticky sessions this does not work as there are simply no sessions stored locally, therefore this must be handled differently.\n\n_Original issue: http://code.google.com/p/memcached-session-manager/issues/detail?id=74_"},"comment":{"url":"https://api.github.com/repos/magro/memcached-session-manager/issues/comments/133957977","html_url":"https://github.com/magro/memcached-session-manager/issues/117#issuecomment-133957977","issue_url":"https://api.github.com/repos/magro/memcached-session-manager/issues/117","id":133957977,"user":{"login":"google-code-exporter","id":13935235,"avatar_url":"https://avatars.githubusercontent.com/u/13935235?v=3","gravatar_id":"","url":"https://api.github.com/users/google-code-exporter","html_url":"https://github.com/google-code-exporter","followers_url":"https://api.github.com/users/google-code-exporter/followers","following_url":"https://api.github.com/users/google-code-exporter/following{/other_user}","gists_url":"https://api.github.com/users/google-code-exporter/gists{/gist_id}","starred_url":"https://api.github.com/users/google-code-exporter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google-code-exporter/subscriptions","organizations_url":"https://api.github.com/users/google-code-exporter/orgs","repos_url":"https://api.github.com/users/google-code-exporter/repos","events_url":"https://api.github.com/users/google-code-exporter/events{/privacy}","received_events_url":"https://api.github.com/users/google-code-exporter/received_events","type":"User","site_admin":false},"created_at":"2015-08-23T23:25:14Z","updated_at":"2015-08-23T23:25:14Z","body":"_From [martin.grotzke](https://code.google.com/u/martin.grotzke/) on January 22, 2011 12:42:35_\n\nThis is implemented now (in non-sticky branch).\r\n\r\nOne part of the solution is that session's maxInactiveInterval, lastAccessedTime and thisAccessedTime are stored separately in memcached. This information is updated in memcached for each request to know exact session validity information.\r\n\r\nAdditionally non-sticky sessions are stored in memcached using the double session timeout for expiration in memcached. It must be provided, that a session in memcached has no shorter expiration than session timeout, so a session is stored in memcached (even if it was not modified) if this requirement were not be fulfilled.\n\n**Status:** Fixed  \n"}}