MemSQL MVCC Architecture


I have a question about MemSQL MVCC architecture.

In the MVCC architecture, the Update query will typically increase disk capacity by one row.

Delete queries will be marked with “Delete” via the Flag Column for 1 Row.

Can I see how MemSQL works for this?

Thanks in advance!

For row stores, the multi-version concurrency control strategy creates new row versions for updates. The versions are only kept in memory and only stay around as long as a running transaction might need them.

For column stores, updates are done as deletes followed by inserts. A bit in a bitmap is set to mark a row deleted from its segment. At some future point, the columnstore background merger may rewrite the segments and reclaim space for deleted rows. Typically, when 1/8 of the rows are deleted that will trigger the merger, though the merger may be triggered for other reasons. See for more about the merger.

1 Like