Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/oleksiikraievyi/highload-sw-arch-hw-11

HW 11 for highload software architecture courses. https://prjctr.com/course/highload-software-architecture?gclid=EAIaIQobChMI7OOMjvf78wIVRjcYCh1axwtgEAAYASAAEgKm2_D_BwE
https://github.com/oleksiikraievyi/highload-sw-arch-hw-11

Last synced: 11 days ago
JSON representation

HW 11 for highload software architecture courses. https://prjctr.com/course/highload-software-architecture?gclid=EAIaIQobChMI7OOMjvf78wIVRjcYCh1axwtgEAAYASAAEgKm2_D_BwE

Awesome Lists containing this project

README

        

# highload-sw-arch-hw-11

# Prerequisites
* docker
* linux + bash

# 1. Run Redis cluster
```
./run.sh
```

# 2. Observe keyspace info after 20k kvp without ttl inserted

```
docker-compose logs redis-data-filler
```

# 3. Comparison of different maxmemory-policy with 1mb maxmemory and 20k kvp without ttl inserted

| Policy | Keys count after insertion | Errors
| :----: |:--------------------------:| -----:|
| volatile-lru | 2224 | OOM command not allowed when used memory > 'maxmemory' |
| allkeys-lru | 2225 | no errors |
| volatile-lfu | 2225 | OOM command not allowed when used memory > 'maxmemory' |
| allkeys-lfu | 1575 | no errors |
| volatile-random | 2224 | OOM command not allowed when used memory > 'maxmemory' |
| allkeys-random | 1484 | no errors |
| volatile-ttl | 2225 | OOM command not allowed when used memory > 'maxmemory' |
| noeviction | 2225 | OOM command not allowed when used memory > 'maxmemory' |

# Note : if kvp is set (without ttl), for volatile policies error `OOM command not allowed` will occur. If use setex (with ttl) error is not reproduced

# 4. Redis client wrapper with cache stampede prevention is located in `./redis-client-wrapper/RedisClientWrapper.cs`

# 5. Cleanup
```
./cleanup.sh
```