feature: load‑aware file distribution (based on total requested file size)

Vladimir Markidonov requested to merge feature/fair-file-distribution into main
  • server-registry — Map<URI, Long> (no UUID). Load = sum of file sizes across all active requests
  • statement-cache — Map<String, HandleState>. Replaces multi-key cache
  • HandleState record bundles query, file paths, owning server URI, and byte weight — TTL 10 min via Hazelcast expiration
  • EntryExpiredListener on statement-cache decrements server load when a cached statement expires — ensures load eventually consistent even if a server crashes mid-request Closes #6 (closed)

Merge request reports