← Back to context

Comment by garaetjjte

4 years ago

Flush with other vendors at least does something as they block for some time too, just not as long as Apple.

Apple implementation is weird because actual amount of data written doesn't seem to affect flush time.

On at least one drive I saw, the flush command was instead interpreted as a barrier to commands being committed to the log in controller DRAM, which could cut into parallelization, and therefore throughput, looking like a latency spike but not a flush out of the cache.

  • My test is single threaded, and thus has no parallelism to begin with.

    • The drive controller is internally parallel. The write is just a job queue submission, so the next write hits while it's still processing previous requests.

      1 reply →