1,487 karma · joined January 16, 2012
@danlovesproofs
Even so, there are a few factors to consider:
- Half second dedupes are for users with 100k+ events, which is <<1% of them.
- We batch events for ~5s before adding them to the cluster, so we aren't deduping for every event -- only once per ~5s of events per user.
If this becomes an issue, we can remove the deduping from normal operation and only call it when we're backfilling / updating events. Even so, we still need this function to exist, and the 100x performance improvement is very helpful.
In particular, to compute where a user drops off in a funnel, I need to scan one array from left to right, and I don't need to do any joins. This shards very well, since all of a user's data lives on one shard, and most of the queries are aggregations, which are simple to reassemble from subqueries.
- For plpgsql functions that are required by app queries, we just roll them out when we write them / when they change (via ansible).
- For plpgsql functions used in jobs, the job just reloads the relevant plpgsql functions on the relevant DBs before they start doing anything. (It's a little wasteful, but not in a way that matters for now.)
- The UDFs we've written in C don't change too often, but we deploy them manually when they do.
What are some of the headaches you've had in managing stored procs? How often is your app code changing / requiring new ones?
I'd pay (one upvote) for a blog post with a better way to do this. If one doesn't exist, this might call for a postgres extension.
The server-level monitoring is free, and it's super simple to install. (The code we use to roll it out via ansible: https://gist.github.com/drob/8790246)
You get 24 hours of historical data and a nice webUI. Totally worth the effort.
It's also where I found out about a handy tool for demystifying EXPLAIN output: http://explain.depesz.com/
The difference between skyrocketing prices and stable ones is on the order of 3,000 new units per year, not 30,000. This is a goal we can hit with skyrises restricted to one part of town, or with three family homes in place of a lot of single family homes, or in a number of other tasteful ways.
It's not as if 500,000 techies are moving to Oakland at once. It's a slow trickle, but, with a fixed supply, prices spike.
Agreed that this is still not ideal for medium-sized content sites, though a lot better than the old pricing model, which charged by the user (as opposed to the visit) and thus was a total nonstarter for them. We usually don't suggest sampling, because we do think there's value in using Heap for analysis at the top of the funnel.
Father time has been cruel to you. Where once was a thriving community of armchair intellectuals eager to share their thoughts on Edward Snowden, Hyperloop, and the latest Snapchat valuation, now there is pixelated pornography.
This exact behavior happened all the time when Steve Jobs ran Apple. Remember Google Voice, or the countless other apps that Apple banned from the walled garden for whatever reason?
If anything, this is evidence that Apple hasn't changed.
I do think we're chronically underbuilding in a lot of places (SF being an extreme example), but the existence of steel and elevators is not a panacea for the "gentrification problem".
I had a hard time coming up with a good citation for this. Retroactive taxes seem to be legally controversial whenever introduced, and they're usually retroactive only to the beginning of the year introduced. Could you point me towards a better link?
You might even get a PR or two. :)
This is dogma on the right, but it echoes surprisingly often from the left as well.
That said, I don't think a basic income experiment with a successful outcome would cause us to take the notion seriously in the US.
Portugal's decriminalization of drugs in 2001 comes to mind. By all accounts, it was a great success, which we've largely ignored. The dozens of countries with single-payer health care systems that deliver better care for far less money are another regrettable example.
Here's hoping Switzerland undertakes what looks to be a fascinating experiment.
JustFab is different. JustFab's viability depends on people not reading the fine print on the side. As I understand it, their "VIP Program" is their main differentiator.
Is there any context in which it would make sense to set up circular replication? This would necessitate that all of your nodes be read-only, so I'm not sure what there would be to replicate.
In any case, a bunch of these new features are hot. Particularly excited about fast failover and custom background workers.