Hey @DmitryTsepelev 👋 Thank you for your great project 🚀
At our company we decided to switch to redis_with_local_cache_store store adapter but during performance testing we found significant drop.
After analyzing code of graphql-ruby-persisted_queries I found out that when we fetch or restore queries from storage we use #fetch_query and #save_query which expects unprocessed keys gathered from extensions.persistedQuery.sha256Hash. But in RedisWithLocalCacheStoreAdapter in #fetch the hash is already processed and it will be something like compiled:ruby-3.1.2:2.0.16:abc123 so when we run #fetch_query or #save_query it will be processed again to compiled:ruby-3.1.2:2.0.16:compiled:ruby-3.1.2:2.0.16:abc123, so follow-up calls to fetch query seems result in weird results.
Hey @DmitryTsepelev 👋 Thank you for your great project 🚀
At our company we decided to switch to
redis_with_local_cache_store
store adapter but during performance testing we found significant drop.After analyzing code of
graphql-ruby-persisted_queries
I found out that when we fetch or restore queries from storage we use#fetch_query
and#save_query
which expects unprocessed keys gathered fromextensions.persistedQuery.sha256Hash
. But inRedisWithLocalCacheStoreAdapter
in#fetch
thehash
is already processed and it will be something likecompiled:ruby-3.1.2:2.0.16:abc123
so when we run#fetch_query
or#save_query
it will be processed again tocompiled:ruby-3.1.2:2.0.16:compiled:ruby-3.1.2:2.0.16:abc123
, so follow-up calls to fetch query seems result in weird results.