Hi Mickael, In our previous approach startup time would have been affected if the utility script code was written in some other language. If we had just replaced the utility script with java code that would have impacted startup time significantly. In my local machine, it took around 50ms (on M2 silicon chip) just for a jvm process to start and close. Doing this around 10 times (number of times we were calling the utility script) would have caused performance issues, especially on slower machines.
I agree that the decision about which approach to take should be made by committers. When you raised the issue I re-looked at the existing solution and found that if I move all the logic in the wrapper, I will be able to achieve the same performance without the need of any utility code like the golang code I had. And this wrapper code will only be executed once during the docker container startup instead of multiple times as we were doing with utility script written in golang. So the problem that this approach is solving is not just removing the golang code, but also removing the need of any utility script. This is just an approach that I feel is an improvement over current golang solution, but I would be happy to take community's feedback and opinion on this and we can go with what committers feels is the better solution. Thanks and regards, Vedarth On Wed, Dec 20, 2023 at 5:05 PM Mickael Maison <[email protected]> wrote: > Hi Vedarth, > > In the PR when I raised concerns about introducing Go to the > repository you responded "Startup time will get impacted though, as > java is significantly slower than golang and we are calling this > script multiple times.". It would be good to provide numbers if you > have, so the community can make a decision. Maybe we have multiple > experts with Go and the risk of introducing this language is reduced, > but because this was not discussed, we don't know. > > When you say, "we have opted to take a different approach", who is > "we"? I think this decision should be made by the committers. > > I marked the Jira (https://issues.apache.org/jira/browse/KAFKA-16016) > as a blocker for 3.7 as I think we need to make this decision before > releasing the docker images. > > Thanks, > Mickael > > On Wed, Dec 20, 2023 at 10:16 AM Vedarth Sharma > <[email protected]> wrote: > > > > Hello everyone, > > > > In the course of implementing this KIP, we introduced a small piece of > code > > in golang to prepare property files for the Docker image. Our decision > was > > influenced by considerations such as performance, code testability, and a > > reduction in the final Docker image size, as outlined in > > https://github.com/apache/kafka/pull/14552#issuecomment-1855353838. > > However, upon reflection, we acknowledge that incorporating golang > > introduces a new language into the repository, potentially leading to > > increased maintenance overhead. In light of this, we have opted to take a > > different approach by introducing a Docker wrapper within the Kafka > > codebase. This wrapper will remove the need for the Golang code. > > To streamline this adjustment, we have submitted a PR: > > https://github.com/apache/kafka/pull/15048. The proposed changes involve > > the removal of the previously added golang code. > > This change has also been documented in the KIP. > > > > Thanks and regards, > > Vedarth > > > > On Thu, Oct 26, 2023 at 8:09 AM Ismael Juma <[email protected]> wrote: > > > > > Hi Vedarth, > > > > > > > > > > Local Kafka startup time (without JSA): 1.592 secs > > > > Local Kafka startup time (with JSA): 1.016 secs > > > > Local Kafka startup memory usage (without JSA): 440MB > > > > Local Kafka startup memory usage (with JSA): 380MB > > > > > > > > > This is a significant reduction in start-up time (33%) - nice! > > > > > > Ismael > > > > > > On Wed, Oct 25, 2023 at 10:24 AM Vedarth Sharma < > [email protected]> > > > wrote: > > > > > > > Hi Ismael! > > > > > > > > Thanks for bringing this to our attention. > > > > > > > > We did a small POC integrating CDS with Kafka server startup, and > > > > encountered positive outcomes(results are added in the KIP). > > > > Hence, we've decided to include the dynamically generated JSA file > from > > > the > > > > following workflow in the Docker image: > > > > > > > > 1. Start Kafka > > > > 2. Create a topic > > > > 3. Produce messages > > > > 4. Consume messages > > > > 5. Stop Kafka > > > > > > > > Additionally, we've identified some limitations of CDS, which have > also > > > > been detailed in the KIP. > > > > > > > > Thanks and regards, > > > > Vedarth > > > > > > > > On Wed, Oct 25, 2023 at 10:56 AM Ismael Juma <[email protected]> > wrote: > > > > > > > > > The reference I meant to include: > > > > > > > > > > > https://docs.oracle.com/en/java/javase/17/vm/class-data-sharing.html > > > > > > > > > > On Tue, Oct 24, 2023, 10:25 PM Ismael Juma <[email protected]> > wrote: > > > > > > > > > > > Hi Krishna, > > > > > > > > > > > > One last question from me, did we confuse using AppCDS or Dynamic > > > CDS? > > > > > > > > > > > > Thanks, > > > > > > Ismael > > > > > > > > > > > > On Tue, Oct 24, 2023, 9:54 PM Krishna Agarwal < > > > > > > [email protected]> wrote: > > > > > > > > > > > >> Hi, > > > > > >> Thanks for the insightful feedback on this KIP. If there are no > > > > further > > > > > >> questions, I'm considering wrapping up this discussion thread. > We'll > > > > be > > > > > >> moving into the voting process in the next couple of days. Your > > > > > continued > > > > > >> input is greatly appreciated! > > > > > >> > > > > > >> Regards, > > > > > >> Krishna > > > > > >> > > > > > >> On Fri, Sep 8, 2023 at 1:27 PM Krishna Agarwal < > > > > > >> [email protected]> > > > > > >> wrote: > > > > > >> > > > > > >> > Hi, > > > > > >> > Apache Kafka does not have an official docker image currently. > > > > > >> > I want to submit a KIP to publish a docker image for Apache > Kafka. > > > > > >> > > > > > > >> > KIP-975: Docker Image for Apache Kafka > > > > > >> > < > > > > > >> > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-975%3A+Docker+Image+for+Apache+Kafka > > > > > >> > > > > > > >> > > > > > > >> > Regards, > > > > > >> > Krishna > > > > > >> > > > > > > >> > > > > > > > > > > > > > > > > > > >
