HNHacker News
TopNewBestAskShowJobs

paladin314159

724 karma · joined October 8, 2014

paladin8.github.io/resume ternarysearch.blogspot.com
submissionscomments
paladin314159··on Scaling Analytics at Amplitude
Most of our databases are multi-tenant, so a single cluster will handle all customer data. The exception is Redshift, which has a separate cluster for each customer since we allow them to have direct access to it (https://amplitude.com/blog/2015/06/05/optimizing-redshift-pe...).
paladin314159··on Scaling Analytics at Amplitude
We tried a variety of PostgreSQL-based approaches, including this one. Unfortunately, the way you do set insertions using arrays is to do a O(n) membership check, which means your set will take O(n^2) to construct -- very inefficient.
paladin314159··on Scaling Analytics at Amplitude
Redis is a great piece of software, and we leverage it for several uses cases outside of managing sets. For our use case, there were a couple of blockers that prevented Redis from being a viable solution:

1. It's tricky to scale out a Redis node when it gets too big. Because RDB files are just a single dump of all data, it's not easy to make a specific partitioning of the dataset. This was a very important requirement for us in order to ease scaling (redis-cluster wasn't ready yet -- we've been following that carefully).

2. When you store hundreds of GB of persistent data in Redis, the startup process can be very slow (restoring from RDB/AOF). Since it can't serve reads or writes during this time, you're unavailable (setting up a slave worsens the following problem).

3. The per-key overhead in Redis (http://stackoverflow.com/questions/10004565/redis-10x-more-m...). We have many billions of sets that are often only a few elements in size -- think of slicing data by city or device type -- which means that the resulting overhead can be larger than the dataset itself.

If you think about these problems upfront, they're not too difficult to solve for a specific use case (partition data on disk, allow reads from disk on startup), but Redis has to be generic and so can't leverage the optimizations we made.

paladin314159··on Scaling Analytics at Amplitude
To be totally honest, there are so many technologies out there that claim to solve analytics that it's tough to seriously consider all of them.

That said, we have looked at Druid, which is also a good example of using lambda architecture in practice (http://druid.io/docs/0.8.0/design/design.html -- note the historical vs realtime distinction). They use many of the same design principles as us, and one of our sub-systems is very similar to it. We still believe the pre-aggregation approach is critical for performance in our use case, though. Lastly, when we started building the architecture (mid-2014), Druid was very new, and I'm generally wary of designing everything around a new and potentially unstable piece of software.

paladin314159··on Scaling Analytics at Amplitude
Author of the post here. Happy to talk about how we've designed/built our architecture at Amplitude!
paladin314159··on 10M events a month, free
Thanks for bringing this up! As CanioX mentioned, it'll be easiest for us to figure out what's going on with your numbers if you contact us directly at support@amplitude.com. Please don't hesitate to reach out to us regarding this.

To give a little more context around how web sessions work, the first event creates the session and each subsequent event triggered within 30 min of the previous one will be considered in the same session. The session length is calculated as the time between the first event of the session and the last.

paladin314159··on 10M events a month, free
Engineer at Amplitude here. Thanks for your thoughts!

We've been thinking a lot about this exact issue over the last few years and have come to the same conclusion: when dealing with a platform that provides a ton of value out of the box, you need to be somewhat opinionated, and you can't expect to cover every use case. Different customers can have very different questions about their data and unique insights that they want to discover.

To address that, we offer direct SQL access to the raw data in Amazon Redshift. While Redshift isn't the best solution for powering high-performance, realtime dashboards, its main benefit is that it supports most of the SQL standard, which means that you can answer close to any question about the data. This duality of the fast, easy-to-use dashboards that provide immediate value and the flexibility of Amazon Redshift for deeper, customized queries has helped a lot of our customers overcome the problems you describe.

Hope this makes sense, and we'd love to hear your feedback!

paladin314159··on Ask HN: Who is hiring? (June 2015)
Amplitude Analytics - San Francisco, CA

We're hiring backend, frontend, devops, mobile, and test engineers who are looking to work at an exciting early stage startup (20 people) that has grown very quickly over the last 6 months and is about to go through a ton more growth over the next year. We're very generous with salary and equity because we have a high bar for hiring (https://amplitude.com/team).

Amplitude is in the mobile app analytics space, and we're bringing the next level of analytics to app developers out there. Instead of just showing people numbers about their app, we're helping them find real insights and take action based on those findings. Check out our blog (http://blog.amplitude.com/) to learn more about how we think about analytics.

We don't hire for specific skills since we believe any good engineer will pick them up, but some of the technologies we use include: Python, AngularJS, Java, PostgreSQL, Redis, Amazon S3. We spend a lot of time thinking about distributed systems for data processing and querying as well as the user interaction/experience of dealing with a very complex and powerful analytics product. If any of this sounds interesting to you, check out our careers page (https://amplitude.com/careers).

Apply to: careers@amplitude.com

paladin314159··on Why We Chose Redshift
Compared to the lock-in of the AWS ecosystem in general, Redshift honestly isn't that bad. You can unload all of your data into S3 and then do whatever you want with it. I'd be surprised if most data warehousing solutions had such an easy way of exporting the data.
paladin314159··on Ask HN: Who is hiring? (February 2015)
Amplitude Analytics - San Francisco, CA

We're hiring backend, frontend, devops, mobile, and test engineers who are looking to work at an exciting early stage startup (11 people) that has grown very quickly over the last 6 months and is about to go through a ton more growth over the next year. We're very generous with salary and equity because we have a high bar for hiring (https://amplitude.com/team).

Amplitude is in the mobile/web app analytics space, and we're bringing the next level of analytics to app developers out there. Instead of just showing people numbers about their app, we're helping them find real insights and take action based on those findings. Check out our blog (http://blog.amplitude.com/) to learn more about how we think about analytics.

We don't hire for specific skills since we believe any good engineer will pick them up, but some of the technologies we use include: Python, AngularJS, Java, PostgreSQL, Redis, Amazon S3. We spend a lot of time thinking about distributed systems for data processing and querying as well as the user interaction/experience of dealing with a very complex and powerful analytics product. If any of this sounds interesting to you, check out our careers page (https://amplitude.com/careers).

Apply to: careers@amplitude.com

paladin314159··on Is Quantum Entanglement Real?
This is really cool. I took a (very) basic class on modern physics with Susskind; awesome guy and great at explaining things. Will have to read through this!
← PreviousPage 3 of 3