Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Clojure is an amazing language, so i'm willing to go the extra mile to attempt to understand this work. However there's one thing that I can't get over. From my understanding, the big idea is the query engine is brought local, and the storage would eventually come local too. It seems like for smallish db's this is fine. What happens though if you're working with a rather large database?

Additionally, If local means the users client, how is security of the data ensured?



Not the _entire_ database is moved locally, only enough to efficiently handle the queries of interest. (i.e. queries run against a dynamic local cache of the database)


The key is that you can replicate peers and partition at the app level so that each peer in your infrastructure has the working set in memory. Compare with sharding as a partitioning mechanism in the database layer. The nice thing is that the data is cached on demand so the working set can change over time.

Terracotta and other data grid architectures do something similar.


What does this have to do with clojure? This system could have been build in any language, clojure only uses some of the same ideas (working with values). I cant help you with your question, sorry.


From my understanding the same guy wrote both. My point was that I personally view Clojure as a bit of genius.


Right. Agree.


Local data is immutable (read-only). Also, the Peer cache uses a LRU replacement strategy; older data will drop off as new data comes in to keep most-recent local data in memory.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: