API-, Schedule-, or Query Comments-based Invalidation method of cache invalidation is used less often, but provides for significantly more customizability and complex caching use cases than the other two methods. Using ScaleArc’s cache management APIs, or query hints, you can customize when cache is created, and you can clear or invalidate cache programmatically either for an individual query or for a whole group of queries.
ScaleArc’s RESTful cache management API calls, or the cache management UI which is powered by the same APIs, let you clear cache at multiple levels. You can choose to clear or invalidate queries related to a specific cache pattern within a specific database, or you can clear the cache for the whole database or a whole cluster with a single API call. This flexibility makes it easy to refresh the cache at custom intervals or after a major data change operation. For example, you could immediately clear the cache for all queries for a Zip Code table if the postal service issues a new list.
ScaleArc also provides a cache-management scheduler, which lets you clear cache at pre-defined intervals. This is very useful to automate clearing cache when data refresh happens at predictable windows. For example, if a logistics platform receives new location data every morning at 6 AM on workdays, you could schedule the system to automatically clear all cache related to the logistics database, or to a specific table, automatically every day at 6 AM using the ScaleArc cache management scheduler.
Last, but not the least, ScaleArc lets you control cache functions using query hints or comments. This method is very useful for immediately caching or invalidating specific queries from within the application. This approach is useful when developers want to control ScaleArc’s cache just as granularly as they would a traditional NoSQL cache but do so with minimal changes to the application – and no need to deal with additional NoSQL APIs.
ScaleArc extends the existing SQL comments functionality that exists within all databases and uses that to control caching functions. This architecture is extremely beneficial from a compatibility standpoint, because even if the application ever has to connect directly to the database server without ScaleArc, the application will still work as expected without any errors – it just won’t have the benefit of the ScaleArc cache.