Comments on: The Challenge of Scaling an Adserver http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/ Ramblings about online advertising, ad networks & other techie randomness Wed, 28 May 2014 09:36:00 +0000 hourly 1 http://wordpress.org/?v=3.2.1 By: zip repairs http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-147311 zip repairs Wed, 07 Mar 2012 06:17:00 +0000 http://www.mikeonads.com/?p=536#comment-147311 love the post, very interesting and informative. keep up the good work. love the post, very interesting and informative. keep up the good work.

]]>
By: Different Strokes for Different Folks « Yieldex http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-144109 Different Strokes for Different Folks « Yieldex Tue, 31 May 2011 06:05:45 +0000 http://www.mikeonads.com/?p=536#comment-144109 [...] and I spent a lot of years building ad servers. So I can say this from experience: ad servers are hard to build. There’s a lot of expertise that goes into delivering the right ad to the right person where [...] [...] and I spent a lot of years building ad servers. So I can say this from experience: ad servers are hard to build. There’s a lot of expertise that goes into delivering the right ad to the right person where [...]

]]>
By: Milosz Tanski http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-132236 Milosz Tanski Mon, 11 Oct 2010 18:09:01 +0000 http://www.mikeonads.com/?p=536#comment-132236 I spent a lot of time at Admeld discussing (erm, arguing) with the folks here about what seams at times like minute details of features and how they should be implemented (or how we need to go differently about things). Results of good designs can be scaled and grown rather then needing a rewrite in the future. There's a lot to be said for doing as much work ahead of time (offline) and sharing the upfront cost of it. But there's absolutely no reason you should not be able to ridicules amount of user targeting in real time and not even having the cpu break a sweat. I don't think there's anyone out there with well designed adserver who's run into machine limits. Real machine limits where their bottle neck is page fault, cache misses. Including us here. Lastly, it is my opinion that if can't get faster at what you do as you grow up (request / and data wise) then you're not doing it right. In fact as we've grown and added more features our systems acctually got faster. We now able to serve more qps (by order of magnitude) per machine then we use to. I spent a lot of time at Admeld discussing (erm, arguing) with the folks here about what seams at times like minute details of features and how they should be implemented (or how we need to go differently about things). Results of good designs can be scaled and grown rather then needing a rewrite in the future.

There’s a lot to be said for doing as much work ahead of time (offline) and sharing the upfront cost of it. But there’s absolutely no reason you should not be able to ridicules amount of user targeting in real time and not even having the cpu break a sweat.

I don’t think there’s anyone out there with well designed adserver who’s run into machine limits. Real machine limits where their bottle neck is page fault, cache misses. Including us here.

Lastly, it is my opinion that if can’t get faster at what you do as you grow up (request / and data wise) then you’re not doing it right. In fact as we’ve grown and added more features our systems acctually got faster. We now able to serve more qps (by order of magnitude) per machine then we use to.

]]>
By: Pradeep Javangula http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-131935 Pradeep Javangula Tue, 21 Sep 2010 06:56:51 +0000 http://www.mikeonads.com/?p=536#comment-131935 Hi Mike, Well written post. I am going to go a bit math geeky on you for a bit!:-) The problem in dynamic ad construction, as well as in optimization with algorithmic feedback loops at core boils down to "set computations" with a notion of relevance ranking and scoring. In general, the problem in real-time bidding is isomorphic to the dynamic ad selection problem - modulo some plumbing. The problem is of matching a high dimensional incoming vector to a set of high dimensional content/document vectors. The constraints for selection are often expressed in SQL like constructs with keyword search like semantics. In the literature, these are often called Non-Ordered Discrete Data Spaces, where standard Euclidean geometry does not work. And standard SQL oriented databases don't work at all, in terms of scale of computation and the flexibility demands. A new mechanism that does the absolute minimum in terms of fast computations, where business rules for marketing are encoded offline, we found to be the best approach. Having fallen down a few times implementing parametric search engines (in such discrete data environments) in past lives - our team has solved a substantial part of the retrieval scale problem in ad serving. We have had to run at volumes approaching 30K qps at latencies of less than 1 ms response times. That was a surprising burst of unexpected volume that came from RightMedia - within the first 2 seconds at the top of the hour reaching such peak volumes. It was scary and fun. It is also important to point out to the brave souls attempting this sort of build out that all of your systems - logging, data aggregation, analytics system scale are also not to be treated lightly. Everything gets stressed significantly. There are substantial challenges in horizontal scalability on those fronts as well. There are some folks that appear to think that throwing hardware in a cluster will solve all problems. With battle scars to prove it, not really. You still have to look at your own computational pipeline and address bottlenecks one at a time. But nothing gives like a great algorithm. But you know that already. Long live D.E. Knuth!:-) --pradeep Hi Mike,

Well written post.

I am going to go a bit math geeky on you for a bit!:-)

The problem in dynamic ad construction, as well as in optimization with algorithmic feedback loops at core boils down to “set computations” with a notion of relevance ranking and scoring. In general, the problem in real-time bidding is isomorphic to the dynamic ad selection problem – modulo some plumbing. The problem is of matching a high dimensional incoming vector to a set of high dimensional content/document vectors. The constraints for selection are often expressed in SQL like constructs with keyword search like semantics. In the literature, these are often called Non-Ordered Discrete Data Spaces, where standard Euclidean geometry does not work. And standard SQL oriented databases don’t work at all, in terms of scale of computation and the flexibility demands. A new mechanism that does the absolute minimum in terms of fast computations, where business rules for marketing are encoded offline, we found to be the best approach.

