memcached-session-manager 1.2.0 released

16 views
Skip to first unread message

Martin Grotzke

unread,
Mar 20, 2010, 6:54:24 PM3/20/10
to memcached-se...@googlegroups.com
Hi,

finally memcached-session-manager version 1.2.0 is released, new jars
are uploaded to
http://code.google.com/p/memcached-session-manager/downloads/list

This release contains several improvements and also some bugfixes. The
list of changes can be found at
http://code.google.com/p/memcached-session-manager/wiki/Changes
but changes are also listed below.

There's one feature in this release that deserves getting highlighted:
now before a session is
stored in memcached, it's checked if the session was modified, or if
the communication with
memcached can be omitted (this was issue #36 "Store modified sessions
only", [1]).
This works completely transparent and does not only check if
session.setAttribute was invoked
(as tomcat's delta session replication does it), but detects a change
even if a property at some
point in the object graph of a session attribute was changed.
This is achieved by serializing the session attributes using the
configured serialization strategy
and computes a hash for the serialized data. This hash is compared to
the hash that was computed
when the session was stored last, to see if s.th. has changed. Of
course there are some minor optimizations,
so that it's checked if the session was accessed at all during a
request or if the session attributes
were accessed. If this is not provided even the serialization and hash
calculation can be omitted.
For this feature the serialization format had to be changed, but
there's also an upgrade mechanism
implemented, so that sessions serialized in the old format (using java
serialization, javoluation or what else)
can be deserialized by the new version. You only need to use the same
serialization strategy.

Btw: if you can take advantage of this feature depends how you (and
the particular web application
framework that you're using) interacts with the session, so that it's
still possible that on each request
sessions get modified.
To get more insight into this, there are now also statistics available
via jmx (see [2] for more).

Now to the list of improvements/bugfixes...

Improvements:
- Add the possibility to provide custom converter via the new
attribute "customConverter".
This is only supported by the javoluation serializer (not possible
for java and xstream serialization)
- #32: msm-javolution-serializer should provide more efficient
serialization of joda DateTime (this is available
as msm-javolution-serializer-jodatime, required the "customConverter" feature)
- #36: Store modified sessions only
- #42: createSession might take a possibly provided sessionId into account
- #43: Calculate statistics for serialization time / backup time /
load time / skips etc (see [2] for more)
- #44: Support comma-separated list of nodes
- #46: Support reconfiguration of memcached nodes at runtime via jmx

Fixes:
- #33: msm-javolution-serializer: ReflectionBinding does not honor
XMLSerializable interface
- #34: msm-javolution-serializer: java.util.Currency gets deserialized
with ReflectionFormat
- #35: Use same logging system as Tomcat
- #40: webapp sets cookie for every page if memcached process is missing
- #41: createSession should take maxActiveSessions into account
- #47: Cookie set on memcached failure doesn't honor request's secure property
- #48: Memcached failover / session relocation not supported when
cookies are disabled
- #49: Sessions not associated with a memcached node don't get
associated as soon as a memcached is available

Now have fun with the new version and let me know how it works for you! :-)

Cheers,
Martin


[1] http://code.google.com/p/memcached-session-manager/issues/detail?id=36
[2] http://code.google.com/p/memcached-session-manager/wiki/JMXStatistics

Reply all
Reply to author
Forward
0 new messages