Matheus Tavares

22 Jul 2019

GSoC Week 9: An RFC on parallel inflation

Tags: gsoc, git

Last week I’ve arrived at Curitiba (Brazil), where I will stay until July 28 to participate in DebConf. Its a very good opportunity! But unnfortunatelly, this also means I will have a reduced time to work on my project during these 10 days :( I hope to compensate that in the following weeks. And I’m also trying to work on it in breaks and progress as much as I can. So here it’s a brief report from last week:

Sending the patch as an RFC

Last week, we already had a working prototype for a parallel inflation during git-grep. So, among the itens proposed as next steps, what I did this week was:

  • Split the changes into logical patches.
  • Improve how the object reading mutex was being handled at sha1-file.c and zlib.c.
  • Add an API to set the reading locks just when needed.

I also addressed Christian’s comments on the series. Then I sent it as an RFC to the mailing list.

Other activities

Helping some friends at FLUSP

I’ve also been helping some friends from USP who are working on their first Git contribution :) They have been making an effort to fix the --no-edit flag on git-tag and to implement a --amend feature. The first version of their patchset can be seen here. I gave them some tips on what I’ve learned so far and what they could improve. So now I am waiting for a second version from them.


Being a nice FLOSS experience, I feel like I should briefly talk about what I’ve done in DebConf so far.

I’ve seen very good presentations on Open Source evolution, Forensic Computing the backstage of Debian and etc. I’ve also had the chance to hear what many people from all around the globe are working on and what are their thoughts on Free Software. Oh, and I got to tell them about my project at Git, as well! :)

Also, me and other FLUSP members hosted a presentation on our local FLOSS group. We talked about our activities, acomplishments and, most importantly, how others can replicate this idea in their universities/communities.

Next steps

I tried to set my friend’s computer with what is needed to replicate my last week tests, but didn’t fully finished it yet. I’m doing that so we can see if the same good speedups are observed in a machine with HDD as well. So, as I couldn’t do that yet, this will be one of my first tasks for this week. Also, other next steps include:

  • Protect the submodule and textconv operations on git-grep (which were left behind when grep_read_mutex was removed).
  • Maybe think of a better way to release and re-acquire the reading lock around git_inflate() calls. The current way may lead to race conditions if other operations are desired to be performed in parallel accessing the same global states. This may happen because we are only protecting the call graph originated at unpack_compressed_entry(). Another alternative would be to investigate and try protecting the associated global states, but this can be quite harder.
  • Address any comment which may be left on the RFC, in the coming days.

Til next time,