I can only assume the reason why you want to avoid a reboot, all because the resulting high latency operation is not a bandwidth issue, but a problem for the response (both human and in the sense of SLA).
In theory, you can use a modified private destination hash table like this:
- remember all previous sizes in which elements were added.
- When resizing, keep the old buckets connected to each other using the size map WhenUsed → buckets (obviously, if the buckets are empty, you need not worry)
- An invariant mapping of the key k exists in only one of the "internal hash tables" at any time.
- , , . .
- , O , .
- , , , X , X - .
- ( , , , ) ( ), - , .
( ), . .
, , "", , , , . .
, , "" . , , , , .
- ( ) , , , , , , .