Hacker Newsnew | past | comments | ask | show | jobs | submit | Kassandry's commentslogin

Audrey Tang as well. She's awesome.

https://en.wikipedia.org/wiki/Audrey_Tang


[flagged]


Well, they listed Lynn Conway...


And Sophie Wilson.

It's probably just a coincidence though.


You could try things out with a Platinum Preppy for about 5 USD. Past that, a Pilot Metropolitan, or a Lamy Safari would be good entry level pens, in the 20 USD range. For 100-200 USD, you can get a very nice pen like the Pilot Custom Heritage 912, or a Pelikan M200. I'd recommend trying out the cheaper options first so you get an idea of what sorts of nibs you like.

http://gouletpens.com

http://jetpens.com

http://nibs.com

Are decent places to start looking for more modern pens. Hope that helps.


Josh Berkus, core PostgreSQL member and currently employed by Red Hat seems to think they go well together. Here's some of his work:

https://www.youtube.com/watch?v=iruaCgeG7qs

https://github.com/jberkus/atomicdb


From their article:

"Additionally we had been running with far too much delay in vacuuming which meant lower load on the system, but more idle time in maintenance."

So, vacuum wasn't given the resources to keep up with their load, and it's not clear if they were supplementing with manual vacuums during quiet times. Nor was it clear when they started reacting, as PostgreSQL (also outlined in their documentation link), will start squawking about wraparound well before it shuts down, or the monitoring they had in place for whether or not autovacuum/vacuum was keeping up with the workload, or the number of locks their application was taking (locks can block autovacuum).

Adjusting the autovacuum settings by table will give you finer control over the postgresql.conf parameters to better match the workload for specific tables, as well.

Partitioning would have also helped make the actively written part of the table smaller, and older data could be vacuumed with VACUUM FREEZE, or deleted later. There are extensions to help make that easier.

https://github.com/keithf4/pg_partman

Josh Berkus of PgExperts has some great advice here:

https://dba.stackexchange.com/questions/21068/aggressive-aut...

So does Jim Nasby, here:

http://bluetreble.com/2014/10/postgres-mvcc-and-a-look-at-va...

Regarding monitoring, check_postgres.pl would give them an idea that their vacuuming settings needed adjustment sooner, or their application locking needed to be adjusted to not block autovacuum.

https://bucardo.org/check_postgres/check_postgres.pl.html#tx...

https://bucardo.org/check_postgres/check_postgres.pl.html#la...

https://bucardo.org/check_postgres/check_postgres.pl.html#lo...

It's easy to mention things after the fact, though, and it's good they got things up and running again for their customers.


   PostgreSQL ... will start squawking about wraparound
   ...
   or the monitoring they had in place
If only there was a tool or service they could use that could monitor log files for signs of problems. (I couldn't resist being a little snarky, the situation seems so perfect.)

All kidding aside, kudos to Sentry for being so candid publicly about their problems. We've seen so many companies avoid providing any technical information. About the best we'll hear in some of these is that the problem was "not terrorism related".


David from Sentry here.

We actually knew about the problem with delay and had been working to improve it. We were a couple days away from failing over to the new hardware (safely) and unfortunately we didn't have any early warnings in the logs. I haven't yet looked at why.


You need to monitor how close you are to a wraparound. https://bucardo.org/check_postgres/check_postgres.pl.html#tx... is one way you could do that.


Can you share what you had for your autovacuum_vacuum_cost_delay, and your approximate rate of transactions?


We had at it 50ms on the previous setup, though I wish we I knew why that value was used. Likely it was a default with the Chef cookbook we forked off of, or we read something that convinced us at the time it was a good idea.


Happens. Glad you're back up and running, and best of luck with your new setup. =)


It sounds like they really ran afoul of the stable page writes bugs that exist in Linux 3.2.31 to 3.9.

Thread discussing the bug and a test program to show the issue.

https://lkml.org/lkml/2012/10/9/210

Patch introducing the bug:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....

Patch fixing the bug:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....

It causes a huge dropoff in latency and throughput by causing all filesystems to block even when they don't need to.

In short, 3.2 is lethally bad in terms of database workloads.



The tldr:

    Ingestion of high volumes of data was approximately 2.1 times faster in Postgres

    MongoDB consumed 33% more the disk space

    Data inserts took almost 3 times longer in MongoDB

    Data selection took more than 2.5 times longer in MongoDB than in Postgres


Now if only I had a baked in solution for a replica set, with hot master failover and command forwarding in PostgreSQL like I get with MongoDB.

Quirky bolt-on solutions, and those requiring a contract with EnterpriseDB or others need not apply.

I really don't mean for this to be as snarky as it sounds... I'd really love these features in PostgreSQL along with PLv8, I'd rather use that than MongoDB... unfortunately having a good in the box solution for MongoDB over PostgreSQL is a bigger breaking point than lack of Joins in my use case.


with hot master failover and command forwarding [...] like I get with MongoDB.

Failover is documented to not work very well in MongoDB (data loss): http://aphyr.com/posts/284-call-me-maybe-mongodb

On the postgres side RepMgr makes dealing with replication quite easy: https://github.com/2ndQuadrant/repmgr

See also this recent thread on the PostgreSQL mailing list: http://postgresql.nabble.com/Fully-automatic-streaming-repli...


I'd be careful quoting the aphyr post in that context. PG also had some failures, even in the non-replicated setup: http://aphyr.com/posts/282-call-me-maybe-postgres

Failures are just a property of distributed systems, some fail in ways that are better for you, some fail in ways that are worse, but sooner or later they all fail. It's a tradeoff which one you choose.


PG also had some failures

MongoDB loses acknowledged writes in its supposed "highest consistency" mode.

PostgreSQL does not.

That's a pretty fundamental difference, don't you think?


MongoDB was tested in a replicated setup, PG not, that's a pretty fundamental difference. Loosing acked writes in a master-slave replication with failover would be expected with a sufficiently large replication lag even for PG.

MongoDB is about the last database I'd pick for any given scenario, but I acknowledge that there are people that have a usecase where it might be a good fit because the tradeoffs work out for them.


Loosing acked writes in a master-slave replication with failover would be expected with a sufficiently large replication lag even for PG.

Bullshit.


Same here, we use MongoDB with 3 member replica sets even for small deployments. It's easy, built in, works fine with all official drivers.

I'd love to use PostgreSQL but we don't have resources to manage a decent replica set installation with all the sysop burden..


I don't like this benchmark. But as long as you don't heavily rely on updates or big documents I'm sure Postgres is at least competitive with Mongo.


Why the downvotes? Apparently people didn't care to check the source code before drawing conclusions ...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: