AlterEgo
old web2py blog
Useful Links
List all entries
Book
Interactive Examples
F.A.Q.
Free Applications
Plugins
Recipes
Demo of Admin Interface
Semantic web extension
Some of the information here may be outdated, please check the book instead
Edit page
Title:
Security Code:
Body:
(use
this
wiki markup)
CACHE QUOTA ----------- This recipe is about web2py using RAM MEMORY for "disk caching" on linux(with TMPFS). Ok, to the point: You have to be logged in as root. Then you type: mount -t tmpfs tmpfs $folder_path -o rw,size=$size where: $folder_path is a path to the folder where you mount your slice of RAM $size is the amount of memory you want to dedicate( M - megabytes ) for example: # # # # mkdir /var/tmp/myquery mount -t tmpfs tmpfs /var/tmp/myquery -o rw,size=200M # # # # You have just allocated 200M of your RAM. Now we have to map it in web2py application. Since 03-11-2010 all of this is even easier an better, you just write in your models: from gluon.cache import CacheOnDisk cache.disk = CacheOnDisk(folder='/the/memory/mapped/folder') so in our case: cache.disk = CacheOnDisk(folder='/var/tmp/myquery') and than: db(...).select(cache=(cache.disk,3600)....) or: @cache(request.env.path_info, time_expire=5, cache_model=cache.disk) def cache_controller_on_disk(): import time t = time.ctime() return dict(time=t, link=A('click to reload', _href=request.url)) [ controller example comes from the web2py book ] this way you can have "ram space quota" for every query/controller/etc cached, and each one can have different size setting.
© 2008-2010 by Massimo Di Pierro - All rights reserved - Powered by
web2py
- design derived from a theme by
the earlybird
The content of this book is released under the
Artistic License 2.0
- Modified content cannot be reproduced.