I have a Java app, clients send requests to this app and app executes SELECT (4 dif. column in WHERE condition) query on table A based on the fields existed in request. Other thread, in every 15 min. refreshes the data(that is fetched some external db) on this table A. Deleting all the data in table A and inserting new data (about 30k row) takes around 7-8 sec., it is a transactional connection. If SELECT query comes during this time interval it waits on "dao" level until delete/insert transaction will be committed.
This creates a delay for the clients and leads serious problems. I thought that this is a general problem, and wondered that whether there is a general approach/tech to cover this problem.
Thought that instead of executing SELECT query, maybe I can find matched records from memory through some list/map. But since multiple columns exist in WHERE clause, it will not be easy to use memory object as a table.