gdub01

gdub01

Ai.google: KV storage is old,"stateful application servers or custom in-memory stores" better

Currently #1 on HN https://ai.google/research/pubs/pub48030.

Remote, in-memory key-value (RInK) stores such as Memcached and Redis are widely used in industry and are an active area of academic research. Coupled with stateless application servers to execute business logic and a database-like system to provide persistent storage, they form a core component of popular data center service architectures. We argue that the time of the RInK store has come and gone: their domain-independent APIs (e.g., PUT/GET) push complexity back to the application, leading to extra (un)marshalling overheads and network hops. Instead, data center services should be built using stateful application servers or custom in-memory stores with domain-specific APIs, which offer higher performance than RInKs at lower cost.

Just interesting because elixir seems to have a lot of the ability to do this out of the gates. Still a little harder to scale across a number of nodes than using redis, but the building blocks are all here for stateful servers are immediately accessible which is awesome. Anyways, just thought it was interesting =)

Most Liked

amnu3387

amnu3387

:mnesia.start()
:shushing_face:

peerreynders

peerreynders

I’m not saying you are wrong that mnesia could be used in that capacity.

I was casting a much wider net to speculate where this could be going (considering another recent trend)?

Whether in the long run this is pushing towards an architectural style that allows an ephemeral deploy of a stateful application or application shard to an edge compute node to serve 1 to n users primarily from a local cache - something that is neither “serverless” or “serverful” because most of the processing doesn’t happen on the client or near persistent storage.

dimitarvp

dimitarvp

I never believed in Redis or Memcached even in my Rails days – to me they were a bandaid. I always thought, even as far back as when I coded C, C++ and Java, that every runtime needs its own builtin caching system, or, at least, a system allowing you to put stuff in in-memory database and use it almost transparently.

That’s one of my reasons for sticking with Elixir – it has that and more. OTP itself, plus ETS, persistent_term, atomics / counters, and a few more, gives you an experience that Redis and Memcached can only dream of (sans some querying though).

I don’t think Amazon, Google and Microsoft (and any cloud compute/storage provider) would risk their business like that. But even in my small country some internet business prefer to co-locate their own servers with their corporate ISP of choice.

Where Next?

Popular in Discussions Top

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
chuck
Let me start by stating an assumption: Phoenix is a great approach to building REST APIs. There are many reasons for this, but I will ass...
New
nburkley
AWS re:Invent is on at the moment with some interesting announcements. One new feature in particular is the Lambda Runtime API for AWS La...
New
mbenatti
Following https://github.com/tbrand/which_is_the_fastest |> https://raw.githubusercontent.com/tbrand/which_is_the_fastest/master/imgs...
New
IVR
Hi all, I’ve seen a number of related threads in the past, but I’d still be very curious to hear an up-to-date opinion on this topic. I...
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
tomekowal
Hey guys! I want to create a toy project that shows a chart of temperature over time and updates every 5 seconds. I feel LiveView is per...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
jesse
Hi everyone, I hesitated to post this here because I don’t want you to think I’m spamming, but I’ve been working on a Platform-as-a-Serv...
New
paulanthonywilson
I like Umbrella projects and pretty much always use them for personal Elixir stuff, especially Nerves things. But I don’t think this is ...
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29603 241
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
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
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New
jaysoifer
Is there a way to rollback a specific migration and only that one (“skipping” all the other ones)? Would mix ecto.rollback -v 200809061...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement