Find Jobs
Hire Freelancers

In-memory Result set caching - Java, Java Spring

$10-200 USD

Completed
Posted over 6 years ago

$10-200 USD

Paid on delivery
We are working on reporting tool. the purpose of the tool is simply visualising the data from underlying database. Although the basic functionality work; the challenges we face is when the query is executed multiple times it's slows down the performance. (Please find attachment for the high level architecture) What we plan to achieve is below 1. A Query executed from frontend reporting layer; the query will be bring the results from underlying database (postgresql) 2. The query results should be cached in memory layer (should be a open source technology) 3. When the same query is executed again the data should be fetched from result set cache rather than getting data from database 4. If the underlying data changed in database than result set should purge and new data should be fetched from database and cached in-memory; meaning the data in cache should be consistant with database 5. Should be able to filter from query results. 6. The cached results should never exceed the memory. 7. There should be a time out for every cached query so that we can clear the cache periodically. 8. We need to have an option to either cache the query or not 9. Any suggestions or improvements are welcome; We don't prefer REDIS or Other commercial software for Caching. Usecase how it should: 1. USER1 runs the query for the first time from Application Layer (example select * from emp; (100 records)) 2. Application layer checks in caching layer if the query data exist; if not than goes to database and cache the data in caching layer and results sent to Application layer 3. USER2 runs a query (select * from emp where dept_no=10) returns 15 records This query should get the data from the cache rather than database : FILTERING 4. Database updates with new inserts now we have 18 records for dept 10 5. User3 runs the same query the data should be fetched from database replace the old cache with new caching data. 6. Once the data is in Cache any user running the same query should get data from Cache rather than database unless the underlying database records changes.
Project ID: 15841068

About the project

5 proposals
Remote project
Active 6 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
As the work involves some benchmarking and learning a new DB. It takes more time and effort than what I thought initialy. So, I'm updating the bid to $170.
$170 USD in 7 days
0.0 (0 reviews)
0.0
0.0
5 freelancers are bidding on average $189 USD for this job
User Avatar
Hi, Thanks for giving detail requirement, it's pretty clear. I suggest to use in memory database such as hsqldb or mysql (using in memory table) for caching purpose. Things to do in this project : - Reconcile module, this module has responsibility to sync data. It will compare two data like you mentioned and ensure those data are sync. - Data Manager module, this module has responsibility to ensure the caching database is not full. Need detail scenario for this module. - Data Access module, this module has responsibility to serve query request. Please feel free to discuss more detail. Thank you. Best Regards, Dhian Wicaksana Putra
$200 USD in 21 days
5.0 (2 reviews)
2.7
2.7
User Avatar
A proposal has not yet been provided
$166 USD in 5 days
0.0 (0 reviews)
0.0
0.0
User Avatar
A proposal has not yet been provided
$188 USD in 7 days
0.0 (0 reviews)
0.0
0.0
User Avatar
We can look into the problem first and then provide the solution. I have almost 13 years of experience in design/develop java based services and we mostly deploy in Aws. We can have in memory data storage in java Map object for faster data returns or have Redis cluster for distributed caching.I’m not sure why Redis is not a requirement in this project but I’ll recommend it. If you don’t want to use Redis, then we have to manage all caching features by ourself in code and it may increase complexity and future maintenance. Let me know if you want to discuss further.
$222 USD in 5 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of UNITED KINGDOM
London, United Kingdom
5.0
10
Payment method verified
Member since May 31, 2017

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.