Ways to preserve a memory cache


 
Thread Tools Search this Thread
Top Forums Programming Ways to preserve a memory cache
# 1  
Old 09-11-2012
Ways to preserve a memory cache

The environment is Java/Windows. The program keeps near real-time state in memory cache, which is updated by multiple sources, size of the cache is roughly 500 MB, frequency of updates is ~ 20 per second. I am looking into different ways to keep current snapshot of the memory on the disk for a) planned program restarts and b) possibility of failover. Requirement for downtime is not more than 2 minutes.

So far two options are discussed: 1) write serialized objects into plain files and 2) use RDBMS (MS SQL Server)

Both have pros and cons: for (1) there is considerable effort to re-populate cache from disk, but it should be the fastest; for (2) the programmers plan to use ORM, such as MyBatis and they say it will cut programming effort, although we are adding vulnerabilities of frequently updated RDBMS and speed needs to be proved to be fast enough.

What would gurus do?
Please don't suggest Hybernate, TopLink etc... to use as cache repository.
# 2  
Old 09-11-2012
If it wasn't Java, I'd tell you to memory-map the file. It's a fundamental feature of any modern OS which Java lacks the ability to directly use. Without that, you're stuck with the options you mentioned.
# 3  
Old 09-11-2012
This might be a Java solution to using a memory-map file:
FileChannel (Java Platform SE 7 ), long, long)
# 4  
Old 09-12-2012
How long does it take to recreate your data when it's not cached?

If that's anywhere near as fast as recreating the cache, the added overhead of recreating the cache is wasted.

Also, how much performance are you going to lose when you have to keep cache updates synchronized with a persistent data store? If you need reliability, modifications to the cache can't return until data is sync'd to disk.

Nevermind the cost of writing and maintaining the cache recreation code. What happens when that gets buggy, such as not remaining consistent, or improperly syncing changes to disk?

And FWIW, writing complex code makes it a whole lot harder to meet reliability requirements.
# 5  
Old 09-12-2012
Quote:
Originally Posted by goon12
This might be a Java solution to using a memory-map file:
FileChannel (Java Platform SE 7 ), long, long)
Can objects actually live inside the mapped file?

If not, you might as well use an ordinary file, there's no advantage.
# 6  
Old 09-12-2012
I have exactly same question - can we re-start app and read in this FileChannel-based storage into the memory and bring to life the objects in my cache ?
# 7  
Old 09-13-2012
POSIX message queues persist over crash/reboot, until mq_unlink is called. They can be re-opened in the state they were. They are implemented as files without file semantics.

The only thing that CAN persist over a crash/reboot is a physical object - like bytes on a disk, flash disk, tape, etc.

SYSV and POSIX IPC objects are kernel persistent. They survive a program crash.
Not a system crash or reboot.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Best ways to get clear info about CPU and Memory

Hello all i did search the web and found allot of answers but im confused what are the best ways to get this info via Linux default commands 1. current Cpu Usage in Percent 2. current Memory Usage In Bytes 3. current Memory Available In Bytes Thanks! (2 Replies)
Discussion started by: umen
2 Replies

2. Programming

Memory and cache access time discrepancy

#include<stdio.h> #include<stdlib.h> #include<sys/time.h> #include<time.h> #include "rdtsc.h" #define SIZE 4*64*1024 int main() { unsigned long long a,b; int arr={0}; int i; register int r; a=rdtsc(); r=arr; b=rdtsc(); printf("1st element Access Cycles = %llu\n",b-a); (2 Replies)
Discussion started by: Vaibhavs1985
2 Replies

3. AIX

AIX swap space, physical memory & cache

Hi, I am new to AIX, Can someone please help me how to know the swap space, total physical memory and system cache? We are using AIX 5.3. Thanks! (3 Replies)
Discussion started by: Phaneendra G
3 Replies

4. UNIX for Dummies Questions & Answers

Clearing memory cache on Linux server

i wish to clear memory cache on a production box and i was wondering what is the worst that can happen if i do? i already tested this on a backup server and everything seemed fine. but i need to know from you experts what are the worst things that can happen when i run it on a real server: ... (5 Replies)
Discussion started by: SkySmart
5 Replies

5. Solaris

clear cache memory

hi all, i have noticed that my server has 64 GB RAM and i have application in this server but the server has free memory only 15% and utilized 85% however it didn't eat from swap . does any parameter can be configured in kernel to make the system clear memory from cache like linux i found... (4 Replies)
Discussion started by: maxim42
4 Replies

6. Red Hat

Need to release Cache memory

Right now i am using Red Hat Enterprise Linux AS release 4 and cache memory occupying around 1.5GB mentioned below, total used free shared buffers cached Mem: 2026 2021 5 0 161 1477 -/+ buffers/cache: 382 1644 ... (4 Replies)
Discussion started by: thakshina
4 Replies

7. UNIX for Advanced & Expert Users

linux memory buffers & cache usage

18:45:47 # free -m total used free shared buffers cached Mem: 96679 95909 770 0 1530 19550 -/+ buffers/cache: 74828 21851 Swap: 12287 652 11635 Hi all. The below output is from a RHEL 4.5... (0 Replies)
Discussion started by: drummerrob
0 Replies

8. UNIX for Dummies Questions & Answers

High use of cache memory

Hi, I'm running a debian lenny 1GB ram, but with a high I/O. This server has 400IOPS and 3MB/s sustain. So, I noted cached memory use 800MB, buffered memory use 50MB, and no free memory is available. Questions: What does mean such a high cached memory? Who's using this cached memory? Is... (3 Replies)
Discussion started by: iga3725
3 Replies

9. Solaris

File cache portion of memory on Solaris

I'm looking to get the file cache portion of physical (real) memory on a Solaris workstation (Similar to the Cache: line in /proc/meminfo on some Linux systems): # swap -s; swap -l; vmstat 2 2; echo "::memstat" | mdb -k total: 309376k bytes allocated + 41428k reserved = 350804k used,... (5 Replies)
Discussion started by: Devyn
5 Replies

10. Windows & DOS: Issues & Discussions

Clearing of cache memory

Pls! will someone help me on how to clear my cache memory of my Internet browser Thanks Kayode (3 Replies)
Discussion started by: kayode
3 Replies
Login or Register to Ask a Question