allen-munsch

allen-munsch

MosaicDB - a hobby project that uses Nx (distributed SQL vectordb rag)

I wanted to stop by to say thank you

I was recently working through a hobby learning project for retrieval augmented generation, with some bells and whistles ( elixir is not my first language )

It’s probably reinventing the wheel, but hey, wheels can be interesting:

https://github.com/allen-munsch/mosaic

And well, Nx made it so easy to do!

So, again, Thanks!

Most Liked

seanmor5

seanmor5

Author of Genetic Algorithms in Elixir

Really cool project! Kudos!

jstimps

jstimps

Not sure if this will be helpful, but I can share my experience so far.

I’m still on this journey, more of a side quest. I have a working implementation of HNSW in Erlang, using FDB for storage, and Nx for vector operations. Benchmarked against the Irisa Sift datasets, recall is good, but predictably performance is quite poor. Having to do hundreds of network round trips for graph traversal is a death knell. I knew this going in, but I wanted to see it for my own eyes. If only there was an embedded data store that I could drop in as a replacement… :smiley:

I’m not up to date on the SOTA, but I am interested in continuing my side quest by studying SPANN+SPFRESH. I’m sympathetic to the idea that the vector store is changing dynamically over time rather than a static graph computed by some periodic job, as is typical elsewhere.

I also believe that the need for optimizing compute over a graph will only increase, both in hardware accelerated compute and also in database query execution, and perhaps even some combination of the two someday.

jstimps

jstimps

Here’s the datasets I was referring to

http://corpus-texmex.irisa.fr/

My comment about embedded key value stores was made as a reference to some recent new projects announced on the forum, including Hobbes and Bedrock. Both are projects I’m following closely.

Regarding your new approach, for my own use cases for ANN, I wouldn’t be able to accept the heavy compromise on recall. But perhaps there are other use cases where that’s ok.

Last Post!

garrison

garrison

Consensus algorithms (vsr/paxos/raft/etc) are the only tool for fault-tolerant strong consistency.

The bug in your example is that in consensus the leader is not allowed to reply before replicating to a quorum, all of whom must persist to disk. Of course there is nothing database companies love to do more than lie about guarantees, and the exceptions (e.g. Tigerbeetle) are rare.

But this is not a technical problem.

Where Next?

Popular in Discussions Top

JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54921 245
New
sergio
There’s a new TIOBE index report that came out that shows Elixir is still not in the top 50 used languages. It also goes on to call Elix...
New
MarioFlach
Hello, I want to share a project I’ve been working on for a while: https://github.com/almightycouch/gitgud Background Some time ago I ...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 40042 209
New
lucaong
Hello Elixir and Nerves community, I have been working for a while on an open-source embedded key-value database for Elixir, that I call...
230 14350 124
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New
fireproofsocks
I’ve been working on an Elixir project that has required a lot of scripting. I usually reach for Elixir because I like it more (and in th...
New

Other popular topics Top

Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 130286 1222
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement