Skip to content
rickyepoderi edited this page May 4, 2014 · 13 revisions

This is the version 0.5 for the couchbase-manager. The branch for this version is located here. Download and installation instructions are detailed in the following page. The couchbase-manager-0.5.0.jar library can also be downloaded but remember it is absolutely useless without glassfish and all the rest of dependencies.

More information about the manager and its development can be found in this blog.

New Features

The version 0.5.0 adds two new features to the manager:

  • As in version 0.4 the serialization and de-serialization processes were heavily changed, now each attribute is processed separately (previously all the session was serialized or de-serialized at a whole). This characteristic makes it possible to not de-serialize all the attributes when the session is read from the repository, this way attributes are stored as a serialized byte array and they are only de-serialized in case they are requested. Besides, if the attribute is not accessed by the application, the serialization process can also be saved (cos the attribute has not been modified the previously read byte array is still valid). This feature is very good in non-sticky configurations, remember that this configuration re-reads the session from couchbase at every application request.

  • The previous feature has some memory consequences. In non-sticky the consequences are almost zero cos in this configuration the session attributes are cleared so, when the session is read only the serialized attribute (the byte array) exists, then (when the application requests the attribute) the byte array is de-serialized and only the real object is stored in the session, finally the attribute is removed from the session when it is saved in the external repository. Therefore non-sticky configuration has no memory penalty. Nevertheless in the sticky configuration it has a memory penalty, the attribute value is never deleted in this configuration, for that reason both objects exist inside the session (the serialized and the real object). If an attribute is requested, the serialized byte array is eliminated (cos it is not valid) but it is again calculated when the session is saved in couchbase. It is important to remember that since version 0.4 the manager externalized big / rarely used attributes, those attributes are never maintained inside the session (not matter the configuration used).

  • Now the session listeners are properly executed. JavaEE provides some listeners to monitoring session and session attributes lifecycle, since version 0.5 those listeners were not taken into account. The main handicap until this version was the destruction of the session because of inactivity. Until now the session was eliminated in couchbase and, for that reason, the manager could not access the session once it was eliminated. In turn the listeners were not called or called with no information. Now a new property extraInactiveInterval is available that extends the life in the couchbase repository in order to destroy the session in the java process with all the information available. See the page [JavaEE Session Listeners](JavaEE Session Listeners) for more information.

  • Besides version 0.5 updates dependencies: GlassFish Server Open Source Edition 3.1.2.2 or 4.0, Couchbase community edition 2.2.0, spymemcached-2.10.5 and couchbase-client-1.3.2 (it needs commons-codec-1.6, netty-3.5.5.Final, httpcore-4.3.2).

Current Status

In the last two versions very important changes have been done, please test it carefully. Nonetheless the version passed all the tests properly except the issues explained below.

Known Issues

Some informational links

How to install it?
Sticky vs Non-Sticky
[External atttibutes] (wiki/External-Attributes)
[JavaEE session listeners] (wiki/JavaEE-Session-Listeners)
[Compiling from github] (wiki/Compiling-from-github)

Versions

couchbase-manager-0.1
couchbase-manager-0.2
couchbase-manager-0.3
couchbase-manager-0.4
couchbase-manager-0.5

Clone this wiki locally