EVCache is a distributed, in-memory Data Management service. It provides a client library used by various application types (Web services, microservices, standalone apps, SPARK, and FLINK).
Core Architecture:
- Internal Mechanism: It uses
spymemcached to communicate with a cluster of memcached servers. - Multi-Zone Replication: EVCache clusters (ServerGroups) are provisioned in each zone. Every write is replicated across all zones (e.g., three writes for every one application-level write).
- Read Strategy: To meet SLAs, reads should primarily occur from the local zone.
- Consistency Model: EVCache prioritizes availability and speed. Write-failures or Write-After-Write (WAW) hazards may lead to temporary data inconsistencies across zones. This is mitigated by short TTLs, Kafka-based write-failure logging for consistency checkers, or application-level retries.
- Fault Tolerance: Read failures are automatically retried on other copies to mask transient failures.