acrolink

acrolink

Storing any type of Elixir data in PostgreSQL

I stumbled upon this:

https://medium.com/@kaisersly/storing-any-elixir-data-in-postgres-e8f93367f473

I am looking for a way to store transient data in PostgreSQL. Basically, LLMChains that can grow big in size.

Is there any better way to do it ? The article suggests using :binary and Term. Or is this actually the perfect way to do it ?

First 10 of 11 Posts Switch mode

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

How big is big? Past a certain point you probably want an object store. Before that though binary and term are quite useful. If you want want to be able to search it from within the DB though consider :jsonb

dimitarvp

dimitarvp

If size is an issue you either use term_to_binary with compression or just use a full-blown object store as @benwilson512 suggested.

acrolink

acrolink OP

@benwilson512 What do you mean by object store?

Aetherus

Aetherus

Do you need to index them?

hkrutzer

hkrutzer

Amazon S3 or Minio are examples of object stores. They’re also often called blob storage.

acrolink

acrolink OP

I need to look them up by a key, so yes. The data can get big, since it is a chain of AI messages

Aetherus

Aetherus

Maybe, just maybe, you can add two columns, one is for the key (indexed), and the other is for the arbitrary Erlang/Elixir data structure encoded in binary.

acrolink

acrolink OP

I think it all comes down to how big the data for each item will be. Yes, if it gets big, then maybe yes, this way in a standard PostgreSQL DB, not memory, mnesia or ETS.

acrolink

acrolink OP

Can it be stored compressed? The binary data?

dimitarvp

dimitarvp

External Term Format — OTP 29.0.2 (erts 17.0.2) seems to say that the data is zlib-compressed.

Where Next?

Trending in Questions Top

jonnycharles
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
silverdr
Using Phoenix.LiveView.TagEngine as an EEx.Engine is deprecated! To compile HEEx, use Phoenix.LiveView.TagEngine.compile/2 instead. Sta...
New
dli
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app? Looking for hints regarding: Addi...
New
bottlenecked
Hi all, I wanted to ask how the community is dealing with post-release steps. Today we have Ecto migrations, which make sure that the db...
New
michallepicki
I am using Oban and occasionally, shortly after a deployment, a handful of jobs can fail because of dependency on other parts of the syst...
New
rahultumpala
Hello, I have an Elixir backend that implements a custom protocol over TCP. I want to load test the backend and assess the performance o...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New
akoutmos
@hugobarauna and I (Alex Koutmos) have been hard at work on writing a book on Nerves that takes you from simply blinking LEDs to building...
New

We're in Beta

About us Mission Statement