Monitoring plugin in clustered environment

Hello everyone,

i’m performing a clustered scenario with hazelcast plugin. I’m interested in archiving messages and, in order to get this task, i used the monitoring plugin. Looking at the code i noticed that there is just one instance of the cluster (the senior cluster member) that writes directly to the DB. All the orher instances of the cluster triggers some events that the SeniorClusterMemeber receive and serve. Read operations instead are distributed to all the servers in the cluster. I think that this software architecture limits the maximum available throughput in writing to the DB. Is there anyone that can explain me the reason why the monitoring plugin works in this way?

Anyone knows what is the throughput of a single openfire server to a DB in terms of insert per second?

thanks a lot

I think that this software architecture limits the maximum available throughput in writing to the DB

You are probably right, but it is much simpler to implement and does support most use cases I have experienced with minimium support issues. Most cluster-aware plugins work the same way (senior node does all write operations, while others do read operations)

Anyone knows what is the throughput of a single openfire server to a DB in terms of insert per second?

That will depend on the DB driver. Oracle will certainly outperform HSQLDB

OK i understand. So if I consider race condition and data consistency it’s reasonable to make able to write all servers directly to DB?

As far as I am probably throughput offered by a single openfire writing to the DB is enough, but now i’m thinking about scalability and solutions to apply if users’ number and the messages they sent grow.

Thanks a lot again