Skip to content

0.16.0

Compare
Choose a tag to compare
@jcox250 jcox250 released this 21 Jul 09:33
· 27 commits to main since this release
3da139c

What's Changed

Docs updates & improvements

Performance improvements

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