Troubleshooting slowness periods

Wow, that’s a lot of information - excactly what i needed!

I tried to think about speeding-up FDroid, but since there is no big documentation and i’m not a Java Dveloper (yet) - i didn’t know excactly what the problems an requirements where.
So i wrote everything i tought i knew in this document, but now i see the problems.

I’ll try then a speedUp within the App and the Repository-Maker (if i find out how it works).
The RepoMaker is still a riddle to me.

Thanks a lot @NicoAlt

My Coinclusion:
The MainServer is still overloaded in Peak-Times.
If the Clients already load from Mirrors efficiently, then the Server needs to get BeefedUp in it’s BackEnd.

Possible Solution could be:
Hosting the Website and Search and IndexFiles also from within a Mirror, wich needs to prove, the Files are recently updated.

Like: the Clients decides on a Mirror, on wich it tries to stay for longer periods.
The Mirror sends Signed Indexes with the Update-Date also inside the Index-File, so the Client knows how old the file is.
The File can’t be changed without destroying the signature, and the Date tells the client how recent the Mirror is.

You’re welcome!

You don’t need to think about RepoMaker for this. RepoMaker is a web app we developed for making repo creation easier, but we don’t use it ourself to manage the repo at If you’re curios, you can try out a demo instance at, but that has nothing to do with

To me it occurs like it’s always overloaded, with it being sometimes a tiny little bit better. But…

… I don’t think so. Only in the recent version 1.6 there were quite some work to improve mirrors, but still the logic is very cluttered in code. Like @hans said in this message:

indeed, it is whacky, crufty, complex, and complicated
I think the key is to break it into smaller pieces
in the client, the graphics/icons are never pulled from mirrors right now
there is a WIP merge request for it

We don’t track people and therefore we don’t know how many people are using which version. It could also be that a DDoS is running on and we’re wrong thinking that traffic has increased in the last months/years.

This is already part of the index. Normally it should be here, but as I told about blackboxes…

The way to go is really to make mirror support stable and thereby actually use the mirrors we got donated by many different people around the world. Look at Debian, for example. They also still have their first and back then only server which served apt stuff. It’s still active today, but nobody is using it essentially because it’s really slow. F-Droid tries to decentralize everything as much as possible and mirrors fit well into that concept. If we had a CDN, this would be yet another single-point-of-failure. With solid mirror support in the client, it’s much harder to make using F-Droid impossible (both because of human mistakes but also because of censorship, as F-Droid supports Tor).

F-Droid is organically grown project and lacks of volunteers like many others. Therefore, it’s really great that you’re interested in helping and the way to go is just to do. If you got time, learn Java and work on the client. Personally, I’ve learned a lot in terms of programming by working on F-Droid.

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.