Skip to content
This repository has been archived by the owner on Apr 3, 2018. It is now read-only.

Performance Optimizations

therealadam edited this page Aug 23, 2011 · 1 revision

In case of increased latency, break glass and cheat aggressively.

Serverless implementation

Problem: Overhead due to HTTP and encoding/decoding JSON are a bottleneck.

Idea: Implement a direct connection class. Instead of talking to the service via HTTP, talk directly to CL::Service::Protocol via a shim that implements the same API as CL::Client::Connection. Call it CL::Client::DirectConnection.

Advantages: No HTTP service setup. No HTTP/JSON overhead.

Disadvantages: No load balancing. No HTTP caching.

Event caching

Problem: Assembling events with all their referenced objects is an expensive operation.

Solution: Cache assembled events in a specific CF, use a TTL to expire the cache.

  • Need to invalidate the cache besides the TTL?

Timeline caching

Problem: Timelines are expensive to assemble on an ad-hoc basis.

Solution: Maintain a cache of pre-assembled timelines.

  • Use a scoreboard to decide whether to cache a timeline?
  • How often would a timeline get invalidated? Is it worth the work?
Clone this wiki locally