efficient/cicada-exp-sigmod2017-ermia

Name: cicada-exp-sigmod2017-ermia

Owner: Efficient Computing at Carnegie Mellon

Description: A fork of ermia for Cicada SIGMOD 2017 evaluation

Created: 2016-09-26 02:27:06.0

Updated: 2017-10-28 15:40:21.0

Pushed: 2017-06-09 21:55:31.0

Homepage:

Size: 5372

Language: C++

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

ERMIA

Fast and Robust OLTP using Epoch-based Resource Management and Indirection Array

For more information, you may refer to our SIGMOD'16 paper (https://github.com/ermia-db/ermia/raw/master/ermia.pdf)

Environment configurations Choosing a CC scheme

ERMIA supports Read Committed (RC), Snapshot Isolation (SI), Serializable Snapshot Isolation (SSI), and Serial Safety Net (SSN) with SI/RC. Switches are defined in src/macros.h:

SSI and SSN are mutually exclusive.

Giving -D[SCHEME] to $make also works. SCHEME can be RC, SI, RC_SSN, SI_SSN, or SSI.

Adjust maximum concurrent workers

By default we support up to 256 cores. The limit can be adjusted by setting MAX_THREADS defined under sysconf in dbcore/sm-config.h. MAX_THREADS must be a multiple of 64.

Build it

Use src/build.sh to compile ERMIA. For performance runs, $ build.sh, $ build.sh 1 for debugging.

Run it
.sh \
   [executable] \
   [benchmark] \
   [scale-factor] \
   [num-threads] \
   [duration (seconds)] \
   "[other system-wide runtime options]" \
   "[other benchmark-specific runtime options]"`

Note the quotation marks for additional options.

System-wide runtime options

--node-memory-gb: how many GBs of memory to allocate per socket.

--null-log-device: flush log buffer to /dev/null. With more than 30 threads, log flush (even to tmpfs) can easily become a bottleneck because of a mutex in the kernel held during the flush. This option does not disable logging, but it voids the ability to recover.

--tmpfs-dir: location of the log buffer's mmap file. Default: /tmpfs/.

--enable-gc: turn on garbage collection. Currently there is only one GC thread.

--enable-chkpt: enable checkpointing.

--warm-up: strategy to load versions upon recovery. Candidates are:

SSI and SSN specific:

--safesnap: enable safe snapshot for read-only transactions.

SSN-specific:

--ssn-read-opt-threshold: versions that are read by a read-mostly transaction and older than this value are considered “old” and will not be tracked; setting it to 0 will skip all read tracking for read-mostly transactions (TXN_FLAG_READ_MOSTLY).

SSI-specific: --ssi-read-only-opt: enable P&G style read-only optimization for SSI.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.