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

Reply via email to