←back to thread

Optimizing Datalog for the GPU

(danglingpointers.substack.com)
98 points blakepelton | 10 comments | | HN request time: 0.21s | source | bottom
1. haolez ◴[] No.45812510[source]
On a side note, what tools that leverage Datalog are in use by the HN crowd?

I know that Datomic[0] is very popular. I've also been playing with Clingo[1] lately.

[0] https://www.datomic.com/

[1] https://potassco.org/clingo/

replies(4): >>45812637 #>>45812964 #>>45816960 #>>45817369 #
2. embedding-shape ◴[] No.45812637[source]
I have some local-first/client-side applications using datascript in ClojureScript. Used datahike (FOSS Datomic alternative) some times on the backend too, but mostly tend to use XTDB nowadays, which used to have a Datalog API but I think they removed in favor of SQL-like way instead, which was kind of a shame.
replies(1): >>45813761 #
3. blurbleblurble ◴[] No.45812964[source]
Check out CozoDB, the embedded datalog-queried hybrid relational+vector+graph database written in Rust: https://www.cozodb.org/

I used it in a toy application and it was awesome.

This appears to be a dream database from the future.

replies(1): >>45813463 #
4. huevosabio ◴[] No.45813463[source]
It seems like the project has been abandoned? Last commit a year ago.
replies(1): >>45815189 #
5. manoDev ◴[] No.45813761[source]
I guess SQL is a requirement if they want to market their technology to normies.
replies(1): >>45815744 #
6. anonzzzies ◴[] No.45815189{3}[source]
Yep, bit of a shame, many nice things in it and interesting to learn from but not active.
7. zozbot234 ◴[] No.45815744{3}[source]
SQL can express Datalog-like queries rather easily using recursive CTE's, and even more so via the recently-added Property Graph Query syntax.
replies(1): >>45817304 #
8. chc4 ◴[] No.45816960[source]
CodeQL compiles to the Souffle datalog engine and I use it for static analysis. I've also used ascent for a few random side projects in Rust which is very convenient.
9. jitl ◴[] No.45817304{4}[source]
recursive CTEs suck usability-wise compared to the usual Datalog horn clause syntax. I won't speak to usability of the "datomic" kind of datalog though, that thing I haven't been able to wrap my head around.
10. jitl ◴[] No.45817369[source]
For a while the Rust compiler's borrow checker "Polonius" was implemented with datalog using the `datafrog` engine. However, it appears to me that the in-tree version of polonius is moving away from datafrog (not enough of a rustc expert to say for sure which version of the borrow checker engine is in use)