<div dir="ltr">Our previous experiment was to analyze two different ways to store content for a repository version: a direct relationship between a version and content vs storing diffs between versions (which we have adopted in Pulp 3). So we didn’t really examine different branching models and I wouldn’t really say we have a branching model today—it’s more of a linear history of repository content sets. <div><br></div><div>I figure it might help if I outline some of my concerns about pursuing a branching model.<div><br></div><div>First is the user experience. Only a small subset of users care about being able to branch. If any branching model makes Pulp more difficult to use for users who don’t care about branching, that would be a showstopper. Having worked with users and other groups at Red Hat, I often worry that Pulp is already too difficult to use for some users. I’m much more concerned about simplifying Pulp than I am with introducing branching. </div><div><br></div><div>Secondly, a branching model would introduce code complexity. Already, explaining how repository versions work is probably one of the most difficult topics when on-boarding new developers. I don’t see how switching to a branching model like git has will make this any easier. Even if we mirror git’s model, I am not sure that’s any help as most developers aren’t aware of how git works internally.</div><div><br></div><div>Another problem is performance. You’ve mentioned this already. Any branching model would have to be just as performant as what we have today for it to be worth adopting. Perhaps if branching were a central feature to Pulp, we would have some more leeway in terms of performance.</div><div><br></div><div>Lastly, users can branch today by creating new repositories and copying over content. It’s a workaround and not as great as having a branching model in the database but Katello uses this method when publishing content views. I think it solves most of our users' needs. It’s easy for users to understand and it keeps our data model simple.</div><div><br></div><div>To kind of sum up things, I can’t imagine a branching model that could overcome all of these problems. If the goal is just analyze Pulp's system of versioning content vs a model like git while not necessarily committing any code to Pulp 3 (except perhaps just some small improvements/tweaks), then I’m not opposed to this. I am just doubtful about how productive it will be.</div><div><br></div><div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>David<br></div></div></div></div></div></div></div></div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Sep 21, 2018 at 3:34 AM Milan Kovacik <<a href="mailto:mkovacik@redhat.com">mkovacik@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 20, 2018 at 11:14 PM David Davis <<a href="mailto:daviddavis@redhat.com" target="_blank">daviddavis@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">I’m interested to know more about this versioning/branching proposal and its goals. I assume this would be to explore changing Pulp 3 to use a non-linear branching model?</div></div></div></div></div></div></blockquote><div><br></div><div>The main goal of the thesis would be to compare Git and Pulp versioning, identifying the advantages and disadvantages of both, when content storage and management is concerned; ideally we'd learn what use cases we are trading for what system traits.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Would the goal be to contribute this model to Pulp 3 codebase in the near term (like before the MVP)? I guess my concern would be that I don’t think there is enough of a need nor the time to properly vet it before the MVP. I don’t think we can guarantee that a branching proposal would result in a change to Pulp 3 in the near term, and switching the data model post-MVP is potentially risky and likely backwards incompatible, so adoption later would be unlikely also.</div></div></div></div></div></div></blockquote><div><br></div><div>I think a valuable essay would base the conclusion on an experiment so 
we'll try to implement (a subset of) the Git data model in Pulp core to 
get some first-hand experimental data; we'd like to see the code, REST API and performance impact on Pulp core and Pulp plugins.</div><div>I share your concerns though so we'd work on a fork to avoid pressure on both the experiment and Pulp goals, keeping a focused scope and minimal diff with the project origins; we'd ideally base the fork on an RC (MVP?) Pulp core tag.</div><div>The decision to merge the fork to the origin projects would be based on the experiment results so it would be out of scope of the thesis. <br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">I also want to point out that we explored another versioning model before we went with our current design. We did some performance analysis and found that the model wasn’t optimized for the most common use cases in Pulp. Here’s the discussion in case you’re interested:</div><div dir="ltr"><br></div><div dir="ltr"><a href="https://www.redhat.com/archives/pulp-dev/2017-December/msg00075.html" target="_blank">https://www.redhat.com/archives/pulp-dev/2017-December/msg00075.html</a></div></div></div></div></div></div></blockquote><div><br></div><div>Great input! I briefly looked at the conversation and your experiment and I believe we'll utilize this in the comparison indeed.</div><div>I'd like to ask though, based on the mailing list discussion, did the branching experiment setup reflect the most frequent use case i.e a sparse tree/DAG with few, (long) branches?</div><div>Did the experiment consider the Git data model and workflows?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><div dir="ltr" class="m_-8582861791447306598m_-8064031878620223748m_-7850230603153139359gmail-m_-7335965950371113733gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>David<br></div></div></div></div></div></div></div></div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 20, 2018 at 10:01 AM Robin Chan <<a href="mailto:rchan@redhat.com" target="_blank">rchan@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Having only this exposure to the bachelor thesis, I've just been reading for my own learning.</div><div><br></div><div>I'll only share that I would invite Vlada to perhaps write a blog post with some summary type information targetting newcomers with an understanding of git. Such a post might be a way to understand Pulp by allowing them to relate existing understanding to pulp a little quicker.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 20, 2018 at 9:41 AM, Milan Kovacik <span dir="ltr"><<a href="mailto:mkovacik@redhat.com" target="_blank">mkovacik@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Folks,</div><div><br></div><div>we've been discussing my proposal with Vlada recently and he's about to commit officially to it at the school.</div><div>I'd like to poke for feedback esp. if there are concerns/doubts about the sanity of my proposal.</div><div>Encouraging comments are of course welcome too ;)</div><div><br></div><div>Cheers,</div><div>milan<br></div><div><div class="m_-8582861791447306598m_-8064031878620223748m_-7850230603153139359m_-7335965950371113733m_7269891059255342606h5"><div><br><div class="gmail_quote"><div dir="ltr">On Mon, Sep 10, 2018 at 11:25 AM Milan Kovacik <<a href="mailto:mkovacik@redhat.com" target="_blank">mkovacik@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi,</div><div><br></div><div>I'd like to propose a comparison of Git versioning model to Pulp3 versioning (and branching) model.<br></div><div>The textual part would briefly introduce both Git and Pulp, with focus on their respective usecases, trying to identify overlapping scenarios.<br></div><div>Next it would in detail examine the versioning models of both Git and Pulp3.</div><div>The main matter would compare implementation of Git versioning model in Pulp3 (as e.g a fork) to the current versioning model.<br></div><div>The textual part would conclude with advantages and disadvantages of both versioning models, reiterating over the usecases, comparing performance (storage and time) of both the implementations.</div><div><br></div><div>I believe this would have a direct practical impact on Pulp3, affecting feature planning and if feasible, providing an alternative versioning implementation[1][2].<br></div><div><br></div><div>--</div><div>milan</div><div><br></div><div>PS: I'm volunteering to oversee the thesis on the project part<br></div><div><br></div><div>[1] <a href="https://pulp.plan.io/issues/3360" target="_blank">https://pulp.plan.io/issues/3360</a><br></div><div>[2] <a href="https://pulp.plan.io/issues/3842" target="_blank">https://pulp.plan.io/issues/3842</a><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 5, 2018 at 9:16 PM, Austin Macdonald <span dir="ltr"><<a href="mailto:austin@redhat.com" target="_blank">austin@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr">How about reproducibility? Bihan and I presented on this topic at scipy but there is a lot left to say/research. <a href="https://www.youtube.com/watch?v=5czGgUG0oXA" target="_blank">https://www.youtube.com/watch?v=5czGgUG0oXA</a></div><div dir="ltr"><br></div><div>In the scientific community, reproducibility is a hot topic (I bet grad schools would love this!), and the computational aspect of it has been under-emphasized in the existing literature. Our talk focused on the fundamental problems of environmental reproducibility and how to use Pulp to solve them. Especially since the scope was narrow, we barely scratched the surface. There a ton of potential angles; some ideas are that you could catalog and compare technologies or discuss academic vs industry use cases and trends.<br></div></div><div class="m_-8582861791447306598m_-8064031878620223748m_-7850230603153139359m_-7335965950371113733m_7269891059255342606m_121897831546293106m_-354868810404092807HOEnZb"><div class="m_-8582861791447306598m_-8064031878620223748m_-7850230603153139359m_-7335965950371113733m_7269891059255342606m_121897831546293106m_-354868810404092807h5"><br><div class="gmail_quote"><div dir="ltr">On Wed, Sep 5, 2018 at 5:01 AM Vladimir Dusek <<a href="mailto:vdusek@redhat.com" target="_blank">vdusek@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>I don't ask you for a specific assignment, we'll set up it with Milan later. I only need some idea on a topic. <br></div><div><br></div><div>Scope of the work should be 40-50 standard pages. Additional istructions could be find here - <a href="http://www.fit.vutbr.cz/info/szz/pokyny_bp.php.en#pozadavky" target="_blank">http://www.fit.vutbr.cz/info/szz/pokyny_bp.php.en#pozadavky</a>. However I don't think it's neccessary for you to know them.</div><div><br></div><div>All bachelor theses from our university last year could be find here - <a href="http://www.fit.vutbr.cz/study/DP/BP.php.en" target="_blank">http://www.fit.vutbr.cz/study/DP/BP.php.en</a>. I presume most of them are written in Czech but there are abstracts in English which might be useful for inspiration.</div><div><br></div><div>Random abstracts:</div><div><br></div><div>Alias Analysis in C Compiler</div><div>-------------------------------------</div><div>This thesis is dedicated to the problem of alias analysis and possibilities of its improvement in the LLVM framework. The goal of this thesis is to improve the accuracy, which was achieved by extending the existing implementation of Andresen algorithm to be field sensitive. The terms related to alias analysis and algorithms of the alias analysis available in LLVM are explained. These algorithms are compared according to their base idea, features, and limitations. The implementation of the field sensitivity has been tested using compiler test suites. Its impact on program compilation speed and performance has been analyzed. The measured results show an increase in the accuracy of alias analysis in the LLVM framework.</div><div><br></div><div>Reinforcement Learning for Starcraft Game Playing</div><div>--------------------------------------------------------------------</div><div>This work focuses on methods of machine learning for playing real-time strategy games. The thesis applies mainly methods of Q-learning based on reinforcement learning. The practical part of this work is implementing an agent for playing Starcraft II. Mine solution is based on 4 simple networks, that are colaborating together. Each of the network also teaches itself how to process all given actions optimally. Analysis of the system is based on experiments and statistics from played games.</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 4, 2018 at 8:27 PM Robin Chan <<a href="mailto:rchan@redhat.com" target="_blank">rchan@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi Vladimir,</div><div><br></div><div>I'm not familiar with what types of topics are appropriate for this type of project - could you share some criteria and examples of what makes a good topic?</div><div><br></div><div>Robin<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 3, 2018 at 8:50 AM, Vladimir Dusek <span dir="ltr"><<a href="mailto:vdusek@redhat.com" target="_blank">vdusek@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi team,<div><br></div><div>since September I'm in the third grade of bachelor studies and it means that I'm going to write a bachelor thesis. I haven't selected a topic yet and if it'll be possible I'd like to work on something that is relevant to Pulp. Do you have any idea?<br><div><br></div><div>Thank you guys,</div></div><div>Vlada</div></div>
<br>_______________________________________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div>
_______________________________________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pulp-dev</a><br>
</blockquote></div>
</div></div><br>_______________________________________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div></div></div></div></div>
<br>_______________________________________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pulp-dev</a><br></blockquote></div></blockquote><div><br></div><div>Thanks a lot!</div><div>milan<br></div></div></div>
</blockquote></div>