cache.ram or even better (memcached) is preferred! if you use session and your sessions are stored on filesystem, if you have too much data it will be hard to load on each request.
DATA = cache.ram(request.http_host, lambda: db(..).select(cacheable=True), 86400) # keeps for 24 hours. Now, on every place where data is changed you can call cache.ram.clear(regex=None) to reset that cache. --