rlm_cache - WebScale 2.0
The rlm_cache module in master (what will become v3.1.x) has been rewritten internally to support drivers in a similar way to the rlm_sql module. The standard rlm_cache_rbtree driver is still present and works as it did before (I wrote tests to verify that). But there's also a new driver rlm_cache_memcached which integrates rlm_cache with memcached. Using a memcached allows cache state to be shared between multiple radius daemons. It also allows the cache to persist across restarts, which is useful if the cache is critical to the server's performance. The rewritten rlm_cache module behaves in a similar way as before, but with some minor differences in return codes (it will return OK instead of UPDATED, unless it copied a cached entry into the request). It also no longer merges the new cache entry by default, though that can be re-enabled with &control:Cache-Merge := 'yes'. The new behaviour is documented in mods-available/cache. Let me know if you feel any additional libmemcached knobs need exposing. Note: Because of the return code changes, the new cache code will not be merged into v3.0.x as it may break existing installations. --- Whilst investigating cache related things, I found a page on serializing the state of an SSL session in progress. This is potentially interesting for EAP as it would allow the EAP state to be shared between multiple clustered RADIUS servers (allowing for dumb load balancing, and failover). memcached certainly has the throughput to support being used in such a way ~200,000 TPS on untuned commodity hardware, so that might be an interesting thing to investigate in the future if people believe it would be useful. --- redis is another good candidate from a cache store, it's also persistent, so you may see a driver for that in the not too distant future as well. Sooner if there's significant interest. -Arran Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS development team FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2
But there's also a new driver rlm_cache_memcached which integrates rlm_cache with memcached.
Ohhhhh, that's nice! With CAS working with memcached and RADIUS doing it too, this is nice for large organisations :-) Stefan Paetow Moonshot Industry & Research Liaison Coordinator t: +44 (0)1235 822 125 gpg: 0x3FCE5142 xmpp: stefanp@jabber.dev.ja.net skype: stefan.paetow.janet jisc.ac.uk Jisc is a registered charity (number 1149740) and a company limited by guarantee which is registered in England under Company No. 5747339, VAT No. GB 197 0632 86. Jisc’s registered office is: One Castlepark, Tower Hill, Bristol, BS2 0JA. T 0203 697 5800. Jisc Collections and Janet Ltd. is a wholly owned Jisc subsidiary and a company limited by guarantee which is registered in England under Company No. number 2881024, VAT No. GB 197 0632 86. The registered office is: Lumen House, Library Avenue, Harwell, Didcot, Oxfordshire, OX11 0SG. T 01235 822200.
participants (2)
-
Arran Cudbard-Bell -
Stefan Paetow