I figured a specific bottleneck of the current implementation of MC is the
uniqe version name check.
On gemstone this takes 4seconds! for the pharo inbox, definitely too long...
The culprit can be found here
MCFileBasedRepository >> includesVersionNamed: aString
^ self allVersionNames includes: aString
assuming that the PharoInbox consists of quite some versions (currently 947)
this is quite some overhead.
I would suggest the following improvements:
- add a specific includesVersionNamed: server-side service
- add a simpler allVersionNames service that returns a newline separated list
of filenames (not an html doc!)
By having specific MC repository implementations everything would be 100%
backwards compatible since no services are removed nor is the default http
repository implementation changed.
what do you think?