datahike

https://datahike.io/, Join the conversation at https://discord.com/invite/kEBzMvb, history for this channel is available at https://clojurians.zulipchat.com/#narrow/stream/180378-slack-archive/topic/datahike
whilo 2020-07-20T01:42:15.013900Z

Yes, Stack Overflow has benefits, so far we have not tracked questions there, but we will if you want to put it there.

whilo 2020-07-20T02:02:37.020700Z

@tangj1122 I think the value proposition of datalevin makes sense, try to cover one backend well and have high throughput. For our next iteration we already have similar performance in our internal benchmarks for the hitchhiker-tree, but we also have full history, schema support, have flexible and evolvable storage backends and while the hitchhiker-tree might look "experimental", we actually have ported it already to ClojureScript (and reactivate the port atm.). We also have almost completed our garbage collector. So our storage backend is actually less experimental, but a lot more work to get right, because we aim for reach. We are not just piggybacking on one external index. We would be open to merge the projects and provide LMDB as another backend (which would be very cool), but Huaha has never reached out to us and we have just learnt about datalevin last week. Have you talked to him?

πŸ‘ 3
jeff tang 2020-07-20T15:40:32.024800Z

Haven’t talked to him. Only scanned datalevin. Really excited for cljs port!

Ben Sless 2020-07-20T07:23:19.022200Z

curiosity/implementation details question: I've been watching the day of datomic videos and Stu mentions attributes are entity references and what actually gets saved in the backend are longs. Does datahike operate in the same manner or are attributes saved without indirection?

kkuehne 2020-07-21T17:43:28.025100Z

Yes, but it will also enable a better integration of datalog queries that would involve reference resolutions.

Ben Sless 2020-07-21T18:51:05.025300Z

How so?

2020-07-21T22:34:57.025500Z

You can query :find [?e ?a "blah"] [?a :db/cardinality ?c], for example.

2020-07-21T22:35:11.025700Z

With attributes as keys, you have to do an extra step

2020-07-21T22:35:21.025900Z

(err... s/step/join)

2020-07-21T22:36:35.026100Z

:find [?e ?a "blah"] [?a-ident :db/ident ?a] [?a-ident :db/cardinality ?c]

Ben Sless 2020-07-22T05:00:54.026500Z

ah, I see. Cool πŸ™‚

kkuehne 2020-07-20T08:27:59.022300Z

At the moment attributes are saved as keywords but we are working on entity references as well. It is planned to be optional.

πŸ™ 1
Ben Sless 2020-07-20T08:54:29.022600Z

Will it enable more efficient access and storage? It will allow a more compact memory layout of array<long> vs array<Object>