Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 18 submissions in the queue.
posted by n1 on Saturday June 10 2017, @11:07AM   Printer-friendly
from the i-am-spartacus dept.

Software engineers go crazy for the most ridiculous things. We like to think that we're hyper-rational, but when we have to choose a technology, we end up in a kind of frenzy — bouncing from one person's Hacker News comment to another's blog post until, in a stupor, we float helplessly toward the brightest light and lay prone in front of it, oblivious to what we were looking for in the first place.

This is not how rational people make decisions, but it is how software engineers decide to use MapReduce.

As Joe Hellerstein sideranted to his undergrad databases class (54 min in):

The thing is there's like 5 companies in the world that run jobs that big. For everybody else... you're doing all this I/O for fault tolerance that you didn't really need. People got kinda Google mania in the 2000s: "we'll do everything the way Google does because we also run the world's largest internet data service" [tilts head sideways and waits for laughter]

Having more fault tolerance than you need might sound fine, but consider the cost: not only would you be doing much more I/O, you might be switching from a mature system—with stuff like transactions, indexes, and query optimizers—to something relatively threadbare. What a major step backwards. How many Hadoop users make these tradeoffs consciously? How many of those users make these tradeoffs wisely?

Source: https://blog.bradfieldcs.com/you-are-not-google-84912cf44afb


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 3, Insightful) by Nerdfest on Saturday June 10 2017, @11:13AM (8 children)

    by Nerdfest (80) on Saturday June 10 2017, @11:13AM (#523460)

    Well, over-engineering for expected growth is against the "XP" sort of idea that you should "do the simplest thing that could possibly work", but usually not designing for potential growth or future changes bites you in the ass in one way or another. It's always a call that needs to be done based on experience, but I think every time I've over-engineered something based on what I expect to happen in the future, it's paid off in a huge way. As with everything, it's cost/ benefit, or at least potential cost and potential benefit.

    Starting Score:    1  point
    Moderation   +1  
       Insightful=1, Total=1
    Extra 'Insightful' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   3  
  • (Score: 0) by Anonymous Coward on Saturday June 10 2017, @11:25AM

    by Anonymous Coward on Saturday June 10 2017, @11:25AM (#523464)

    Maybe it's about predicting where the project will be in n years and deciding to make certain subsystems expandable while making other KISS-adherent.

  • (Score: 3, Insightful) by Bobs on Saturday June 10 2017, @12:08PM (3 children)

    by Bobs (1462) on Saturday June 10 2017, @12:08PM (#523469)

    Yeah. I have found basing things on a fundamentally scalable architecture then KISS-Inc the hell out of it usually works well.
    You can usually buy time to fix and upgrade individual subsystems as long as you don't have to rip out and rebuild the whole system.

    Balanced against

    "The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming. " - Knuth

    • (Score: 0) by Anonymous Coward on Saturday June 10 2017, @06:23PM (2 children)

      by Anonymous Coward on Saturday June 10 2017, @06:23PM (#523541)

      I have found basing things on a fundamentally scalable architecture then KISS-Inc the hell out of it usually works well.

      1) That's fine if you're basing on OSS or free stuff. Then your scaling considerations don't need to include stuff like software licensing ;). Whereas if you base on non-free stuff, you may find it starts costing a lot more to scale.

      2) It's also fine if you're not basing it on really crappy stuff. e.g. MySQL and/or PHP. Yes I know Facebook managed despite that but I'm sure it was quite painful.

      • (Score: 0) by Anonymous Coward on Saturday June 10 2017, @07:14PM

        by Anonymous Coward on Saturday June 10 2017, @07:14PM (#523559)

        2) It's also fine if you're not basing it on really crappy stuff. e.g. MySQL and/or PHP. Yes I know Facebook managed despite that but I'm sure it was quite painful.

        Just like you are not google; you are also not facebook.

      • (Score: 2) by Nerdfest on Saturday June 10 2017, @09:08PM

        by Nerdfest (80) on Saturday June 10 2017, @09:08PM (#523587)

        That's pretty funny, I was going to pick FaceBook as a bad example as well. They overcame it, but it took quite a lot of effort. As someone else mentioned, imagine if they used proprietary tech. I think StackOverflow did for software (and I'm not sure how much they get boned on licences), but they went cheap on hardware, which was good. I've worked for places where they "buy" lameframe processing from IBM and what would run on a few PCs costs millions.

  • (Score: 2) by Runaway1956 on Saturday June 10 2017, @02:56PM (1 child)

    by Runaway1956 (2926) Subscriber Badge on Saturday June 10 2017, @02:56PM (#523495) Journal

    "It's always a call that needs to be done based on experience,"

    There's a term for that - "judgement". Some people are qualified to make a judgement call, others are not. Personally, I've always "over engineered", but my work is in the more concrete real world. Yes, you can overdo it, but even when watching costs, I've always engineered a little above expectations. Even if I'm only building a doghouse, I want to make it sturdy enough that my dog doesn't end up in the Land of Oz. (Yeah, my dog is an Australian sheep dog, but I like her, and the Ozzies can't have her back!)

    That doesn't mean I build $10,000 dog houses. But, I take the time to drive some posts into the ground, build a frame on those posts, then close it and roof it. I've never bricked a doghouse, but that would be pretty cool . . .

    Point is, you can build to higher standards than the people around you, without breaking the bank. And, that's where judgement comes in.

    • (Score: 0) by Anonymous Coward on Saturday June 10 2017, @04:47PM

      by Anonymous Coward on Saturday June 10 2017, @04:47PM (#523512)

      You should have built your doghouse like Google does. Less stability, more big data. I almost modded this "Offtopic", but then I saw who it was, and asked myself, "What would Google do?"

  • (Score: 2) by sjames on Saturday June 10 2017, @07:04PM

    by sjames (2882) on Saturday June 10 2017, @07:04PM (#523553) Journal

    There is design for expansion, there's prudent over-engineering, and then there's shooting a gnat with an elephant gun.