Skip to content

Sibling project of MinTxEngine for unWAL-ed unLock/unLatch-ed storage of data on disk pages backed volatile storage (using mmap).

Notifications You must be signed in to change notification settings

RohanVDvivedi/VolatilePageStore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VolatilePageStore

This project provides a temporary-file backed storage of pages. It is compatible with page_access_method interface of TupleIndexer. The data store provides no logging and no persistence and obviously no-ACID guarantees. The store is volatile even if backed by disk, because it only serves to provide an extended 64-bit address space even on 32 bit systems.

There is no locking/latching involved in this project except while allocating a new page, or deallocating an old one. The pages are accessed directly by mmap-ing them upon requests, no locks/latches involved. It is you who needs to ensure that upon coupling this project with TupleIndexer, that you will have to add datastructure (bplustree and hashtable) level locks.

This project is a sibling project of MinTXEngine, It serves to provide volatile data storage for the database storage engine built on top of MinTxEngine. It should primarily be used for storing volatile database lock-tables and intermediate query results, and all other stuff that do not need to be persistent like views.

Using this project you will never experience aborts (no WAL-no atomicity/no durability), you will only have crashes upon failures, as soon as mmap/malloc or ftruncate fails, this is why you need MinTxEngine, to make things ACID.

Setup instructions

Install dependencies :

Download source code :

  • git clone https://github.com/RohanVDvivedi/VolatilePageStore.git

Build from source :

  • cd VolatilePageStore
  • make clean all

Install from the build :

  • sudo make install
  • Once you have installed from source, you may discard the build by make clean

Using The library

  • add -lvolatilepagestore -lblockio -lboompar -lcutlery -lpthread linker flag, while compiling your application
  • do not forget to include appropriate public api headers as and when needed. this includes
    • #include<volatile_page_store.h>

Instructions for uninstalling library

Uninstall :

  • cd VolatilePageStore
  • sudo make uninstall

About

Sibling project of MinTxEngine for unWAL-ed unLock/unLatch-ed storage of data on disk pages backed volatile storage (using mmap).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published