feat: Make use of the last bit in Tid #107
Open
+93
−18
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously
Tid::LEN
was set toMAX_SHARDS.trailing_zeros() + 1
, andMAX_SHARDS
was set tonext_pow2(Self::MAX_THREADS - 1)
, which leads to several odd conbinations:7 bit is enough to encode 128 threads, as the thread id starts from 0
and ends with
Tid::BITS
, which makes the extra one bit redundant(I can't find the usage of it).As
shards
are indexed byTid
, number of shards shouldn't be less than number of threads.Therefore, I changed the implementation:
Tid::LEN
now equals toMAX_SHARDS.trailing_zeros()
MAX_SHARDS
now equals tonext_pow2(Self::MAX_THREADS)
DefaultConfig::MAX_THREADS
were doubled leveraging the released bit