Re: Performance regression in connectivity check during receive-pack (git 2.54)
Junio C Hamano <[email protected]>
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
Patrick Steinhardt <[email protected]> writes: > The alternative to this would be to instead have logic in functions like > `odb_write()` that checks whether we have an active transaction or not. > If so, the write would go into the transaction directly instead of going > into the primary source, and consequently we wouldn't even have to > modify the list of sources at all. > > This shouldn't create too much of a problem, as we typically don't > intend to even read objects that we've written into the transaction > immediately. It would avoid that we try to read objects from the > temporary object directory. And it would also allow us to eventually > move all the logic to write objects into the transactions exclusively. I suspect several of those 'transactions' are actually misspelt 'temporary directories', but I catch your drift. That said, a redesign like that feels more or less independent of the fix for our immediate performance regression. After all, didn't Peff show us a case where no odb sources were being flipped in the middle? Simply setting up one object store to borrow from another via the alternates mechanism demonstrated that checking packs across all object stores before hunting for loose objects in any of them makes a world of difference. > I'm currently out of office though, and will be on vacation next week. > I'll explore this area a bit more though once I'm back in office in two > weeks. Understood. Bon voyage and have fun!