mirror of
https://github.com/Expand-sys/CCash
synced 2025-12-17 00:22:14 +11:00
📚🚧
This commit is contained in:
parent
018e8dac83
commit
54c8f95b6c
1 changed files with 4 additions and 3 deletions
|
|
@ -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)
|
||||
<!-- memory vs database -->
|
||||
<!-- and while changes arent made on the basis of speed alone it does seem to fit the problem better as we only need to save every `n` minutes/on close. -->
|
||||
<!-- phmap vs std hash map -->
|
||||
### 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<T>` 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
|
||||
|
|
|
|||
Loading…
Reference in a new issue