-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AP => ATProto new user creation bottleneck on datastore #1376
Comments
Ugh, ok, pretty obvious. We're unintentionally doing external network requests inside a datastore transaction here, specifically creating the new ATProto DID. OK, should at least be a straightforward fix. |
…s.enable we were doing heavy work like generating RSA keys and external network requests for creating DIDs inside datastore txes, which led to bad contention. details in #1376
What is this triggered by? Did they add some new feature and people are enabling it, or is it automatically enabled, or what? |
They're automatically bridging publishers who are federated. It's not many, right now just 1k publishers and 15k "magazines," each of which is an AP actor. Still big for Bridgy Fed though! |
Yeah, I see around 20k new *.ap.brid.gy handles in my db, which is a double-digit % increase, and I think that more than doubled the total number of bsky.brid.gy repos? |
Hmm! I see a bit less than 10k new repos on my end. Remind me, are you looking at PLC directory operations and counting DIDs with atproto.brid.gy as their PDS? If you de-dupe by handle, does that number come down? This issue definitely made us retry and create extra DIDs that we didn't end up using. 10k extra DIDs sounds high, but not impossible. |
We got a bunch of new user signups from Flipboard this afternoon, ~9k during ~4:10-6:20p PT, ie roughly 1qps. Awesome!...and also a couple orders of magnitude higher than our usual incoming follow rate 😁, so it exposed a bottleneck in creating new ATProto users, specifically contention on the datastore transaction that creates the new repo and stores the initial commit and blocks. Example log below.
The text was updated successfully, but these errors were encountered: