4 ms·
> decoupled from the horrors of an unreliable network The first rule of network transparency is: the network is not transparent. > Or: I’ve yet to see a code
by tbrownaw 2y ago
> decoupled from the horrors of an unreliable network
The first rule of network transparency is: the network is not transparent.
> Or: I’ve yet to see a code base that has maintained a separate in-memory index for data they are querying
Is boost::multi_index_container no longer a thing?
Also there's SQLite with the :memory: database.
And this ancient 4gl we use at work has in-memory tables (as in database tables, with typed columns and any number of unique or not indexes) as a basic language feature.
- anonyfox 2y agoIn Elixir/Erlang thats quite common I think, at least I do this for when performance matters. Put the specific subset of commonly used data into a ETS table (= in memory cache, allowing concurrent reads) and have a GenServer (who owns that table) listen to certain database change events to update the data in the table as needed. Helps a lot with high read situations and takes considerable load off the database with probably 1 hour of coding effort if you know what you're doing.
- TeMPOraL 2y ago> Is boost::multi_index_container no longer a thing? Depends on the shop. I haven't seen one in production so far, but I don't doubt some people use it. > Also there's SQLite with the :memory: database. Ah, now that's cheating. I know, because I did that too. I did that because of the realization that half the members I'm stuffing into classes to store my game state are effectively poor man's hand-rolled tables, indices and spatial indices, so why not just use a proper database for this?. > And this ancient 4gl we use at work has in-memory tables (as in database tables, with typed columns and any number of unique or not indexes) as a basic language feature. Which one is this? I've argued in the past that this is a basic feature missing from 4GL languages, and a lot of work in every project is wasted on hand-rolling in-memory databases left and right, without realizing it. It would seem I've missed a language that recognized this fact? (But then, so did most of the industry.)
- phyrex 2y agoABAP, the SAP language has that, if i remember correctly
- tbrownaw 2y ago> Which one is this? I've argued in the past that this is a basic feature missing from 4GL languages, and a lot of work in every project is wasted on hand-rolling in-memory databases left and right, without realizing it. It would seem I've missed a language that recognized this fact? https://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language https://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Lan... Dates back to 1981, called "Progress 4GL" until 2006. https://docs.progress.com/bundle/abl-reference/page/DEFINE-TEMP-TABLE-statement.html https://docs.progress.com/bundle/abl-reference/page/DEFINE-T...
- aiono 2y ago> The first rule of network transparency is: the network is not transparent. That's precisely why current request model is painful.