Assuming linearity is atomic multi-key updates:
1. There are tasks which don't require atomic multi-key updates
2. Atomic multi-key updates can be implemented on the client side (see RAMP, Percolator transactions or the Saga pattern)
3. Once the data overgrow the size of one machine you need to shard the log and at this time you're in the same situation