Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Slashdot Posting Bug Infuriates Haggard Admins

Posted by CmdrTaco on Thu Nov 09, 2006 10:45 AM
from the this-is-never-good dept.
Last night we crossed over 16,777,216 comments in the database. The wise amongst you might note that this number is 2^24, or in MySQLese an unsigned mediumint. Unfortunately, like 5 years ago we changed our primary keys in the comment table to unsigned int (32 bits, or 4.1 billion) but neglected to change the index that handles parents. We're awesome! Fixing is a simple ALTER TABLE statement... but on a table that is 16 million rows long, our system will take 3+ hours to do it, during which time there can be no posting. So today, we're disabling threading and will enable it again later tonight. Sorry for the inconvenience. We shall flog ourselves appropriately. Update: 11/10 12:52 GMT by J : It's fixed.
+ -
story

Related Stories

[+] Facebook Goes To 64 Bit User IDs 144 comments
NewsCloud writes "Facebook has announced to developers that they are moving to a 64 bit user ID in November. At 32 bits, the current ID allows nearly 4.3 billion user accounts. Yet, despite having only 47 million users today, Facebook's move to 64 bits will allow it to have more than 18 quintillion (18,446,744,074,000,000,000) user accounts. Of course, there are currently only about 6.5 billion people in the world. Is Facebook setting their sights beyond Earth or just trying to avoid what happened when Slashdot ran out of space for comment IDs last year. Perhaps they are planning to implement personas."
[+] Slashdot's Setup, Part 2- Software 151 comments
Today we have Part 2 in our exciting 2 part series about the infrastructure that powers Slashdot. Last week Uriah told us all about the hardware powering the system. This week, Jamie McCarthy picks up the story and tells us about the software... from pound to memcached to mysql and more. Hit that link and read on.
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by berny@work (57298) * <bstapleton@gmail . c om> on Thursday November 09 2006, @10:46AM (#16786073) Journal
    *Clap clap clap*
  • by AppHack (622902) on Thursday November 09 2006, @10:47AM (#16786079)
    ... roll over to be a last post?
  • D'oh. (Score:5, Insightful)

    by NeuralAbyss (12335) on Thursday November 09 2006, @10:47AM (#16786089) Homepage
    Anyone could have made the mistake.. good to keep us all in the loop though :)

    And let this be a reminder to the kids - RTFM, twice!
  • I for one (Score:5, Funny)

    by MrBulwark (862510) on Thursday November 09 2006, @10:48AM (#16786097)
    welcome our 2 to the power of X overlords.
  • Last post! (Score:5, Funny)

    by buro9 (633210) <david@buroCOBOL9.com minus language> on Thursday November 09 2006, @10:48AM (#16786103) Homepage
    Last post!
  • by admdrew (782761) <admdrew&gmail,com> on Thursday November 09 2006, @10:49AM (#16786117) Homepage
    Alright, who's the joker who posted the 16,777,216th comment?

    Thanks for breaking slashdot, jerk :D
  • Oh Noes! (Score:5, Funny)

    by The Mysterious X (903554) <adam@omega.org.uk> on Thursday November 09 2006, @10:49AM (#16786125)
    Its like y2k, only worse!
  • Congrats taco (Score:5, Interesting)

    by LiquidCoooled (634315) on Thursday November 09 2006, @10:49AM (#16786133) Homepage Journal
    Does this mean that comment id#16777215 has the longest thread in history?

    Can anyone actually find it to see - I tried but could only get to 16777217 [slashdot.org], its likely to be in a journal or just a reply to an older article.
  • by Anonymous Coward on Thursday November 09 2006, @10:50AM (#16786141)
    As if a thousand geeks all made the same damn "last post!" joke at once. . . . . .
  • by The_Wilschon (782534) on Thursday November 09 2006, @10:50AM (#16786147) Homepage
    I mean, look how quick we got to 16M comments. 4.1 Gigacomments will come in hardly any time at all. I predict we'll be doing all this again in merely a few weeks!
  • by Rob T Firefly (844560) on Thursday November 09 2006, @10:51AM (#16786159) Homepage Journal
    I wonder who posted comment #16777216. That person should win some sort of "I borked Slashdot!" award.
  • by PFI_Optix (936301) on Thursday November 09 2006, @10:51AM (#16786169) Journal
    "it's like y2k but worse"

    I know what you mean. Y2K was supposed to put an end to civilization, but at least we'd have been able to post on slashdot.
  • by jihadi_schwartz (989888) on Thursday November 09 2006, @10:51AM (#16786171)
    ...why wasn't this problem discovered on the dev system in advance?
  • by 0racle (667029) on Thursday November 09 2006, @10:52AM (#16786183)
    Anyone could have made the mistake
    But it's so much funnier when that anyone is not you.
  • 2^24 (Score:5, Funny)

    by Anonymous Coward on Thursday November 09 2006, @10:54AM (#16786219)
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
  • by jamie (78724) * <jamie@slashdot.org> on Thursday November 09 2006, @10:54AM (#16786231) Homepage Journal

    Some of you are asking which comment it was that got the cid 16,777,216. The answer is that none did. For redundancy, Slashdot is now running multiple-master replication which skips values for auto-increment [mysql.com]. Our db-1 assigns odd-numbered primary key IDs, and db-2 assigns even-numbered. Right now writes are going to db-1 so newly created rows will have only odd IDs.

    The comment that got 2**24-1 was this one [slashdot.org], if anyone cares :)

    Sorry about the inconvenience, everyone.

  • Digg? (Score:5, Funny)

    by Afrosheen (42464) on Thursday November 09 2006, @10:55AM (#16786235)
    That's cool, I'll just pretend I'm on Digg, with its 1981 Commodore 64 BBS-style threading.

      Wait..sorry Commodore fans. I know it had better threading than Digg.
  • Haggard? (Score:5, Funny)

    by Anonymous Coward on Thursday November 09 2006, @10:55AM (#16786249)
    Haggard admins? Does this mean that the Admins will go buy some meth and get a massage?
  • Uh, this is a reply to the 8th post down from the top (remember to use this like an array and zero reference). Yes, I'm talking to you, admdrew.

    You claim that the 16,777,216th comment would have broke it but I contest that actually the 16,777,217th comment poster would be the culprit. Since it should be able to handle that many comments if it is zero referenced, and it would actually be the one after that one that would break it. You laugh but these kinds of problems plague a lot of coders?

    If you don't agree with me, please respond below and reference my comment ID.
  • by DrJimbo (594231) on Thursday November 09 2006, @10:57AM (#16786273)
    ... should have been enough for anyone.
  • Holy Chit! (Score:5, Funny)

    by RedCard (302122) on Thursday November 09 2006, @10:58AM (#16786289)
    No threading? Welcome to Farkdot.
  • And? (Score:5, Funny)

    by Lars T. (470328) <{moc.liamelgoog} {ta} {regearT.sraL}> on Thursday November 09 2006, @11:00AM (#16786325) Journal
    Sorry for the inconvenience. We shall flog ourselves appropriately.
    And post the YouTube link?
  • by Temuar Skylari (1008449) on Thursday November 09 2006, @11:03AM (#16786369)
    Dupe! I TOTALLY posted this story like, last WEEK man! (I laugh, but I betcha someone might post this in seriousness)
  • by camusflage (65105) on Thursday November 09 2006, @11:04AM (#16786381) Homepage
    Flogging and Haggard in the same sentence? If we can get "crystal meth" in, we'll hit the trifecta!
  • Sounds Familiar (Score:5, Informative)

    by old_skul (566766) on Thursday November 09 2006, @11:04AM (#16786385) Journal
    I used to work at Comair. Remember, that airline that stranded about 10,000 people in the airport a couple of Christmases ago? Same deal. Program was capable of handling only a certain number of changes. Hopefully your president won't have to resign.
  • by tlhIngan (30335) <slashdot&worf,net> on Thursday November 09 2006, @11:05AM (#16786391)
    So is the bug still in the CVS revision of Slash, or was it fixed 5 years ago and Slashdot never applied the patch?
  • by davidwr (791652) on Thursday November 09 2006, @11:05AM (#16786397) Homepage Journal
    Give a 2^0-year Slashdot subscription to the guy who hit the limit and one to the the first non-administrator guy who successfully posted after the fix.

    If you can find the first guy who COULDN'T reply due to the limit, give him one too. He deserves something for his trouble.
  • by DeadCatX2 (950953) on Thursday November 09 2006, @11:05AM (#16786399) Journal
    Actually, comment 16,777,217 couldn't break it, because that comment's parent cid could have only been 16,777,215. Up until then, there wouldn't have been an overflow value put into the db.

    There's no telling which comment it is, because (16,777,217 + 2n) might not have been a reply, meaning it would come up correctly.
  • Does this mean that Slashdot is going to denegrate into Digg now?
  • Reply to 16786251 (Score:5, Informative)

    by RAMMS+EIN (578166) on Thursday November 09 2006, @11:08AM (#16786431) Homepage Journal
    Reply to comment number 16786251 [slashdot.org]:

    ``You claim that the 16,777,216th comment would have broke it but I contest that actually the 16,777,217th comment poster would be the culprit. Since it should be able to handle that many comments if it is zero referenced'' ...but it's probably not zero-referenced. Typically, ids in SQL start at 1.
  • @eldavojohn, #16786251 [slashdot.org] (god, this feels like digg now)
    Uh, this is a reply to the 8th post down from the top (remember to use this like an array and zero reference). Yes, I'm talking to you, admdrew.

    You claim that the 16,777,216th comment would have broke it but I contest that actually the 16,777,217th comment poster would be the culprit. Since it should be able to handle that many comments if it is zero referenced, and it would actually be the one after that one that would break it. You laugh but these kinds of problems plague a lot of coders?

    If you don't agree with me, please respond below and reference my comment ID.

    I certainly admit I wasn't thinking 0-based when I wrote that. The question is, though, should we blame the person who wrote the last valid comment (therefore ruining the fun for the rest of us), or whoever wrote the first broken comment?

    Also, is everyone going to add the obligatory 'parent' link on their posts today?


    [ Parent [slashdot.org] ] - [ Reply to this [slashdot.org] ]
  • Any thoughts on making the DB publicly accessable other than through teh Dot? Not sure what I'd do with all that data, but I'm sure these's a grad student somewhere who'd love the opportunity...
  • by zepo1a (958353) on Thursday November 09 2006, @11:14AM (#16786501)
    Brillant!

    I always wondered where Paula Bean ended up...
  • by Stalyn (662) on Thursday November 09 2006, @11:14AM (#16786505) Homepage Journal
    mod parent up
  • by foniksonik (573572) on Thursday November 09 2006, @11:17AM (#16786527) Homepage Journal
    Uhhhh who's your daddy?
  • by poot_rootbeer (188613) on Thursday November 09 2006, @11:19AM (#16786543)
    Slashdot being a news (for nerds) site, I would expect that the usage patterns are such that a huge majority of the content accessed by users is very recent -- say, perhaps, 90% of the database hits are for stories and comments that were posted in the last week.

    So why, pray, is this usage pattern not accounted for in the database design?
  • by bazorg (911295) on Thursday November 09 2006, @11:19AM (#16786545)
    Mod parent ... wait..
  • by Anonymous Coward on Thursday November 09 2006, @11:22AM (#16786577)
    http://slashdot.org/~themusicgod1/journal/137880 [slashdot.org] ...ok, so it was obvious...
  • by deaton (616663) on Thursday November 09 2006, @11:25AM (#16786597)
    Take all the time you need, I'm more than willing to refrain from posting durin.... Oh shit!
  • Slashed Eyeballs (Score:4, Insightful)

    by Doc Ruby (173196) on Thursday November 09 2006, @11:26AM (#16786611) Homepage Journal
    If Slashdot released the Slashcode more frequently, with more/better comments/docs, and encouraged some of the many of us who complain about bugs/features to help the project, then it's more likely that someone would have debugged this bug earlier.

    Open source - it's not just a buzzword, it's a way of life.
  • by QuickFox (311231) on Thursday November 09 2006, @11:29AM (#16786661)
    And this is why you should not have arbitrary limits in your programs, ladies and gentlemen. Not even limits on the values your numbers can represent

    Now this is a real Slashdotter! This guy knows how to build an infinite computer!
  • 24 bit? (Score:5, Insightful)

    by voidptr (609) on Thursday November 09 2006, @11:40AM (#16786795) Homepage Journal
    Why on earth does MySQL have a 24 bit integer datatype? On what platform does it even remotely make sense to use that in the first place? It's going to get cast to 32 bits for any arithmetic operations anyway, and on most platforms today alignment requirements are going to pad the extra byte in memory and disk, so you're not even saving any space. Why even give someone the option over choosing between 16 bit and 32 bit integers?
  • poot_rootbeer asks why all the comments are in one table, when the data access pattern is such that 90% of our hits are on only the most recent entries in that table.

    The answer is that we used to do it this way but it's a huge pain. In 2000 we converted from having two tables for 'stories', recent and archived, and merged them together. The performance hit was not big, and it made the code so much simpler it was a no-brainer.

    It's the database's job to cache properly whether we split the table or not, and the database does that just fine. The only performance problem could be when there is a rush of inserts, or updates to the same sets of rows, spanning both newer and older portions of the table, and that just doesn't happen.

    If we did want to do this we wouldn't split the tables manually; the code complexity is too high a price to pay. In MySQL 5.0 we would use a MERGE [mysql.com] engine, which has issues of its own but would involve smaller changes to our code. That's still not worth it for us. What we're probably going to do is wait for MySQL 5.1 to get out of beta and then do some performance testing on tables partitioned [mysql.com] by date and see if that gains us anything. For example, a SELECT on our comments table could be limited with a WHERE clause to only retrieve rows with a date >= the discussion object's date, which for 90% of our queries MySQL 5.1 could optimize to only look at the most recent partition. If the gains turn out to be significant, then since partitioning involves very limited code changes, we'll probably do that. Generally speaking, though, database performance is not a problem for us. So far our main bottlenecks have been CPU and RAM on the webheads. As long as we don't do anything stupid our database performance has been fine, though, as today proves, we are quite capable of being stupid.

    [ Parent [slashdot.org] ]

  • by bigpat (158134) on Thursday November 09 2006, @11:46AM (#16786861) Homepage
    Would not have happened if Slashdot used PostgreSQL.

    Let the flamewars begin...


    Unthreaded flame wars are much less enjoyable.
  • by Speare (84249) on Thursday November 09 2006, @11:48AM (#16786879) Homepage

    The number 2^24 is of interest to digital computer artists, as that is the number of unique colors combined in the commonly implemented "True Color" RGB8 space. That color space is looking pretty limiting in some respects, but that is truly a lot of unique colors when you think about it. A 16 megapixel image does not need to repeat any color used.

    If all slashdot posts from the history of Slashdot were sorted into color bins,
    • every post including the -2 trolls would get their own unique color,
    • all the colors which are predominantly blue would be claimed as "first posts,"
    • all the colors which are predominantly green would be unfunny memes like "hot grits,"
    • all the colors which are predominantly red would be complaints about editing or journalism,
    • the pure cyan, magenta, yellow shades are moderated as insightful or interesting,
    • the 256 posts corresponding to completely neutral gray shades are actually insightful or interesting

    Once that were done, people could simply post their replies as a reference to existing posts. "Hey, #938D3A to you, buddy!" "Know what I think of that? #F2C2A9!"

  • One day, Cmdr Taco is designing his database, and he sits down at a table with three integers on it. First, he tries the baby bear's integer, but exclaims "2 meager bytes is way too small for my appetite."

    Next, he tries Papa bear's integer, but proclaims "4 bytes is way too big for my little site, I'd just end up wasting so much."

    Finally, he tries Mama bear's integer, and extols "3 bytes is just right," not noticing it was really the same as Papa Bear's bowl in disquise.
  • by Control Group (105494) * on Thursday November 09 2006, @11:58AM (#16786979) Homepage
    Get your mod points ready, this is off topic, but considering the current state of discussion anyway, I don't feel so bad about it.

    Regardless, while writing this post [slashdot.org] regarding why the /. admins won't (and shouldn't) consider releasing a copy of the /. DB to the public, something occurred to me.

    Comments on /. are owned by the poster, according to that one line that shows up on all the comment pages (specifically, "The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.") At the same time, though, /. doesn't provide a method for having comments you've made removed from the DB.

    If I own the copyright on the comments I've made, shouldn't I be able to rescind publication rights on them, and prevent /. from displaying them in future? Or is there some kind of implicit license in posting on /.? Did I clicksign an agreement covering this when I joined (this was getting on towards a decade ago, so I really don't remember the joining process at all)?

    Or are publication rights, once granted, irrevocable?

    Of course, I suppose asking questions when there's no way for people to hit reply is a specific form of vague insanity...still, I'm curious.
  • by filesiteguy (695431) <kai@perfectreign.com> on Thursday November 09 2006, @11:59AM (#16786991) Homepage
    I'd really like to see it. I bet it goes something like, "what's this stupid web thingy anyway? I bet it'll never make it to version 2.0..."
  • +10 (Score:5, Insightful)

    by BandwidthHog (257320) <may_2007@ironicallyenough.com> on Thursday November 09 2006, @12:19PM (#16787141) Homepage Journal
    Ten points for honesty!

    At least they didn’t try to make bullshit excuses. I respect them for being up front about the real nature of the issue.

  • by UnanimousCoward (9841) on Thursday November 09 2006, @12:31PM (#16787247) Homepage
    As your punishment, you should write some kind of data-mining algorithm that starts from the point you disabled threading and try to construct intelligent threads based on the subject and the body of comments...