ScyllaDB uses a shared-nothing architecture where data is split into partitions across nodes and shards. The "hot partition problem" can occur when a partition becomes overloaded, impacting other nearby partitions. To address this, ScyllaDB implements per-partition rate limiting which counts operations and rejects some to keep the rate under a defined limit. Exceptions were initially making rejections expensive, but this was addressed by avoiding exceptions or implementing missing exception inspection capabilities. In benchmarks, rate limiting restored goodput and provided more stable performance under timeouts.