memoryam

This Release
memoryam 0.0.1
Date
Status
Stable
Abstract
In-memory TableAM implementation
Description
This is an in-memory temporary table implementation for PostgreSQL.
Released By
jerrysv
License
PostgreSQL
Resources
Special Files
Tags

Extensions

memoryam 0.0.1
In-memory TableAM implementation

Documentation

Store
An Overview of MemoryAM’s Storage Engine
Lifecycle
Lifecycle of a MemoryAM Temporary Table in PostgreSQL

README

MemoryAM - An in-memory table storage method for PostgreSQL

MemoryAM is an in-memory TEMPORARY TABLE implementation in C++ of a PostgreSQL storage method. Its mission is to be a simple implementation of a TableAM storage system. As such, we store all changes in memory, and only allow access from a single connection.

More information about the extension and how it works can be found in Lifecycle.md, and more information about how the storage engine works can be found in Store.md.

What is it?

A very simple implementation of TableAM that allows for experimentation in a fairly safe sandbox.

What is it not?

Something you should use in any production environment. This is a learning tool, not production code.

FAQ

Does MemoryAM Support Indexes?

No. Some design decisions were made to keep MemoryAM extremely simple, and thus indexes are not supported.

Are transaction supported?

Yes, at the basic level transactions are supported. This does not include sub-transactions or CommandId’s.

Is vacuum supported?

No, the decision was made to forego implementing a vacuum strategy for now, but it would be fairly easy to add.

Is (my favorite feature) supported?

Likely no, again this is a very simple TableAM implementation that implements a simple MVCC and skips over some of the more advanced implementations such as indexes, custom scans, bulk insertion, or altering the structure of the table itself.

Building

Generally, running make should get things built.

After that, a make install should get MemoryAM installed, and make installcheck can run the tests for you.

If you have doxygen involved, you can build the code documentation by running doxygen src/Doxyfile.