Alok,
This was discussed before, mostly by Darren and Karen, and I don't
recall there being any definite reason not to have MP as a checkpoint?
The way it would normally be used is something like:
- app registers MP
- app calls Engine, which runs MP and returns control to app
- app registers the remaining checkpoints
- app calls Engine again to run remaining checkpoints, starting
*after* MP
Even when doing a resume, MP would always have been successfully
run and would never be considered a resumable checkpoint.
Also, I don't understand issue a). Why can't MP be executed until
the manifest has been parsed?
In any event, if there is a reason why DC cannot use MP as a checkpoint,
this will not be a problem: MP provides Engine and non-Engine APIs.
Changing DC to use MP in non-Engine mode should just be a matter
of changing something like:
engine.register_checkpoint(ManifestParser, ...)
try:
engine.execute()
except ManifestError:
print "MP error"
to something like:
mp = ManifestParser(...)
doc = engine.data_object_cache
try:
mp.parse(doc=doc)
except ManifestError:
print "MP error"
Although I don't even think this is necessary.
- Dermot
On 07/14/10 00:04, Alok Aggarwal wrote:
Karen raised an important point during her
review of the DC design spec.
The spec proposes that the manifest-parser be run
as a checkpoint mainly to provide the ability to
pause at that step (and obviously resume from it).
manifest-parser is highly likely to be the very
first checkpoint that gets run.
This presents us with two problems -
a) A chicken-and-egg problem. manifest-parser can't
be executed until the manifest has been parsed.
The manifest can't be parsed until the manifest-parser
has been executed.
b) If DC is resumed from one of the checkpoints, say,
"ba-init", manifest parser still needs to get
executed prior to resuming from "ba-init". If manifest
parser is executed as a checkpoint and it is one of
the checkpoints that is listed prior to "ba-init",
it won't even get executed.
These problems could concievably solved by having
manifest-parser not be a checkpoint at all. It can't
be resumed from anyway so it would not be a huge deal;
the manifest data is represented in the volatile tree
that isn't snapshotted. We do however lose the observability
that comes with being able to stop at the manifest parsing
step.
What do people think about this?
Alok
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss