When deciding whether or not to fetch a repo based on a refs announcement, we need to know whether our signed refs are stale or not, compared to the ones in the announcement. This can be quite expensive as it requires multiple reads from Git’s ODB, which often results in packfile loading.
To remedy this, we introduce a refs cache in our node database that is consulted when an announcement is received.
We also remove the logic that generates info messages, since they are
rarely needed and introduced more complexity.
Additionally, we revert commit 3ad2b4431f4406fbb96c30d1edc77c5d969f17cb, which introduced logic to minimze wants and haves with additional logic, since it potentially also increases the load on the ODB.
When deciding whether or not to fetch a repo based on a refs announcement, we need to know whether our signed refs are stale or not, compared to the ones in the announcement. This can be quite expensive as it requires multiple reads from Git’s ODB, which often results in packfile loading.
To remedy this, we introduce a refs cache in our node database that is consulted when an announcement is received.
We also remove the logic that generates info messages, since they are
rarely needed and introduced more complexity.
Additionally, we revert commit 3ad2b4431f4406fbb96c30d1edc77c5d969f17cb, which introduced logic to minimze wants and haves with additional logic, since it potentially also increases the load on the ODB.
Only cache sigrefs. So other minor changes.
Don’t cache refs twice.
Use existing local time.