README.md 1.6 KB
Newer Older
Philipp Götze's avatar
Philipp Götze committed
1
2
PTable
======
Philipp Götze's avatar
Philipp Götze committed
3
4
5

> **Note**: PTable was moved to another [repository](https://dbgit.prakinf.tu-ilmenau.de/code/nvm-based_data_structures).

Philipp Götze's avatar
Philipp Götze committed
6
7
8
9
10
A persistent analytical table structure for non-volatile memory.

Please see the file [COPYING](COPYING) for license information.

### TODOs:
11
- [x] Tests
Philipp Götze's avatar
Philipp Götze committed
12
- [ ] Get rid of expensive transactions
13
14
- [x] Improve benchmarks
- [ ] Describe usage
15
- [ ] The BlockIterator currently suffers from bugs (SEGSIGV with too big structures)
Philipp Götze's avatar
Philipp Götze committed
16
17
18

### Installation ###

19
We use the C++14 standard, thus, you need a recent C++ compiler and CMake (3.2 or newer) build environment.
Philipp Götze's avatar
Philipp Götze committed
20

21
22
In addition some third party libraries such as [Catch](https://github.com/philsquared/Catch) for testing, [Google Benchmark](https://github.com/google/benchmark.git) for benchmarking, [Format](https://github.com/fmtlib/fmt.git), and [PMDK](https://github.com/pmem/pmdk.git) are used.
These, however, are both downloaded and included during the build process.
Philipp Götze's avatar
Philipp Götze committed
23
24
25
26
27
28
29
30
31
32
33
34
35

After cloning and switching into the project directory, you can build the repository with with:
```
mkdir build; cd build; cmake ../src; make
```

Optionally you can run the tests and benchmarks with
```
make test
```


### Usage ###
36
37
38
39
The test cases and benchmarks use the directory _/mnt/pmem/test_ for storing data. Thus, make sure the pmem device is mounted at _/mnt/pmem_ and the subfolder _test_ has write permissions for everybody.
Alternatively, you can change the directory in the customization section in [CMakeLists.txt](src/CMakeLists.txt).
A detailed usage description will follow soon.
Till then the general usage can be found out by looking at test cases and benchmarks.