Red-DiscordBot icon indicating copy to clipboard operation
Red-DiscordBot copied to clipboard

Local cache for PostgreSQL driver

Open Tobotimus opened this issue 4 years ago • 0 comments

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 ;)

Tobotimus avatar May 07 '20 08:05 Tobotimus