elandau edited this page Feb 9, 2012 · 4 revisions
Clone this wiki locally

Connection Pool

Astyanax provides a complete abstraction of the connection pool implementation from the API layer. Some key features include,

  1. Automatic failover with context
  2. Pinning request to a specific host
  3. Host partitions based on token ranges
  4. Pluggable latency tracking strategy
  5. Pluggable host selection (ex. Round Robin, Lowest latency first)
  6. Pluggable bad host detector to determine when to mark a host as down (ex. if it times out too frequently)
  7. Pluggable monitor interface. There is no logging inside the connection pool.
  8. Pluggable host retry backoff strategy.
  9. Pluggable node discovery strategy. Can use ring_describe or custom node registry service.
  10. Minimal use of synchronized by using non-blocking data structures

Provided implementations

  1. Basic round robin
  2. Token aware
  3. Bag of connections