I have read through multiple questions here on StackExchange that concern WordPress scaling and the common opinion is that WordPress is indeed highly scalable provided you have the infrastructure to support it. However, all opinions point and talk about the database scaling.
However, I must ask out of curiosity as to how scalable is the WordPress code? I find numerous places within the code where User IDs or Post IDs are cast as integers. Now, PHP puts limitation on range of integers to -2147483648 to 2147483647
(signed) for 32 bit and 9223372036854775807
for 64 bit. Thus limiting the code to work in that range. So if you happen to have a Post ID or a User ID of 100000000000000
it shall be converted to 2147483647
on 32 bit systems. And a similarly on 64 bit. Effectively, limiting the system.
So, though the database allows for scaling, the code limits the same. I may be entirely wrong with my assumptions, if so I’d like to be educated on the same. And if otherwise, how do we scale the code? Or are claims of WordPress scalability false? Also what are other possibilities where the code could be limiting the scalability?
If
INT
is set toUNSIGNED
, allowing only non-negative integers, your value range is from0
to4294967295
.Thats…
…for the given table. Just to put things into perspective.
Only through poor management and unnecessary incrementation would you exhaust that range, say for your
posts
table as an example.That said if you have some unique requirement that uses that entire range for a table then simply create another. WordPress allows for that.
There’s also the possibility for multiple DBs (http://codex.wordpress.org/HyperDB) being one example.
If you’re pushing the upper limits of a standard table primary key, then you would already be scaling your application beyond the traditional single table schema to handle such quantities of content.
Notice how I said application and not blog? At this point, its likely that your site resembles nothing like the common blog does and instead is much more an application, a data management system.
As cool as infinite scalability would be, it is not really necessary to code into most projects.
That limit of 100000000000000 is high enough that you could run a single WordPress Network for all the inhabitants dyson ring 1000 km wide at Earth’s orbit with current population density to still have 7 accounts each. Or in another way thats about 15000 posts per person if everyone on Earth used your site.
I believe that WordPress core and most other software will have some major work on the networking side before a single server can be shared across several colony worlds.