How should a confluence plugin store information in a clustered environment?

Andrew Ardill
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 24, 2011

I understand caching data works fine in a clustered environment if the caching API is used, is there a cluster-safe way to persist data currently? It seems Active Objects would be a good option, but perhaps there are other ways it can be done.

[edit] From some further research, it appears that the page Persistence in Confluence contains some good ideas for persisting data, and that these seem to work in a clustered environment.

It would be very interesting to know if any of them would be particularly favourable in a cluster, or if choice is more relevant based on usage and personal preference.

2 answers

1 accepted

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

7 votes
Answer accepted
CharlesA
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 24, 2011

All the standard ways of storing plugin information (bandana, content properties, SAL plugin settings) should work fine in a clustered environment. You will only run into problems if you're rolling your own persistence via the filesystem, or doing wacky stuff like creating your own Lucene indexes to store data.

Active Objects has not yet been tested in a cluster, but we'll sort any problems out before it's supported, obviously.

The pros and cons of using any given persistence method are the same in a clustered environment as they are in a non-clustered one. As a general rule:

  • If you are storing application-global data, use the SAL plugin settings API
  • If you are storing data related to a space, use bandana
  • If you are storing data related to a page or blog post, use content properties
  • If you are storing data related to a user, use content properties stored against that user's PersonalInformation object
  • If your data storage needs don't fit these categories, or are storing huge amouts of data against a single context, consider storing the data outside Confluence and accessing it over the network (or wait for Active Objects)
Andrew Ardill
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 24, 2011

As per my edit, it would be great to know the pros and cons of different persistence methods in a clustered environment.

Karola Schaeuble
Contributor
July 10, 2011

The last point is interesting. How would I go about it? Is there any documentation how I should configure this and what the possibilities are?

I was looking for another option to store data the whole week. On the page mentioned in the question I only find the Hibernate extension option which is discouraged.

0 votes
Julian Be November 5, 2013

I'm sorry that i exhume such an old thread, but i think its similar to my problem, with storing custom user data for the confluence profile. Maybe someone has an idea.

https://answers.atlassian.com/questions/230111/store-default-and-custom-master-data-to-userprofiles-beginner

TAGS
AUG Leaders

Atlassian Community Events