Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ItemWhoNotes
Priorities (what problems are we solving?)All
    • Speed: speed is a feature. Predictably say how long some ingest will take.
    • Allowing recovery from failure; pick up where it left off.  Speed affects this; if it's fast enough you don't have to worry about it. Otherwise, make sure there's recovery. Harvesters should allow recovery, where possible. Indexers could also be less speedy than mappings and enrichments, and may deserve recovery features.
    • Adding automation that was originally specified: have a program that shepherds the process all the way through. Scheduling.
    • Eventually, provide a useable mapping DSL
      • Needs real market research
      • This is not a turnkey solution yet. Some things like DSLs will be evaluated later when we can more confident in understanding how big the user base is.
      • Writing mappings ourselves in the third system without a DSL will allow us to understand the problem space better.
    • Ability to debug things, especially mappings
Code examples

Michael et. al.

Got walkthroughs of the Python, Python + Spark, Java, and Scala prototypes

Considerations for language environments:

  • Staff allocation for necessary professional development
  • Mental "context switching" with multiple environments
  • Server cost, if having to run more servers (consider execution speed memory usage if able to run on just one node, e.g.)
  • Performance
  • Ease of use for novice / non-programmer
  • Ease of writing a DSL in it
  • Ability to be explicit in code (e.g. types). Fewer inferences, LESS MAGIC!
  • Ease of deployment. (local, production, dependencies)
  • How easy for other institutions to adopt our code or experiment with it.
Scheduling systemAll

Scheduling / operation chaining / "Plans" in the Prov-O sense

  • Need metrics for what qualifies job failure. (Partly thought out)
  • Need to get together and assess our experiences running ingests.
  • If we automate things, we need to know how to define success.
  • Tools exist that can help with this.
  • Need to schedule a period after basic manual ingest running is figured out, but need to design for there being a scheduling facility. Per "General consensus" section below, we will design programs for each activity in the ingest process that have their concerns passed to them. They will not know anything about the scheduling system that calls them. They will not be bound to them with database models. They will save manifests that document the results of their operations.
Roadmapping all of thisAll

...