Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    B

    Baron Schwartz

    xaprb.com · Personal blog · on HN since 2008

    Baron Schwartz writes about databases, MVCC, time-series systems, and engineering management, drawing on his MySQL performance background.

    Visit blogHN submissions
    DatabasesDistributed SystemsSystems & Performance
    What HN says

    HN cites his posts on immutability and MVCC, and on why automated database failover often causes more downtime than it prevents.

    Stats for nerds
    77HN people shared it
    80linked in comments
    930story points
    Jan 2022last shared
    2009people per year2022

    Top posts on HN

    1. 1
      Immutability, MVCC, and garbage collection
      7 people · 185 points · first shared 2013 · 46 comments on HN
    2. 2
      Computer Science students: Learn to write
      1 person · 140 points · first shared 2011 · 62 comments on HN
    3. 3
      If Eventual Consistency Seems Hard, Wait Till You Try MVCC
      3 people · 128 points · first shared 2014 · 48 comments on HN
    4. 4
      Time-Series Database Requirements
      3 people · 94 points · first shared 2015 · 44 comments on HN
    5. 5
      How to find per-process I/O statistics on Linux
      1 person · 49 points · first shared 2009 · 17 comments on HN
    6. 6
      Dr. Richard Hipp calls them "Postmodern Databases"
      1 person · 47 points · first shared 2010 · 25 comments on HN
    7. 7
      What is it like to write a technical book?
      3 people · 44 points · first shared 2008 · 5 comments on HN
    8. 8
      How to find un-indexed queries in MySQL, using tcpdump
      1 person · 38 points · first shared 2009 · 10 comments on HN
    9. 9
      Three Vacation Policies
      1 person · 31 points · first shared 2019 · 45 comments on HN
    10. 10
      Why Deployment Freezes Don't Prevent Outages
      1 person · 30 points · first shared 2014 · 11 comments on HN

    What HN people wrote when they linked it

    • jacques_chesterAug 2020

      This can be flipped into a simple heuristic known as the "square root staffing rule" (sometimes "... law"). The name comes from call centres.

      Basically, the number of servers you need to serve X amount of demand with Y probability of queuing is not linear with X. It is proportional to the square root of X.

      The intuition is that a call centre agent is either talking to a customer, or they are not. If they are not talking to a customer, then they can immediately serve a customer. The odds that a given agent is talking to a customer is on a probability distribution, usually assumed to be the normal distribution.

      In a normal distribution, larger samples lead to more and more appearances of outliers in the sample. More agents means more "outliers", in this case, more idle agents. And that curve is not linear, it follows the shape of the normal distribution.

      Where it sucks for call centres is that demand shows seasonality and shift planning has relatively inflexible lead times. But in a software scenario we can typically acquire additional capacity quickly, so precision in forecasts is less of a problem.

      A decent explanation: https://www.networkpages.nl/the-golden-rule-of-staffing-in-contact-centers/

      A short scenario: https://www.xaprb.com/blog/square-root-staffing-law/

      A simple calculator linked from the short scenario: https://www.desmos.com/calculator/8lazp6txab

    • kuwzeMar 2018

      The biggest problem is the query language. Without a query language, a company must hire and keep on-staff a developer who can help express problems to the database. Time after time people told me that they ended up with giant databases and needed to run lots of ad-hoc queries or generate reports from them. Once a time-series database becomes the system of record for important information, it needs to be queried for everything from invoicing to analytics to troubleshooting. In practice, larger companies end up with at least two full time developers who write applications to produce answers from the database. These are answers that the business/marketing/ops/whoever should be able to get themselves by just running queries. As time passes, this is both a huge cost and a bottleneck.[0] Link [1] goes to the archive mirror.

      [0]: https://www.xaprb.com/blog/2014/03/02/time-series-databases-influxdb/
      [1]: https://web.archive.org/web/20170917033402/https://www.xaprb.com/blog/2014/03/02/time-series-databases-influxdb/

    • jbay808Jun 2020

      > It is difficult to imagine anything resembling a "general" intelligence that isn't attached to a life-form[...]

      How is that argument any stronger than these ones that (non-animal) heavier than air flight is impossible?

      https://www.xaprb.com/blog/flight-is-impossible/

      I think these are actually stronger arguments, because I can think of at least three very least significant material-science advantages that birds have even over modern technology that would, from a physics point of view, let me entertain the idea that a 19th century physicist could believe you'd at least need to be made of flesh to fly. I can't think of any comparable case for intelligence being restricted to biology.

    • eloffMar 2015

      Immutability is hardly a cure-all, see the discussion here for why RethinkDB moved away from it: http://www.xaprb.com/blog/2013/12/28/immutability-mvcc-and-garbage-collection/

      The reality is shared, mutable state is the most efficient way of working with memory-sized data. People can rant and rave all they want about the benefits of immutability vs mutability, but at the end of the day, if performance is important to you, you'd be best to ignore them.

      Actually, to be more honest, reality is more complicated still. MVCC that many databases use to get ACID semantics over a shared mutable dataset is really a combination of mutable and immutable.

    • juliangregorianJan 2015

      MVCC is not versioning. MVCC is concurrency control.

      I would have to be convinced that the DB is an appropriate place to handle versioning of the kind you are speaking of.

      For instance, see this article: http://www.xaprb.com/blog/2013/12/28/immutability-mvcc-and-garbage-collection/
      Upshot is that RethinkDB started out append-only with rewindability etc. and then ran into real-world problems.

      Every system I've ever seen that did versioning does it at the software level and stores multiple records in the database.

      Rails gem "paper trail" is an example.

    • cagenutSep 2012

      I'd like to welcome the github ops/dbas to the club of people who've learned the hard way that automated database failover usually causes more downtime than it prevents.

      Here's sortof the seminal post on the matter in the mysql community: http://www.xaprb.com/blog/2009/08/30/failure-scenarios-and-solutions-in-master-master-replication/

      Though it turns into an MMM pile-on the tool doesn't matter so much as the scenarios. Automated failover is simply unlikely to make things better, and likely to make things worse, in most scenarios.

    Related

    MySQL Performance Blogmysqlperformanceblog.com110 people

    Disaster: MySQL 5.5 Flushing

    MySQL Performance Blog
    Company · last shared 2014
    Timescale Blogblog.timescale.com95 people

    How percentile approximation works and why it's more useful than averages

    Timescale Blog
    Company · last shared 2022
    Pivotal Engineering Blogengineering.pivotal.io18 people

    Abstraction, Or, the Gift of Our Weak Brains

    Pivotal Engineering Blog
    Company · last shared 2020
    Uber Engineering Blogeng.uber.com525 people

    Why Uber Engineering Switched from Postgres to MySQL

    Uber Engineering Blog
    Company · last shared 2025
    Domas Mituzasdom.as25 people

    MySQL is bazillion times faster than MemSQL

    Domas Mituzas
    Personal · last shared 2024
    fasterthanli.mefasterthanli.me236 people

    A half-hour to learn Rust

    fasterthanli.me
    Personal · last shared 2026
    The Morning Paperblog.acolyer.org606 people

    Local-first software: you own your data, in spite of the cloud

    The Morning Paper
    Personal · last shared 2026
    DBMS2dbms2.com46 people

    Details on the Oracle failure at JPMorgan Chase

    DBMS2
    Personal · last shared 2022