0.16.0
What's Changed
Docs updates & improvements
- (FFM-8303) Update proxy call flow docs) by @conormurray95 in #159
- (FFM-8305) Document Relay Proxy endpoints by @conormurray95 in #160
- (FFM-8305) Formatting updates by @conormurray95 in #161
Performance improvements
- FFM-8238 Add KeyVal & Memoize cache files by @jcox250 in #164
- FFM-8625 Use Memoize Cache by @jcox250 in #165
We've added a memoize cache to improve performance and reduce the amount of CPU used by the Proxy. The Proxy would spend the majority of its time unmarshaling data from the redis cache just to marshal it again to send the response to clients. Using a memoize cache means we only perform a unmarshal when we read from the cache if the data has changed. If the data hasn't changed then we just return the raw bytes meaning the only unmarshal/marshal step performed is when we write the the response to the client.
From load testing with a dataset of ~800 flags, 45,000 targets and 10 segments this reduced response times by ~38% and reduced CPU usage by ~20%.
Prometheus metrics updates
- Removes the operation label from the following metrics
- ff_proxy_redis_cache_write_count
- ff_proxy_redis_cache_read_count
There used to be multiple read/write operations that could be performed (Set, SetByte, Get, GetByte) and we used the operation label to tell the difference between these. Now we only perform Get & Set operations so there's no need for the operation label.
Full Changelog: 0.15.5...0.16.0