Coursework repository with database algorithm and storage-system assignments. The tasks combine Java implementations with reports and supporting materials for studying query processing, indexing and data management concepts.
| Area | Tools |
|---|---|
| Language | Java |
| Build | Maven |
| Query parsing | ANTLR4 |
| Benchmarking | JMH, Python scripts |
| Supporting materials | HTML, TeX, Python, JavaScript |
databases_algo/
├── hw01/
├── hw02/ # geospatial index with QuadTree and JMH benchmarks
├── hw03/ # approximate nearest neighbor search: LSH, HNSW, IVF+PQ
├── hw04/ # concurrent hash map, JCStress and JMH benchmarks
└── hw05/ # inverted index, query parser and Wikipedia search
Each homework directory contains an isolated assignment with source code and/or documentation.
hw02implements a geospatial search index with QuadTree, compares it with a naive baseline and includes benchmark plots plus JaCoCo coverage.hw03compares LSH, HNSW and IVF+PQ approaches for approximate nearest neighbor search.hw04implements a segmented concurrent hash map with unit tests, JCStress tests and JMH benchmarks.hw05implements an inverted/positional index for Wikipedia search with boolean and proximity operators, BM25 ranking, segmented on-disk storage and JMH benchmarks.
- Working with database internals and algorithmic tasks.
- Implementing coursework assignments in Java.
- Keeping reproducible homework structure with Maven modules.
- Combining code, reports and experiment artifacts in one repository.
mvn -DskipTests clean packageSome homework directories may also include their own pom.xml; run Maven inside the corresponding directory when working with a specific task.
For example:
cd hw05
mvn -DskipTests clean packageThis repository supports the data engineering profile by showing lower-level database and storage-system coursework beyond application-level SQL usage.