Although I have a basic working knowledge of memory, SSDs and the like, I am not technical...I have never developed or deployed a system. I was exposed to ram-disks years ago, when their expense limited their use to very small files or DB applications. I am looking to "get current" on what role memory plays in curremt WEB 2.0 design and deployments.
How is memory commonly used to remove latency and accelerate performance in typical Web 2.0 architectures? What role can memory play in massive scale-out implementations? Are there such a thing as memory "best practives"? If memory were cheap, would that significantly change the way systems are designed and deployed?
What commercial and open source products that use memory are used, what are the benefits and trade-offs?
Can anyone suggest what sources - people, books, papers, products - I might look into to gain a practical understanding of this topic?
Re: The Role of Memory within Web 2.0 Architectures and Deployme
Though I do read about people suggesting to build file systems on RAM, memory is mostly used for caching. Click on the memcached tag and you'll see how a lot of different websites are employing memcached for caching. But of course there's memory involved in database caching, OS caching, and hardware caching. And some people even advocate a pure memory architecture where you don't use a database or SQL at all.
All fairly standard. I don't know if ever seen a document like the "theory of memory in creating systems," but it might be interesting.
Re: The Role of Memory within Web 2.0 Architectures and Deploys
Mark, thanks for your reply. I have looked over the books in your store and have concluded the title: Web Caching by Duane Wessels is the best selection.
Would you agree, given I am somewhat non-technical?
Re: The Role of Memory within Web 2.0 Architectures and Deploys
Todd, excuse me for posting the wrong name.
Re: The Role of Memory within Web 2.0 Architectures and Deployme
"Though I do read about people suggesting to build file systems on RAM, memory is mostly used for caching."
Memory based solutions are already used for more then Caching i.e. as the system of record and for creating an entire middleware stack.
I had recently wrote few blogs on this matter: Putting the Data-Base where it belongs
and Persitence As A Service The later describes how we can use In-Memory DataGrid's to store the real time information of our application and have the data base as the backend storage that is being updated asynchronously.
HTH
Nati S.
Re: The Role of Memory within Web 2.0 Architectures and Deployme
How is memory commonly used to remove latency and accelerate performance in typical Web 2.0 architectures?
Yes. This is fairly typical scenario.
For example you can see the Market Data Ajax Application as an example for application that needs to push real-time updates to thin clients. We use the In-Memory-DataGrid to maintain the current state of the market as well as to push updates (notifications) to different users based on content-level filtering i.e. each user is pushed only with the relevant data it subscribed to. Since the In-Memory cluster can be partitioned we can load-balance the load.
What role can memory play in massive scale-out implementations? Are there such a thing as memory "best practives"? If memory were cheap, would that significantly change the way systems are designed and deployed?
I'll suggest that you will look into the following whitepaper and presentation:
The Scalability Revolution: From Dead End to Open Road
Scalable as Google, Simple as Spring - Presentation from SpringONE
What commercial and open source products that use memory are used, what are the benefits and trade-offs?
GigaSpaces is something you should look since we try to address the entire application scaling and not just the data scaling. I would also recommend looking at the references provided under the following category: DataGrid, it points to a list of other relevant resources that you may find useful.
HTH
Nati S.
GigaSpaces
Post new comment