[performance] reduce InboxForward->Create calls by partially implementing Exists() (#3647)

* alphabetical reordering

* keep a cache of activity IDs we have handled creates for

* reduce number of inbox forwarding create calls by partially implementing Exists()

* increase cache size, since all we're storing is string keys
This commit is contained in:
kim 2025-01-22 12:42:12 +00:00 committed by GitHub
commit 0a99901c65
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 29 additions and 23 deletions

View file

@ -22,12 +22,8 @@ import (
"net/url"
)
// Exists returns true if the database has an entry for the specified
// id. It may not be owned by this application instance.
//
// The library makes this call only after acquiring a lock first.
//
// Implementation note: this just straight up isn't implemented, and doesn't *really* need to be either.
// Exists is an implementation of pub.Database{}.Exists(), optimized specifically for
// the only usecase in which go-fed/activity/pub actually calls it. Do not use otherwise!
func (f *federatingDB) Exists(ctx context.Context, id *url.URL) (exists bool, err error) {
return false, nil
return f.activityIDs.Has(id.String()), nil
}