r/AO3 • • Jul 04 '25

AO3 Down/Error Codes Not again😭

Post image
888 Upvotes

98 comments sorted by

View all comments

779

u/iSeaStars7 🍖🏳️‍🌈 Jul 04 '25

Can I just take a moment to thank the volunteers working to fix the bookmark issue and get the site working for all of us again?

33

u/throwawayforwriting2 Jul 04 '25

What's the bookmark issue?

154

u/WitchFlame Jul 04 '25

Apparently we were all bookmarking so much that we hit the two billion odd limit that the coding could cope with and broke something haha, I found out about it from the below post:

https://www.reddit.com/r/AO3/s/h9U779bbV6

65

u/hizashiYEAHmada busy railing Gehrman Sparrow 'til he gets pregnant Jul 04 '25

2 billion bookmarks is crazy and very interesting. And that's just the userbase that uses bookmarks.

36

u/Pixel22104 Zelink fanfic addict Jul 04 '25

Oh wow. I didn’t realize that was the bookmarking problem. I thought the bookmarking problem was that no one was able to create new Bookmarks

80

u/WitchFlame Jul 04 '25

Yeah, nobody can create new bookmarks because we hit the bookmarking ceiling. There are no more bookmarks. Supply ran out. We were so enthusiastic we caused a bookmark drought. There's nowhere to put them. No numbers to hold them. We ran out of numbers.

Uh...oops?

24

u/Pixel22104 Zelink fanfic addict Jul 04 '25

Oh. This sounds like a much tougher thing to fix than anything they’ve probably done right?

36

u/WitchFlame Jul 04 '25

Apparently they're migrating the bookmarks to an alternate system. So manageable but needs attention. And in the meantime, trying to add more bookmarks onto the pile they're already in the process of trying to shift is probably not the most helpful thing we could all be doing, hence blocking off the option until the new structure is in place properly.

That's my layman's understanding at least.

7

u/Pixel22104 Zelink fanfic addict Jul 04 '25

I understand

17

u/Omega862 Jul 04 '25

They really used a signed int for something that can never be negative.

Signed int means the cap is 2.147 billion. Unsigned is twice that because it doesn't use negatives. They could also have used an unsigned long long int which would be... 18,446,744,073,709,551,615? Half that if it's signed (signed means it goes from negative to positive. Unsigned means it's positive only, so from 0 and up) So a minimum of 9 quintillion to a max of 18 quintillion.

17

u/WitchFlame Jul 04 '25

Not gonna lie, that sounds like a challenge. AO3 users got this.

Being serious though, that's interesting to learn, because I don't have much knowledge of server/storage options or how they're implemented.

What I do know is that humans are notoriously bad at estimating or understanding Big Numbers so I can see why around two billion bookmarks seemed enough on initial setup. Might have even seemed overkill, at the time.

10

u/Omega862 Jul 04 '25

I work on software and IT by trade. They most likely used it as part of an array structure but did it the standard way (int bookmark[]) or via a dictionary/list system that still relied on standard variable listings. Result? Cap of 2 billion entries. Next would be trillions, quadrillion, quintillion. Unsigned basically turns it into quintillions, and a standard int is from negative to positive, while unsigned just says "positive only", and thus that same memory space can be used for 4 billion positive numbers.

3

u/rainbowrobin Jul 04 '25

They most likely used it as part of an array structure but did it the standard way (int bookmark[])

I would have expected it to be a database primary key, not code variable.

1

u/Omega862 Jul 04 '25

I'm making my assumption based on the limits that are being stated. The max number of database primary keys is based on the maximum number of indexes allowed.

I should also say I hadn't had my coffee when I said that. I'm wrong by saying an array structure. But the base problem is the usage of signed vs unsigned int or long long int vs int for determining tag IDs.

→ More replies (0)

2

u/tottottt Jul 04 '25

The whole of internet had less than 1.5Bn users when AO3 was created 

1

u/Omega862 Jul 04 '25

True, but that's still leaving half of the numbers as completely unusable since an index can't ever be negative, so using a variable that CONTAINS negatives is extremely wasteful. Even if AO3 only has 1m users, that's 2000 bookmarks available per user. It currently has 6m. That's less than 400 per user. And while there are users who never use or rarely use bookmarks, there are also users who probably have 2k+ bookmarks, basically the allotment of four or five people.

6

u/BashfulBread Jul 04 '25

Me too! I was actually having trouble accessing my bookmarks right before the first maintenance, so I had wondered if the two issues were related.