Following is the changes I made for this issue.
- The agent periodic status access are done mostly in the cache level. If the only agent state is changed, controller does not retrieve the agents info again.
- The file list cache is used for the most file list queries.
- Delete DB access when checking the periodic max count of runnable tests