cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco Clustering

unknown-user
Champ on-the-rise
Champ on-the-rise
We are running alfresco on Redhat AS3 (2 boxes).
We don't have a reliable way to mount a single disk on 2 servers.

What are our Clustering options?

Currently we are thinking about using rsync to sync two content_stores and connect the both the alfresco to single DB.

This issue is the DB cache. Even when the contentstores are in sync and db replication queue is 0, we are not seeing the new conent on the 2nd box. I guess the reason being the data change is fetched by server2 due to caching.

One solution is to clear all the cache by writing a servlet and calling the servlet thru same script which does the rsync. Not sure if this is even a option worth perusing

Any help is appreciated


–Sriram
4 REPLIES 4

rivetlogic
Champ on-the-rise
Champ on-the-rise

ricardo1
Champ in-the-making
Champ in-the-making
I tried to implement the topology shown in http://wiki.alfresco.com/w/images/d/da/HA_ClusteredServer.jpg

Servers A and B run alfresco instances and a third server runs a database. I changed db.url in repository.properties to point at this database, and wrote
a JdbcContentStore that uses this same database to store content in blobs. So in replicating-content-services-context.xml, I redefined

  <bean id="backupContentStore"
        class="org.alfresco.repo.content.jdbcstore.JdbcContentStore">
    <property name="hibernateNodeDaoServiceImpl">
      <ref bean="nodeDaoServiceImpl" />
    </property>
  </bean>

This seems to work just fine, but it makes me wonder why this was not
done before, as it seems to solve a very common problem in such a
simple way; am I missing something here?

Thanks,

Ricardo

pmonks
Star Contributor
Star Contributor
G'day Ricardo,

You may hit scalability issues by putting the file content in a database, particularly if you're using CIFS to access the repository.  There's some discussion of the thought that went into the current Alfresco design at:
http://newton.typepad.com/content/2006/09/content_storage.html

Cheers,
Peter

ricardo1
Champ in-the-making
Champ in-the-making
Peter,

I was aware of this article you mention, but to be honest, I don't
understand it fully. I think I understand the arguments against
having a database as a primary storage of content, but not
as a secondary one

The only statement I find a bit scary is "There is a tendency for
these objects [blobs] to clutter the cache of the database and
thus detract from the performance of the overall system that
requires quick access to metadata", but nothing prevents us from
using separate databases for metadata and content store

In my example, I'm using a FileContentStore as a primary store,
and a replicator to the backup store (the one that is blobs on a database)

If I ever use cifs, i guess it will operate directly on the FileContentStore,
only indirectly (and asynchronously) on the database store

Anyway, now that my prototype is running, I will try to abuse it to see at
what stage it breaks

Thanks,

Ricardo