Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add size calculation method and trigger mechanism #68

Merged
merged 10 commits into from
Aug 19, 2024

Conversation

loloxwg
Copy link
Contributor

@loloxwg loloxwg commented Aug 13, 2024

Implemented a size method for Record and added a trigger mechanism (Trigger, TriggerFactory) to handle dynamic item insertion and manage memory efficiently. Adjusted related stream implementations and updated dependency path for tonbo_marco.

@ethe ethe requested review from KKould and ethe and removed request for KKould August 13, 2024 13:28
Cargo.toml Outdated Show resolved Hide resolved
@ethe ethe requested a review from Xuanwo August 14, 2024 07:42
Implemented a `size` method for `Record` and added a trigger mechanism (`Trigger`, `TriggerFactory`) to handle dynamic item insertion and manage memory efficiently. Adjusted related stream implementations and updated dependency path for `tonbo_marco`.
src/inmem/mutable.rs Outdated Show resolved Hide resolved
Replaced the Count trigger type with the Length trigger type for greater specificity. Updated the TriggerFactory::create method signatures and adjusted relevant code to accommodate the new trigger type. This change helps clarify the purpose of the threshold and simplifies method usage.
Added trigger_type to DbOption to allow flexible trigger creation. Replaced the hardcoded trigger initialization in mutable.rs with the new trigger_type field from DbOption, improving maintainability and configurability.
src/option.rs Outdated Show resolved Hide resolved
Eliminated the max_mutable_len field and its related methods from the DbOption struct, as it was redundant. Also, adjusted the trigger_type assignment to directly use the intended default value.
Implemented a trigger mechanism in the `Schema` and `Mutable` classes by integrating `TriggerFactory`. This allows the new trigger to be shared across multiple instances and ensures trigger functionality is consistently applied. Updated tests and other related modules to support this new trigger initialization.
Renamed `CountTrigger` to `LengthTrigger` and adjusted respective logic for consistency. Added tests for `SizeOfMemTrigger`, `LengthTrigger`, and `TriggerFactory` to ensure correct threshold logic and reset functionality.
src/compaction/mod.rs Outdated Show resolved Hide resolved
loloxwg and others added 3 commits August 17, 2024 15:32
This change eliminates unnecessary cloning of the trigger variable in several places. By directly passing the trigger to the Mutable::new function, we simplify the code and potentially improve performance slightly.
Copy link
Collaborator

@KKould KKould left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ethe ethe merged commit 80a4a5e into tonbo-io:main Aug 19, 2024
4 checks passed
@ethe
Copy link
Member

ethe commented Aug 19, 2024

Thank you @loloxwg ! I hope there are more collaborations in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants