---
# System prepended metadata

title: Hyrise Paper

---

# Hyrise Paper



Related Work

Describe different ways for support of LGTMDM
- Some in memory dbms implemented ways to distinguish tuples as either hot or cold, Hot stay in memory, cold are stored on secondary devices
    -  anti caching for h-store tracked accesses per-tuple and classifying lru tuples as cold
    -  siberia classifies tuples using a tuple access log
    -  hyPer hardware asssisted access tracking for separation of tuples using processors memory management unit
    -  SAP Hana attempt to enable block-wise access to coloumnar data
    -  swapping = mmap
    - buffer pool with pointer swizzling Graefe and lean store
        - refers to replacing a reference to a persistent unique object identifier with a direct reference to the in memory image of that object.
        - eliminates most buffer pool overheads
    - 
- some did it using memory mapping of files
    - see list of viktor leis
    - 
- this is discussed






Taditional db need buffer manager to retrieve data from disc to process it. (W. Effelsberg and T. H¨arder, “Principles of Database buffer management,” ACM Trans. Database Syst., vol. 9, no. 4, 1984.)
In memory db do not need a buffer manager as the entire db fits into main memory. leanstore paper shows worse performance






































Content bis Montag draft:
- Benchmark Setup
- Related work


### Deprecated
<details> 
  <summary>Old story </summary>
   Story:
    wollen persistenz in hyrise
    related work (mmap paper kommen da rein)
    andere nutzen mmap
    aber daran gibt es folgende kritik
    wir haben primär read workload
        haben keine transaktionsschwierigkeiten nicht
    unsere eigenen implementierungen ergeben messergebnisse wie folgt
    unsere implementierung - desginentscheidungen und warum da
    diskussion

