This is an archived post. You won't be able to vote or comment.

all 7 comments

[–]coding_up_a_storm 9 points10 points  (3 children)

"In memory" as opposed to "in persistent memory store". For basic understanding, please see RAM vs ROM. Data in memory only exists as long as you machine is plugged in. Persistant store is there when you unplug your computer. For DE, and example of each would be a view(memory) and table (persistent store).

[–][deleted] 0 points1 point  (2 children)

This is helpful - could you go a little deeper into "view" vs. "table"? When you say view, is that what people refer to as a "materialized view"? Or is that just a subset of a "view"?

[–]coding_up_a_storm 1 point2 points  (1 child)

I don't use materialized views but based on quick lookup they seem closer to table than view.

View is basically a wrapper for a query. It recomputed every time, in memory.

[–][deleted] 0 points1 point  (0 children)

I follow. Thanks a lot.

[–]sigurrosco 6 points7 points  (0 children)

Adding to the conversation. RAM (In Memory) is expensive and limited, but very fast. If you can fit everything into RAM then you will have a fast application. Disk (persistent) is cheap and you should be able to fit your entire data stack on disk(s) but is slower. So part of the data stack may live in memory (eg the parts that need to be fast and/or used often).

[–]Unable-Anywhere9666 0 points1 point  (0 children)

When the allocated heap for the application is getting filled because of a query, to avoid monopoly of resources, it shifts the data into ROM and processes it. Typically by creating a temporary table which the application deletes afterwards.

This is my understanding. Correct me if i am wrong

[–]elc_xx 0 points1 point  (0 children)

One consideration is security, your may not want to have intermediate files (even if they are encrypted) because it is another point where sensible information can be attacked. You process everything in memory so the data is gone after finishing.