Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

Date

Attendees

Goals

  • Discuss R&D projects.

  • Discuss allocation and make issue tracker tasks for prototype work.

  • Discuss milestones, deadlines.

  • Generate list of priorities for what we want our solution to achieve

Discussion items

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


General consensus on the project's design philosophy is to follow these principles:

Action items

  •  
  • No labels