~/talk

Building Interactive Query Tools on Datomic

Talkat Clojure/West 2014 · 2014-03-24..03-26· [databases]
slides:none on file

Builds a query UI that turns user-friendly domain filters into composable Datomic datalog fragments, using instaparse for tiny DSLs, fragment builders with stable-gensym to avoid variable collisions, and optional query functions that call legacy APIs. Handles tens of thousands of jobs with a progress-visualization and drill-down rows, cuts pathological queries from 20–30 minutes to ~100 ms by reordering clauses, uses a mcache cluster for ~5x speed and 99.99% hit rate, and runs on a Datomic store with billions of datoms and multi-terabyte storage.

AI-written summary · about

  1. 0:00Intro
  2. 0:32Outline
  3. 1:09Origins
  4. 3:53Cook Cloud
  5. 5:10What do users want to ask?
  6. 7:13Goals
  7. 12:05Query design
  8. 13:10Filter Construction
  9. 16:06Mapping our Queries onto Datalog
  10. 18:17Grouping/Aggregate Construction
  11. 19:58Drill down
  12. 21:55Big Idea: Query Builder
  13. 22:45Query as data
  14. 23:35Query fragment builders
  15. 25:37Query for multiple columns
  16. 26:14Gensym + Queries
  17. 27:46Query Construction
  18. 30:45Performance Considerations
  19. 34:54Query code generation
  20. 35:58Why Datomic?
  21. 39:28In Summary
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.