Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
(ns slouchdb)
; Fast scalable in-memory concurrent NoSQL database
(def db (ref {:bob {:age 59 :sex :male}
:bill {:age 17 :sex :male}
:mary {:age 28 :sex :female}}))
;; Views ;;
(defn total-age []
(reduce + (pmap (comp :age val) @db))) ; Parallel MapReduce!
;; Examples ;;
(println (apply str (interpose \newline
["Get an item"
(:bob @db)
"Add/update an item"
(dosync (alter db assoc-in [:bill :age] 25))
"Delete an item"
(dosync (alter db dissoc :mary))])))
; For scaling, press CMD or CTRL and + or -
; For a persistent version, see
; For a REST API, check out Moustache and Aleph.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment