This is an automated email from the ASF dual-hosted git repository. gkoszyk pushed a commit to branch backlog_annotations in repository https://gitbox.apache.org/repos/asf/iggy.git
commit b09f467464ba21a8bbbe9dcbbc043578411e0d51 Author: numminex <[email protected]> AuthorDate: Tue Sep 23 16:39:36 2025 +0200 feat(io_uring): add annotations for backlog tasks --- core/server/src/main.rs | 26 +------------------------- core/server/src/shard/mod.rs | 2 +- core/server/src/slab/traits_ext.rs | 10 ++++++++-- 3 files changed, 10 insertions(+), 28 deletions(-) diff --git a/core/server/src/main.rs b/core/server/src/main.rs index ab098418..05e4ecc8 100644 --- a/core/server/src/main.rs +++ b/core/server/src/main.rs @@ -154,31 +154,6 @@ async fn main() -> Result<(), ServerError> { } } - if args.with_default_root_credentials { - let username_set = std::env::var("IGGY_ROOT_USERNAME").is_ok(); - let password_set = std::env::var("IGGY_ROOT_PASSWORD").is_ok(); - - if !username_set || !password_set { - if !username_set { - unsafe { - std::env::set_var("IGGY_ROOT_USERNAME", "iggy"); - } - } - if !password_set { - unsafe { - std::env::set_var("IGGY_ROOT_PASSWORD", "iggy"); - } - } - info!( - "Using default root credentials (username: iggy, password: iggy) - FOR DEVELOPMENT ONLY!" - ); - } else { - warn!( - "--with-default-root-credentials flag is ignored because root credentials are already set via environment variables" - ); - } - } - // FOURTH DISCRETE LOADING STEP. MemoryPool::init_pool(config.system.clone()); @@ -321,6 +296,7 @@ async fn main() -> Result<(), ServerError> { encryptor.clone(), )); + // TODO: Explore decoupling the `Log` from `Partition` entity. // Ergh... I knew this will backfire to include `Log` as part of the `Partition` entity, // We have to initialize with a default log for every partition, once we `Clone` the Streams / Topics / Partitions, // because `Clone` impl for `Partition` does not clone the actual log, just creates an empty one. diff --git a/core/server/src/shard/mod.rs b/core/server/src/shard/mod.rs index 84b038ca..4771d238 100644 --- a/core/server/src/shard/mod.rs +++ b/core/server/src/shard/mod.rs @@ -471,7 +471,7 @@ impl IggyShard { PollingKind::Offset => { let offset = value; // We have to remember to keep the invariant from the if that is on line 496. - // Alternatively a better design would be to get rid of that if and move the validations here. + // Alternatively a better design would be to move the validations here, while keeping the validations in the original place. let batches = self .streams2 .get_messages_by_offset( diff --git a/core/server/src/slab/traits_ext.rs b/core/server/src/slab/traits_ext.rs index 6e5f0dc7..0db207cf 100644 --- a/core/server/src/slab/traits_ext.rs +++ b/core/server/src/slab/traits_ext.rs @@ -64,6 +64,7 @@ pub trait ComponentsByIdMapping<T>: private::Sealed { type RefMut<'a>; } +// TODO: This should be a proc macro. macro_rules! impl_components_mapping_for_slab { ($T:ident) => { impl<$T> private::Sealed for ($T,) {} @@ -157,7 +158,7 @@ type MappingByIdMut<'a, E, T> = pub type Components<T> = <T as IntoComponents>::Components; pub type ComponentsById<'a, T> = <T as IntoComponentsById>::Output; -// TODO: Not all hope is lost, don't get discouraged by the comment from above +// TODO: // I've figured there is actually and ergonomic improvement that can be made here. // Observe that the chain of constraints put on the `EntityRef` type is actually wrong. // We constraint the `EntityRef` to be IntoComponents + IntoComponentsById, @@ -167,8 +168,13 @@ pub type ComponentsById<'a, T> = <T as IntoComponentsById>::Output; // in the `stream.rs` `topic.rs` `partitions.rs` files, we need to implement the `IntoComponentsById` trait for the output type of `IntoComponents` implementation, for `EntityRef`. // to make our life easier, we can create a type alias for those tuples and maybe even create a macro, to not repeat the type 3 times per entity (TupleEntityType, TupleEntityTypeRef, TupleEntityTypeRefByid). -// TODO: Since those traits at impl site all they do is call `f(self.into())` +// TODO: Since those traits at impl site, all they do is call `f(self.into())` // we can blanket implement those for all types that implement `From` trait. + +// Maybe lets not go this way with the tuple mapping madness, it already is pretty difficult to distinguish between all of the different components, +// and everytime we add a new component to an entity, we need to update the tuple type everywhere. +// Better idea would be to use the `EntityRef` type directly inside of the `with_components_by_id` closure +// -- f(components.into_components_by_id(id)) -> components.into_components_by_id(id) would return `EntityRef`, rather than the tuple. pub trait EntityComponentSystem<T> where <Self::Entity as IntoComponents>::Components: ComponentsMapping<T> + ComponentsByIdMapping<T>,
