[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [lvm-devel] [PATCH] Fix RHBZ 754198 (multiple dmeventd snapshot extensions)



Dne 18.11.2011 10:52, Petr Rockai napsal(a):
Hi,

Alasdair G Kergon<agk redhat com>  writes:

    (new_size = old_size + amount_to_extend_by)>
	old_size_in_use + ((100 + autoextend_percent) - autoextend_threshold) / (100+autoextend_percent) * (old_size + amount_to_extend_by)

IOW we scale the parameters based on the amount currently in use.

For example:

     snapshot_autoextend_threshold = 70
     snapshot_autoextend_percent = 20

[snip] This is all great, but completely besides the point. So let me
stress the point once more:

- snapshot DSO monitors a snapshot, getting its status line every 10
   seconds or so
- the DSO has *no access* to the policy variables, because it does not
   (and can not) read lvm.conf

The formula above should be placed inside lvresize (_adjust_policy_params()).

It's advantage was to resize in a way - the it should avoid the need of
quick subsequent (i.e. more then autoextend_percent - so if you fill
snapshot very fast, there should be some reserve to catch up within
next 10s check.

The problem:

- to check whether anything needs to happen, lvextend needs to be
   executed (this is *expensive*, even if it decides no action needs to
   happen)

- if nothing needed to happen, we don't need to call lvextend until the
   utilisation has grown; *but* we don't know whether anything happened
   (without ENO_ACTION_NEEDED that is)

But you still call dmeventd_lvm2_run() - which is the most expensive
operation here - so I do not exactly see what do you actually safe here
i.e. if the resize will not happen because according to policy it's not
yet needed - then I do not see any difference ?

Zdenek


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]