Cache partition list

At least one customer has a mysql database with many partitions which (for some unknown reason), takes a few seconds to answer the query listing the partitions. This caches the result of that query, and invalidates the cached value when the partitions are modified (assuming they are modified via these classes, rather than directly in the database).
EventTimeDaoImpl and EventArchiveDaoImpl both create a RangePartitioner in their constructors and hold on to them as final fields. So yes, they are per-table (event_time, event_archive) although  that is not enforced. There is an implicit assumption here that the partitions are not modified out from under the instance of the sole RangePartitioner managing the table's partitions. That does strike me as brittle, so I'm definitely open to suggestions for improvement.