amotin commented on this pull request.
> @@ -1039,6 +1039,13 @@ metaslab_group_allocatable(metaslab_group_t *mg,
> metaslab_group_t *rotor,
if (mg->mg_no_free_space)
return (B_FALSE);
+ /*
+ * Relax allocation throttling for ditto blocks. Due to
+ * random imbalances in allocation it tends to push copies
+ * to one vdev, that looks a bit better at the moment.
+ */
+ qmax = qmax * (4 + d) / 4;
Your version should do the same. I don't mind.
I chose it mostly empirically. My first version of the patch was just ignoring
throttling for copies completely, and it worked fine, but then I thought it may
be not good to remove all the limits, since then it would always allocate
copies to following vdevs, even if they are slow, so I ended up like this, and
my tests shown no more copies allocated to the same top-level vdev. But If you
prefer some other logic, or think that strict use of following vdevs is good,
it would work for me too.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/openzfs/openzfs/pull/688#discussion_r213706073
------------------------------------------
openzfs: openzfs-developer
Permalink:
https://openzfs.topicbox.com/groups/developer/T5b2a8092d211827d-Md562f7dc13986b873db852b0
Delivery options: https://openzfs.topicbox.com/groups/developer/subscription