<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The Challenge of Scaling an Adserver</title>
	<atom:link href="http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/</link>
	<description>Ramblings about online advertising, ad networks &#038; other techie randomness</description>
	<lastBuildDate>Sat, 28 Jan 2012 06:27:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Different Strokes for Different Folks &#171; Yieldex</title>
		<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-144109</link>
		<dc:creator>Different Strokes for Different Folks &#171; Yieldex</dc:creator>
		<pubDate>Tue, 31 May 2011 06:05:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.mikeonads.com/?p=536#comment-144109</guid>
		<description>[...] 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 [...]</description>
		<content:encoded><![CDATA[<p>[...] 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 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Milosz Tanski</title>
		<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-132236</link>
		<dc:creator>Milosz Tanski</dc:creator>
		<pubDate>Mon, 11 Oct 2010 18:09:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.mikeonads.com/?p=536#comment-132236</guid>
		<description>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&#039;s a lot to be said for doing as much work ahead of time (offline) and sharing the upfront cost of it. But there&#039;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&#039;t think there&#039;s anyone out there with well designed adserver who&#039;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&#039;t get faster at what you do as you grow up (request / and data wise) then you&#039;re not doing it right. In fact as we&#039;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.</description>
		<content:encoded><![CDATA[<p>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.</p>
<p>There&#8217;s a lot to be said for doing as much work ahead of time (offline) and sharing the upfront cost of it. But there&#8217;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.</p>
<p>I don&#8217;t think there&#8217;s anyone out there with well designed adserver who&#8217;s run into machine limits. Real machine limits where their bottle neck is page fault, cache misses. Including us here.</p>
<p>Lastly, it is my opinion that if can&#8217;t get faster at what you do as you grow up (request / and data wise) then you&#8217;re not doing it right. In fact as we&#8217;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.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pradeep Javangula</title>
		<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-131935</link>
		<dc:creator>Pradeep Javangula</dc:creator>
		<pubDate>Tue, 21 Sep 2010 06:56:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.mikeonads.com/?p=536#comment-131935</guid>
		<description>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 &quot;set computations&quot; 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&#039;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</description>
		<content:encoded><![CDATA[<p>Hi Mike,</p>
<p>Well written post. </p>
<p>I am going to go a bit math geeky on you for a bit!:-)</p>
<p>The problem in dynamic ad construction, as well as in optimization with algorithmic feedback loops at core boils down to &#8220;set computations&#8221; with a notion of relevance ranking and scoring. In general, the problem in real-time bidding is isomorphic to the dynamic ad selection problem &#8211; 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&#8217;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.  </p>
<p>Having fallen down a few times implementing parametric search engines (in such discrete data environments) in past lives &#8211; 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. </p>
<p>That was a surprising burst of unexpected volume that came from RightMedia &#8211; within the first 2 seconds at the top of the hour reaching such peak volumes.  It was scary and fun.  </p>
<p>It is also important to point out to the brave souls attempting this sort of build out that all of your systems &#8211; 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. </p>
<p>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!:-)</p>
<p>&#8211;pradeep</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim Wintle</title>
		<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-131086</link>
		<dc:creator>Tim Wintle</dc:creator>
		<pubDate>Mon, 02 Aug 2010 21:13:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.mikeonads.com/?p=536#comment-131086</guid>
		<description>Hi Mike,

Re: the (A^B)v(C^D) issue - to me it&#039;s actually a question of on vs off-line processing.

The final actual logical (A &amp;&amp; B) &#124;&#124; (C &amp;&amp; D) only going to end up one extra instruction anyway (assuming they&#039;re all in registers) - far less than the time required to parse a cookie or HTTP header.

The most important thing I&#039;ve found, and something that took me a while to convince others of, is that you can give up synchronisation. E.g. if you&#039;ve got quotas you don&#039;t want to be locking over something every request. It&#039;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&#039;m working at what&#039;s your low-end , &gt;1K/s is a fairly big spike for me.

(I just came across your blog by the way - it&#039;s a breath of fresh air to find so many people working on serving ads commenting on one blog)</description>
		<content:encoded><![CDATA[<p>Hi Mike,</p>
<p>Re: the (A^B)v(C^D) issue &#8211; to me it&#8217;s actually a question of on vs off-line processing.</p>
<p>The final actual logical (A &amp;&amp; B) || (C &amp;&amp; D) only going to end up one extra instruction anyway (assuming they&#8217;re all in registers) &#8211; far less than the time required to parse a cookie or HTTP header.</p>
<p>The most important thing I&#8217;ve found, and something that took me a while to convince others of, is that you can give up synchronisation. E.g. if you&#8217;ve got quotas you don&#8217;t want to be locking over something every request. It&#8217;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.</p>
<p>All that said, I&#8217;m working at what&#8217;s your low-end , &gt;1K/s is a fairly big spike for me.</p>
<p>(I just came across your blog by the way &#8211; it&#8217;s a breath of fresh air to find so many people working on serving ads commenting on one blog)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adz &#8211; Scalability Follow-Up — The challenge customers impose on innovation</title>
		<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-129117</link>
		<dc:creator>Adz &#8211; Scalability Follow-Up — The challenge customers impose on innovation</dc:creator>
		<pubDate>Thu, 13 May 2010 04:42:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.mikeonads.com/?p=536#comment-129117</guid>
		<description>[...] you haven’t done so already, read this post The Challenge of Scaling an Adserver [...]</description>
		<content:encoded><![CDATA[<p>[...] you haven’t done so already, read this post The Challenge of Scaling an Adserver [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike On Ads &#187; Blog Archive &#187; Scalability Follow-Up &#8212; The challenge customers impose on innovation</title>
		<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-127854</link>
		<dc:creator>Mike On Ads &#187; Blog Archive &#187; Scalability Follow-Up &#8212; The challenge customers impose on innovation</dc:creator>
		<pubDate>Mon, 12 Apr 2010 03:43:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.mikeonads.com/?p=536#comment-127854</guid>
		<description>[...] The Challenge of Scaling an Adserver [...]</description>
		<content:encoded><![CDATA[<p>[...] The Challenge of Scaling an Adserver [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: nitsua ttocs</title>
		<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-127712</link>
		<dc:creator>nitsua ttocs</dc:creator>
		<pubDate>Thu, 08 Apr 2010 16:24:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.mikeonads.com/?p=536#comment-127712</guid>
		<description>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&#039;t is maturity combined with execution.  Good ideas are great but they don&#039;t get sold easily and I agree scale is important.  

Look forward to more posts!</description>
		<content:encoded><![CDATA[<p>Good article Mike&#8230;not sure on the men from the boys tittle&#8230;is scale what is meant to separate or you going for a boyzIImen reunion tour?  <img src='http://www.mikeonads.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   </p>
<p>My view on the industry is that what separates businesses that succeed vs. ones that don&#8217;t is maturity combined with execution.  Good ideas are great but they don&#8217;t get sold easily and I agree scale is important.  </p>
<p>Look forward to more posts!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adwebmaroc - 1ère Régie Publicitaire Internet au Maroc &#187; Blog Archive &#187; The Challenge of Scaling an Adserver</title>
		<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-127679</link>
		<dc:creator>Adwebmaroc - 1ère Régie Publicitaire Internet au Maroc &#187; Blog Archive &#187; The Challenge of Scaling an Adserver</dc:creator>
		<pubDate>Thu, 08 Apr 2010 05:04:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.mikeonads.com/?p=536#comment-127679</guid>
		<description>[...] WIth only 50 campaigns the total impact of the change is a 1ms increase in processing time — not n... [...]</description>
		<content:encoded><![CDATA[<p>[...] WIth only 50 campaigns the total impact of the change is a 1ms increase in processing time — not n&#8230; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Behavioral Advertising / Publicité Comportementale » The Challenge of Scaling an Adserver</title>
		<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-127658</link>
		<dc:creator>Behavioral Advertising / Publicité Comportementale » The Challenge of Scaling an Adserver</dc:creator>
		<pubDate>Wed, 07 Apr 2010 23:02:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.mikeonads.com/?p=536#comment-127658</guid>
		<description>[...] WIth only 50 campaigns the total impact of the change is a 1ms increase in processing time — not n... [...]</description>
		<content:encoded><![CDATA[<p>[...] WIth only 50 campaigns the total impact of the change is a 1ms increase in processing time — not n&#8230; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Shomaker</title>
		<link>http://www.mikeonads.com/2010/04/04/the-challenge-of-scaling-an-adserver/comment-page-1/#comment-127643</link>
		<dc:creator>John Shomaker</dc:creator>
		<pubDate>Wed, 07 Apr 2010 16:59:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.mikeonads.com/?p=536#comment-127643</guid>
		<description>Mike, totally agree.  The decline in CPMs over the past 24 months highlights your point:  ad serving technology companies has reduced R&amp;D in transitioning their platforms to higher scalability, and new media entrants have been lured by low-to-zero priced ad servers to maintain media margins.  The challenge with both situations is latency, customer loss, and ultimately much higher marginal costs.  Fortunately or unfortunately, AdJuggler hasn&#039;t had the luxury of DoubleClick&#039;s coffers and, as such, has built a highly scalable, yet small footprint platform.  We have many publisher and network clients that suggest an impression volume in our cluster runs on 1/5 of the footprint of other providers.  To Mike&#039;s point, building the scale - at the OS, data, Java, and UI layers - is not trivial, and a key driver why such platform segments will consolidate like utility companies.  Perhaps more importantly, as CPM have dropped, the sheer TCO - hardware, software, developers, backup, bandwidth, and other labor - makes a case that no media player should build or manage their own platform.</description>
		<content:encoded><![CDATA[<p>Mike, totally agree.  The decline in CPMs over the past 24 months highlights your point:  ad serving technology companies has reduced R&amp;D in transitioning their platforms to higher scalability, and new media entrants have been lured by low-to-zero priced ad servers to maintain media margins.  The challenge with both situations is latency, customer loss, and ultimately much higher marginal costs.  Fortunately or unfortunately, AdJuggler hasn&#8217;t had the luxury of DoubleClick&#8217;s coffers and, as such, has built a highly scalable, yet small footprint platform.  We have many publisher and network clients that suggest an impression volume in our cluster runs on 1/5 of the footprint of other providers.  To Mike&#8217;s point, building the scale &#8211; at the OS, data, Java, and UI layers &#8211; is not trivial, and a key driver why such platform segments will consolidate like utility companies.  Perhaps more importantly, as CPM have dropped, the sheer TCO &#8211; hardware, software, developers, backup, bandwidth, and other labor &#8211; makes a case that no media player should build or manage their own platform.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

