Every time a user posts a message to a Forum, there is 1 insert per user into the synoptic count table and 1 read per user from the synoptic count table. So if there are 1000 users in a course, that is 1000 inserts and 1000 reads.
1) Batch insert / batch read
2) Store the counts in memory, and then flush to database every 5 minutes
3) Store the counts in a central memory store like Hazelcast or Memcached. Flush the counts to permanent storage every night and during shutdown?
4) Other ideas?