parallel
[Top][All Lists]
Advanced

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

SQL save mode for GNU Parallel?


From: Ole Tange
Subject: SQL save mode for GNU Parallel?
Date: Thu, 30 Jul 2015 14:26:34 +0200

I just discovered a fork of GNU Parallel:
https://github.com/stephen-fralich/parallel-sql/

It saves into PostgreSQL.

If GNU Parallel should have an --sql option, it should be more general
than that. It would be obvious to use a DBURL to specify which driver,
username, password, and database to use.

The most obvious would be having a table containing the columns from
--joblog and the arguments. For some uses it would also make sense to
have the stderr+stdout.

So I am thinking of:

  --sql mysql://user:pass@host/db/table

If the table does not exist: Create it.

But should there be an option to not store stderr+stdout? And if so:
Should that be default? If saving is forced, then you can always just
>/dev/null the output from the job.

I can definitely see uses of being able to run 1000000 simulations
with 10 different variables and then be able to easily get the output
of the jobs where variable A is odd and > variable B (or similar).

What should happen if the user uses variable names that are the same
as the header of --joblog (e.g. Seq or stdout)?

It would also be handy if you could change the status of a job to
'not-run' (which could be represented with exit status -2), so you
could change this while GNU Parallel was running or add new jobs.

You could then have workers that did took jobs out of a database table:

  forever parallel --sql mysql://user:pass@host/db/table

And a master node that submitted jobs to the table:

  parallel --dry-run --sql mysql://user:pass@host/db/table the_job ::: the args

--dry-run with --sql should put status to 'not-run'.

But that would also require some sort of handling of timeout: worker-2
has started job-seq-4 3 seconds ago, and should not be considered
timed out, thus no other worker should take that job.

GNU Parallel will not depend on DBD-packages installed, but will only
used these when the user asks for the driver. So in package speak it
should probably 'suggest' the DBD-packages.

Ideas? Suggestions? Observations?


/Ole



reply via email to

[Prev in Thread] Current Thread [Next in Thread]