Computer Organisation Architectures
LeanStore
- Describes how the pre-cursor Umbra’s buffer manager works
- Slight modifications result in Umbra’s implementation. Crux of the implementation is in this paper.
- Background contains some other hybrid buffer managers
- Can be looked into if needed.
- Each optimisation technique described can be used individually
- Pointer swizzling
- Page replacement policy
- Randomly set 10% of pages as cooling
- Evict once they reach end of FIFO queue
- Used pages, move out of queue

- Latching
- Better implementation is present in Umbra. Use this only if ref is needed
- Data structures needed for keeping track of state of buffer manager
- Described well in LeanStore. Not present in Umbra
- Buffer-managed data structures
- Talks about owning swips and the swip hierarchy in a tree
- Cites a paper which implements a HT on LeanStore. Might be interesting for spilling state during a join
Any other languages/frameworks/topics you think we should look at? 202308131514
Status: #idea
Tags: OS
Computer Organisation Architectures
Von Neumann Architecture
- Also known as stored program concept
- Has a unified cache
Stored Program Concept
Only programs in memory can be executed by a MuP.
Programs in I/O need to be moved to memory before execution
Harvard Architecture
- Cache is split into instruction cache and data cache
- Advantages
- Data and instructions can be pre-fetched independently
- Less overhead to enforce protection mechanisms for data
- Problem: The statically split cache, leads to wastage of space
Info
Instruction cache: Read only
Data cache: Read-write
Modified Harvard
- L2 cache is unified, but L1 is still split
- More efficient use of space than Harvard.
- Used by almost all modern systems
- Allows for code to be modified during run-time
References
LeanStore
- Describes how the pre-cursor Umbra’s buffer manager works
- Slight modifications result in Umbra’s implementation. Crux of the implementation is in this paper.
- Background contains some other hybrid buffer managers
- Can be looked into if needed.
- Each optimisation technique described can be used individually
- Pointer swizzling
- Page replacement policy
- Randomly set 10% of pages as cooling
- Evict once they reach end of FIFO queue
- Used pages, move out of queue

- Latching
- Better implementation is present in Umbra. Use this only if ref is needed
- Data structures needed for keeping track of state of buffer manager
- Described well in LeanStore. Not present in Umbra
- Buffer-managed data structures
- Talks about owning swips and the swip hierarchy in a tree
- Cites a paper which implements a HT on LeanStore. Might be interesting for spilling state during a join