Brian Hi,
There is a prepared statements cache - so the "rumors" are correct that gets invalidated from time to time in some cases. There are actually hierarchically two - since with authorization there is a need to cache each prepared statement allowed per user/role login,
You can "see the caches" in action by enabling logging.
ndoetool setlogginglevel authorized_prepared_statements_cache trace
ndoetool setlogginglevel prepared_statements_cache trace
(by default both are set to info - like the rest of the system).
there are three variables in scylla.yaml
# Validity period for permissions cache (fetching permissions can be an
# expensive operation depending on the authorizer, CassandraAuthorizer is
# one example). Defaults to 10000, set to 0 to disable.
# Will be disabled automatically for AllowAllAuthorizer.
# permissions_validity_in_ms: 10000
# Refresh interval for permissions cache (if enabled).
# After this interval, cache entries become eligible for refresh. Upon next
# access, an async reload is scheduled and the old value returned until it
# completes. If permissions_validity_in_ms is non-zero, then this also must have
# a non-zero value. Defaults to 2000. It's recommended to set this value to
# be at least 3 times smaller than the permissions_validity_in_ms.
# permissions_update_interval_in_ms: 2000
and also
permissions_cache_max_entries 1000 (that is the number of entries).
You can adjust the values of these configurations based on your setup and need.
I hope this helps,
Shlomi