Red-DiscordBot
Red-DiscordBot copied to clipboard
Local cache for PostgreSQL driver
Type
- Enhancement
Description of the changes
I'm back! In some capacity at least...
I decided to whip up a cache for the Postgres driver. In theory this cache is generic and could be its own layer above all drivers, I didn't want to change anything about the JSON driver, and for now, Postgres is the only other one :)
The cache is an LRU cache, which scales up and down in size based on the number of cogs loaded (read: drivers instantiated). Its max size per cog is admittedly somewhat arbitrary and meaningless, considering the values stored in the cache could range from single bools to massive dicts. However I think it's better to get something working and process-efficient out there rather than get stuck on a cache-sizing issue, and this is still bound to be a lot more memory-efficient than the JSON driver.
I'm interested to hear what people's experiences are with regards to this, especially on large bots. I haven't actually done any performance testing, but anecdotally it seems a lot faster ;)