I'm using JBoss Cache 1.4.1 SP2 without CacheLoader. I dont want cacheloader to be used.
In my application there are multiple instances which are writing a particular node acquiring a WRITE lock. While this process is performed by a thread, another thread wakes up periodically and tries to read the value in that node, trying to acquire a READ lock. Since there are multiple instances writing on that node this READ lock is prioritized as low which waits for 15000milliseconds(as configured) and TIME-OUT occurs failing to read.
Use Case is Thread A and Thread B writes on Node N continously and Thread C starts to read the value in Node N which fails after waiting leading to a Cache Lock Timeout Exception.
Please advice on preventing this scenario or an alternate approach to read the value in Node N
Try READ_UNCOMMITTED? Or Optimistic Locking? Either way, caches are the wrong tool for a WRITE-MOSTLY situation!