Having fallen down a few times implementing parametric search engines (in such discrete data environments) in past lives – our team has solved a substantial part of the retrieval scale problem in ad serving. We have had to run at volumes approaching 30K qps at latencies of less than 1 ms response times.

That was a surprising burst of unexpected volume that came from RightMedia – within the first 2 seconds at the top of the hour reaching such peak volumes. It was scary and fun.

It is also important to point out to the brave souls attempting this sort of build out that all of your systems – logging, data aggregation, analytics system scale are also not to be treated lightly. Everything gets stressed significantly. There are substantial challenges in horizontal scalability on those fronts as well.

There are some folks that appear to think that throwing hardware in a cluster will solve all problems. With battle scars to prove it, not really. You still have to look at your own computational pipeline and address bottlenecks one at a time. But nothing gives like a great algorithm. But you know that already. Long live D.E. Knuth!:-)

–pradeep

]]>
By: Tim Wintle http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-131086 Tim Wintle Mon, 02 Aug 2010 21:13:48 +0000 http://www.mikeonads.com/?p=536#comment-131086 Hi Mike, Re: the (A^B)v(C^D) issue - to me it's actually a question of on vs off-line processing. The final actual logical (A && B) || (C && D) only going to end up one extra instruction anyway (assuming they're all in registers) - far less than the time required to parse a cookie or HTTP header. The most important thing I've found, and something that took me a while to convince others of, is that you can give up synchronisation. E.g. if you've got quotas you don't want to be locking over something every request. It's fine to have a delay in synchronisation, and soak up costs for the _tiny_ fraction of a percentage extra that may be delivered, at an incorrect price etc. All that said, I'm working at what's your low-end , >1K/s is a fairly big spike for me. (I just came across your blog by the way - it's a breath of fresh air to find so many people working on serving ads commenting on one blog) Hi Mike,

Re: the (A^B)v(C^D) issue – to me it’s actually a question of on vs off-line processing.

The final actual logical (A && B) || (C && D) only going to end up one extra instruction anyway (assuming they’re all in registers) – far less than the time required to parse a cookie or HTTP header.

The most important thing I’ve found, and something that took me a while to convince others of, is that you can give up synchronisation. E.g. if you’ve got quotas you don’t want to be locking over something every request. It’s fine to have a delay in synchronisation, and soak up costs for the _tiny_ fraction of a percentage extra that may be delivered, at an incorrect price etc.

All that said, I’m working at what’s your low-end , >1K/s is a fairly big spike for me.

(I just came across your blog by the way – it’s a breath of fresh air to find so many people working on serving ads commenting on one blog)

]]>
By: Adz – Scalability Follow-Up — The challenge customers impose on innovation http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-129117 Adz – Scalability Follow-Up — The challenge customers impose on innovation Thu, 13 May 2010 04:42:27 +0000 http://www.mikeonads.com/?p=536#comment-129117 [...] you haven’t done so already, read this post The Challenge of Scaling an Adserver [...] [...] you haven’t done so already, read this post The Challenge of Scaling an Adserver [...]

]]>
By: Mike On Ads » Blog Archive » Scalability Follow-Up — The challenge customers impose on innovation http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-127854 Mike On Ads » Blog Archive » Scalability Follow-Up — The challenge customers impose on innovation Mon, 12 Apr 2010 03:43:36 +0000 http://www.mikeonads.com/?p=536#comment-127854 [...] The Challenge of Scaling an Adserver [...] [...] The Challenge of Scaling an Adserver [...]

]]>
By: nitsua ttocs http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-127712 nitsua ttocs Thu, 08 Apr 2010 16:24:18 +0000 http://www.mikeonads.com/?p=536#comment-127712 Good article Mike...not sure on the men from the boys tittle...is scale what is meant to separate or you going for a boyzIImen reunion tour? :) My view on the industry is that what separates businesses that succeed vs. ones that don't is maturity combined with execution. Good ideas are great but they don't get sold easily and I agree scale is important. Look forward to more posts! Good article Mike…not sure on the men from the boys tittle…is scale what is meant to separate or you going for a boyzIImen reunion tour? :)

My view on the industry is that what separates businesses that succeed vs. ones that don’t is maturity combined with execution. Good ideas are great but they don’t get sold easily and I agree scale is important.

Look forward to more posts!

]]>
By: Adwebmaroc - 1ère Régie Publicitaire Internet au Maroc » Blog Archive » The Challenge of Scaling an Adserver http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-127679 Adwebmaroc - 1ère Régie Publicitaire Internet au Maroc » Blog Archive » The Challenge of Scaling an Adserver Thu, 08 Apr 2010 05:04:16 +0000 http://www.mikeonads.com/?p=536#comment-127679 [...] WIth only 50 campaigns the total impact of the change is a 1ms increase in processing time — not n... [...] [...] WIth only 50 campaigns the total impact of the change is a 1ms increase in processing time — not n… [...]

]]>
By: Behavioral Advertising / Publicité Comportementale » The Challenge of Scaling an Adserver http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-127658 Behavioral Advertising / Publicité Comportementale » The Challenge of Scaling an Adserver Wed, 07 Apr 2010 23:02:45 +0000 http://www.mikeonads.com/?p=536#comment-127658 [...] WIth only 50 campaigns the total impact of the change is a 1ms increase in processing time — not n... [...] [...] WIth only 50 campaigns the total impact of the change is a 1ms increase in processing time — not n… [...]

]]>