![](https://i.imgur.com/32zNnny.png)
</details>

<details> 
  <summary>Old story long</summary>
    
## Ausführlicher Content

### Abstract
N/A
### Introduction
- Larger than memory DB
- Hyrise Context
- Forschungsfragen und Ziel
    - Write: Folienstory verschriftlichen
    
### Background
- Larger than memory data managment
- I/O Methoden
    - Unix Methoden
    - mmap
        - Wer hat sich schon mit mmap beschäftigt
        - Debatte um mmap
    - async I/O
- Hyrise (See Papers from FG)


### Persistence for Hyrise
Hauptteil -> Hier beschreiben wir 
- methodenauswahl
- benchmark setup
- mögliche implementationsstellen in Hyrise


#### Welche Methode
- unser read lastiger use-case
- entkräften der contra mmap punkte
- conclusion auf mmap mit Abwägung 


#### Verifizierung der Anwendbarkeit mit eigenener Implementierung
- Benchmark Setup
- Benchmark resultate
- evtl fio (?) für mehr Context?
#### Implementierung
- Änderungen an Hyrise
- Auswirkungen
- Verifikation des Erfolgs mit TPC-H
### Diskussion
- Kritik an der Implementierung
- Further Work to be done


### Related Work
- umbra, ...?
- paper discussing larger than memory managment implementation
- MMAP Extensions/New Implementations: UMAP, VMCache ... ()
- MMAP Alternatives
    - DI-MMAP, FastMap, FlashMap, Kmmap, Aquila, UMap, CO-PAGER

### Conclusion
- ???
    
    
    
Theresa Feedback:
Problem Forschungsfrage - was sind Probleme mit MMAP und Benchmarks, die diese Probleme zeigen (Beweis, das MMAP nachteile bei uns nicht applyen - schwachstellen von mmap testen mi tbenchmarks) 
- overleaf setup

Wie effizient können wir mmap bei uns implementiert bekommen
- können wi rmmap nachteile mitigieren
- benchmarks anpassen um das zu testen


TODO
Einleitung
- s Zwischenpräsentation
- hyrise
Related Work
- 
- mmap kritik
Methodenbeschreibung
    
    
</details>



### Benchmark Setup

#### Machine
- RAID von zwei Micron 7450 MTFDKCC3T8TFR NVMe SSDs
- measurements on a machine with two AMD EPYC 7F72 CPU s, each with
24 physical cores, 48 threads, a 192 MB shared L3 cache, and 256 GB of DDR4 memory with a theoretical per-socket memory bandwidth of 204.8 GB/s (von Bens Masterarbeit)
- runs Ubuntu 22.04 ?
- which Linux Kernel version ? 
- How do we compile hyrise? (which gcc version)


#### Benchmark Parameters
- thread count {1, 2, 4, 8, 16, 32, 48}
    - threads are started synchronously and then joined
    - even initial work distribution
- Filesize (1GB) (? - GiB or GB?)
- read, pread, libaio, mmap (private, shared), umap (private, shared)
- sequential / random (? sollten wir random nennen?)
- 


#### Benchmark Workflow
- Google Benchmark defines how many iterations (?)
- each benchmark we create random nums to reach filesize -> Jan hat das geändert, sodass wir momentan immer sie selben Zahlen nutzen (ノಠ益ಠ)ノ彡┻━┻ 
- calculate checksum
- write these to disk
- if random, we generate random indizes to access all generated nums in random pattern
- use method sys call method/mmap/umap to read
- calculate checksum of read file and compare to previously calculated checksum
    - mmap/umap by reading values already calculates checksum
- google benchmark returns cpu and real time
- calculate throughput based on real_time and filesize




## Ausführlicher Content

Forschungsfrage: Wie larger than memory database management for hyrise?

### Abstract
N/A
### Introduction
- Larger than memory DBM
    - Warum bisher nicht Möglich für Hyrsie? Warum Thema?
- Hyrise Context
- memory mapping als erste möglichkeit
- mmap contra von leis
- Forschungsfragen und Ziel
    - mmap wirklich so schlimm
    - wie hyrise LGTMDBM
    
### Background
- Larger than memory data managment
- I/O Methoden
    - Unix Methoden
    - mmap
        - Wer hat sich schon mit mmap beschäftigt
        - Debatte um mmap
    - async I/O
- Hyrise (See Papers from FG)
    - table format
    - chunk architecture
    - research db


### Related Work
- Viktor Leis mmap detailliert
- umbra, ...?
- paper discussing larger than memory managment implementation
- MMAP Extensions/New Implementations: UMAP, VMCache ... ()
- MMAP Alternatives
    - DI-MMAP, FastMap, FlashMap, Kmmap, Aquila, UMap, CO-PAGER


### Persistence for Hyrise
Hauptteil -> Hier beschreiben wir 
- was gibt es neben mmap
- wie steht mmap da, was potentieller verlust?
- benchmark setup
- mögliche implementationsstellen in Hyrise


#### Welche Methode
- unser read lastiger use-case
- entkräften der contra mmap punkte
- conclusion auf mmap mit Abwägung 


#### Tatsächliche Tradeoffs mit eigenener Implementierung
- Benchmark Setup
- Benchmark resultate
- evtl fio (?) für mehr Context?
#### Implementierung
- Änderungen an Hyrise
- Auswirkungen
- Verifikation des Erfolgs mit TPC-H
### Diskussion
- Kritik an der Implementierung
- Further Work to be done

### Conclusion
- ???





# Neustes Feedback
- LGTMDB → wie kommen wir dahin auf Hyrise
    - warum geht es bisher nicht?
    - x müssen wir in hyrise machen
    - mmap eins der leichtesten wege - memory mappen
    - pavlo meint is kacke, was ist osnst bekannt über mmap RELATED WORK
    - unser eingeschränkter usecase
    - wie stellen sich io methoden gegenüber, was verlieren wir mit mmap
        - nicht alles verglichen und dann mmap gewählt
        - eher: wie schlimm ist mmap wirklich
    - mmap kritik paper eher in introduction, kann auch wiede rins related work