All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pete Zaitcev <zaitcev@redhat.com>
To: Jeff Garzik <jeff@garzik.org>
Cc: Project Hail List <hail-devel@vger.kernel.org>
Subject: Re: [Patch 4/4] chunkd: add self-checking
Date: Tue, 12 Jan 2010 09:52:29 -0700	[thread overview]
Message-ID: <20100112095229.367ec84e@redhat.com> (raw)
In-Reply-To: <4B4C8564.7030303@garzik.org>

On Tue, 12 Jan 2010 09:21:24 -0500
Jeff Garzik <jeff@garzik.org> wrote:

> 	sleep(n)
> 	self_check()
> 
> algorithm seems less useful to the average admin than a slightly more 
> complex one that solves the problem defined as "guarantee an object is 
> checked at least every N days."  Because, as the dataset grows beyond a 
> test database measures in megabytes, the dataset scan time will dwarf 
> the self-check sleep period.  The behavior becomes one of constant 
> scanning, with a tiny period of rest in between.

That's obvious. You also forgot to recall that your "fat" node
exhacerbates the problem, but conversely, splitting them up helps.
The single-threaded design is on purpose: it provides a crude
method of load control. But that aside, two things about your
scheme:
 - how do you select N? It is no different from n in its arbitrariness.
 - "as the data set grows beyond a test database", it is going to
   take more work to satisfy N.
What you are proposing is actually no different. It is not more
adaptive.

> It seems like either (a) tracking the total dataset size and total 
> dataset scan time, or (b) tracking and modifying per-object 
> last-self-check times, would be needed.

Well, that would be nice.

Still, we are powerless to keep the scan time down when the dataset
grows. At best, we can sacrificy the mean detection time and constrain
the power that the scan consumes.

I'm thinking about doing just that actually. But first I'm going to
implement a reporting scheme in tabled.

> Also of relevance to admins is scan start time.  This patch would have a 
> scan begin at essentially random times throughout the day or night, in 
> particular occurring during the most heavily-trafficked portion of the 
> day.  An algorithm that occurs on hour N every day (or hour N, day M of 
> each week) is much more predictable, regardless of dataset size.

So, you want the mean time to detect to be at least 12 hours.
I can do that if you insist.

> Another option is to add an administrative command "START SCAN", and 
> permit an external utility, scheduled by cron or executed by "make 
> check", to be the entity that starts the scan thread in the background. 
>   That would permit maximum flexibility for both the admin and our 
> testsuite.

We can do that too, I guess. Just don't know when.

-- Pete

      reply	other threads:[~2010-01-12 16:52 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-27 23:59 [Patch 4/4] chunkd: add self-checking Pete Zaitcev
2010-01-12 14:21 ` Jeff Garzik
2010-01-12 16:52   ` Pete Zaitcev [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100112095229.367ec84e@redhat.com \
    --to=zaitcev@redhat.com \
    --cc=hail-devel@vger.kernel.org \
    --cc=jeff@garzik.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.