views:

70

answers:

1

I was just reading an update from a friend's project, mentioning the use of memtables to store data temporatily and then flush to a table on disk. Up to now, I have never faced a situation where I would use a memtable, or a situation where I would think the use of a mem table would be beneficial; so I wonder, when would someone use mem tables? what makes a memtable (appart from access speed) a reasonable choice? and how safe is it, even for temp data? there is always the limitation of available physical memory.

+3  A: 

Is your friend's project using Cassandra (or a similar NoSQL project)? Because that product use Memtables structures in exactly the way you describe.

Whereas all the DBMS products you include in your tags already implement their own memory management/data writing routines. I cannot imagine why we would want to overlay a feature the RDBMS already provides to us. Unless we have too much idle time and need to burn some budget.

APC
That is correct, cassandra, bigtable, dynamo. As I never came to the point of facing problems that require more scalability and speed than (my)sql currently offers with "traditional" ways I guess it sounded a bit exotic to me at first, but after more careful reading it indeed makes sense for large and demanding applications. Ofcourse, the question was more intended to address the case of using memtables without the use of the above techniques and technologies.
Spiros