├── .gitignore ├── README.md ├── pom.xml ├── problem-statement.md └── src ├── main └── java │ └── com │ └── uditagarwal │ ├── exceptions │ └── StorageFullException.java │ ├── model │ ├── LevelCacheData.java │ ├── ReadResponse.java │ ├── StatsResponse.java │ └── WriteResponse.java │ ├── policy │ ├── EvictionPolicy.java │ └── LRUEvictionPolicy.java │ ├── provider │ ├── CacheProvider.java │ ├── DefaultLevelCache.java │ ├── ILevelCache.java │ └── NullEffectLevelCache.java │ ├── service │ └── CacheService.java │ └── storage │ ├── InMemoryStorage.java │ └── Storage.java └── test └── java └── com └── uditagarwal └── service └── CacheServiceTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.iml 3 | target 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/README.md -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/pom.xml -------------------------------------------------------------------------------- /problem-statement.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/problem-statement.md -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/exceptions/StorageFullException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/exceptions/StorageFullException.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/model/LevelCacheData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/model/LevelCacheData.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/model/ReadResponse.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/model/ReadResponse.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/model/StatsResponse.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/model/StatsResponse.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/model/WriteResponse.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/model/WriteResponse.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/policy/EvictionPolicy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/policy/EvictionPolicy.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/policy/LRUEvictionPolicy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/policy/LRUEvictionPolicy.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/provider/CacheProvider.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/provider/CacheProvider.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/provider/DefaultLevelCache.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/provider/DefaultLevelCache.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/provider/ILevelCache.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/provider/ILevelCache.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/provider/NullEffectLevelCache.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/provider/NullEffectLevelCache.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/service/CacheService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/service/CacheService.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/storage/InMemoryStorage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/storage/InMemoryStorage.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/storage/Storage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/main/java/com/uditagarwal/storage/Storage.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/service/CacheServiceTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/multi-level-cache-low-level-system-design/HEAD/src/test/java/com/uditagarwal/service/CacheServiceTest.java --------------------------------------------------------------------------------