diff --git a/README.md b/README.md index f4fbe58..d3fee3a 100644 --- a/README.md +++ b/README.md @@ -111,3 +111,7 @@ on DigitalOcean 8 CPUs / 16 GB RAM / 160 GB SSD + Ubuntu 16.04.3 (higher is bett ## Internals [Design document](/docs/design.md). + +## Limitations + +The design choices made to optimize for point lookups bring limitations for other potential use-cases. For example, using a hash table for indexing makes range scans impossible. Additionally, having a single hash table shared across all WAL segments makes the recovery process require rebuilding the entire index, which may be impractical for large databases. \ No newline at end of file diff --git a/docs/design.md b/docs/design.md index 0339355..cc2363a 100644 --- a/docs/design.md +++ b/docs/design.md @@ -186,3 +186,7 @@ After the compaction is successfully finished, the compacted segment files are r In the event of a crash caused by a power loss or an operating system failure, Pogreb discards the index and replays the WAL building a new index from scratch. Segments are iterated from the oldest to the newest and items are inserted into the index. + +# Limitations + +The design choices made to optimize for point lookups bring limitations for other potential use-cases. For example, using a hash table for indexing makes range scans impossible. Additionally, having a single hash table shared across all WAL segments makes the recovery process require rebuilding the entire index, which may be impractical for large databases. \ No newline at end of file