diff --git a/docs/features/implementation.md b/docs/features/implementation.md index a9adc72..52bf2f5 100644 --- a/docs/features/implementation.md +++ b/docs/features/implementation.md @@ -1,10 +1,11 @@ [PREVIOUS PAGE](user_side.md) | [NEXT PAGE](../building.md) # Implementation Features -## Parallel Hashmap +## [Parallel Hashmap](https://github.com/greg7mdp/parallel-hashmap) +### STD vs phmap this parallel hashmap implementation is the basis of CCash, its where all the user data is stored, compared to the STD's `std::unordered_map` its much faster, this, multi threading support, and more can be found in the [writeup](https://greg7mdp.github.io/parallel-hashmap/). ### Scalability below is `GetBal()` being called where `x` axis grows with # of users reaching 10 million users, `y` axis is time in ns. The name given is random between 0 and max users at that time as to provide more accurate results. @@ -16,9 +17,9 @@ xxhash is used for both hashing of passwords for storage aswell as the usernames base64 decoding is required for Basic Auth so I used this clean and fast solution found [here](https://github.com/aklomp/base64) which uses SIMD. ## [Simdjson](https://github.com/simdjson/simdjson) simdjson was the fastest JSON parsing I could find, I found its SIMD and OnDemand parsing attractive so its used for request parsing. -## Drogon webframework +## [Drogon webframework](https://github.com/an-tao/drogon) at the time of making this doc Drogon is the 3rd fastest web framework as per [this](https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=composite) sites metric of measuring web frameworks, it also has multi threading support. -## Intelligent saving +## Sparse saving ### Saving on close when the program is interupted with CONTROL + C it will save before closing the webserver, **it will not however save during a crash**. ### Auto Saving