<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet filibeto</title>
  <updated>2012-05-18T07:37:06Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Stoyan Angelov</name>
    <email>s_angelov@filibeto.org</email>
  </author>
  <id>http://planet.filibeto.org/atom.xml</id>
  <link href="http://planet.filibeto.org/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://planet.filibeto.org/" rel="alternate"/>

  <entry xml:lang="en">
    <id>https://blogs.oracle.com/d/entry/solaris_developer_talk_next_week</id>
    <link href="https://blogs.oracle.com/d/entry/solaris_developer_talk_next_week" rel="alternate" type="text/html"/>
    <title xml:lang="en">Solaris Developer talk next week</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Vijay Tatkar will be talking about <a href="http://www.oracle.com/technetwork/server-storage/solaris11/overview/webinar-series-1563626.html">developing on Solaris</a> next week Tuesday at 9am PST.</p></div>
    </content>
    <updated>2012-05-18T05:39:42Z</updated>
    <published>2012-05-18T05:39:42Z</published>
    <category label="Work" term="/Work"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="performance"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="solaris"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="solarisstudio"/>
    <author>
      <name>Darryl Gove</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/d/feed/entries/atom</id>
      <link href="https://blogs.oracle.com/d/feed/entries/atom" rel="self" type="application/atom+xml"/>
      <link href="https://blogs.oracle.com/d/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en">Compiling and performance</subtitle>
      <title xml:lang="en">Darryl Gove's blog</title>
      <updated>2012-05-18T05:39:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://prefetch.net/blog/?p=5708</id>
    <link href="http://prefetch.net/blog/index.php/2012/05/15/cool-video-on-the-dtrace-port-to-linux/" rel="alternate" type="text/html"/>
    <title>Cool video on the DTrace port to Linux</title>
    <summary>This is a solid video: I can’t wait until DTrace is readily available in Linux!!</summary>
    <updated>2012-05-16T00:16:00Z</updated>
    <category term="Solaris DTrace"/>
    <author>
      <name>matty</name>
    </author>
    <source>
      <id>http://prefetch.net/blog</id>
      <link href="http://prefetch.net/blog/index.php/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://prefetch.net/blog" rel="alternate" type="text/html"/>
      <subtitle>Blog O' Matty</subtitle>
      <title>Blog O' Matty</title>
      <updated>2012-05-16T00:37:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c0t0d0s0.org/archives/7465-guid.html</id>
    <link href="http://feedproxy.google.com/~r/Wwwc0t0d0s0org/~3/MFinbZdYQIw/7465-Tracks.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/2.5/" rel="license"/>
    <title>Tracks</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><center><a href="http://www.flickr.com/photos/c0t0d0s0/7189910206/" title="DSC_0043.jpg by c0t0d0s0, on Flickr"><img alt="DSC_0043.jpg" border="0" height="421" src="http://farm6.staticflickr.com/5350/7189910206_c379cabd8f.jpg" width="500"/></a></center> 
    <img height="1" src="http://feeds.feedburner.com/~r/Wwwc0t0d0s0org/~4/MFinbZdYQIw" width="1"/></div>
    </content>
    <updated>2012-05-15T10:53:22Z</updated>
    <category term="Photographie"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.c0t0d0s0.org/archives/7465-Tracks.html</feedburner:origLink>
    <author>
      <name>Joerg Moellenkamp</name>
      <email>nospam@example.com</email>
    </author>
    <source>
      <id>http://www.c0t0d0s0.org/</id>
      <link href="http://www.c0t0d0s0.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Wwwc0t0d0s0org" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>the sun in a lighthungry universe</subtitle>
      <title>c0t0d0s0.org</title>
      <updated>2012-05-16T06:37:02Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://blogs.oracle.com/7000tips/entry/a_break_for_something_more</id>
    <link href="https://blogs.oracle.com/7000tips/entry/a_break_for_something_more" rel="alternate" type="text/html"/>
    <title xml:lang="en">a break for something more important---</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>So we should have some news later this week on a minor code release with some helpful features in it. Can't say more until it comes out, but watch my blog this week.</p>
  <p>In the meantime....  I have always been the grill-master at our camps with friends and family. My boys and I camp about 25-30 times a year. As much as I enjoy grilling, I was woefully behind in my smoking/BBQ skills. The difference being that grilling is cooking fast over high heat (think burgers, steak, and most seafood), and real BBQ involves smoke and slow-cooking over hours. Smoking is better for ribs, chicken, brisket and tri-tip. So I went to a real BBQ day-long class, got a small beginner's smoker, and now I'm smoking meat a lot more. Here's a pic of my last tri-tip in the smoker. Homemade rub and sauce cost just pennies compared to store-bought, and the meat is cheap at Costco. This may have been the best tri-tip I've ever made. Great smoke ring and flavor in only 1.5 hours. I was trying to tie this into the ZFSSA, but I just can't, so I stopped caring and now just showing off my new BBQ skills. Ha ha. Enjoy.</p>
  <p><img src="https://blogs.oracle.com/7000tips/resource/IMAG0472.jpg"/> </p></div>
    </content>
    <updated>2012-05-14T20:45:09Z</updated>
    <published>2012-05-14T20:45:09Z</published>
    <category label="Other - Not 7000 related" term="/Other - Not 7000 related"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="bbq"/>
    <author>
      <name>Steve Tunstall</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/7000tips/feed/entries/atom</id>
      <link href="https://blogs.oracle.com/7000tips/feed/entries/atom" rel="self" type="application/atom+xml"/>
      <link href="https://blogs.oracle.com/7000tips/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en">Steve Tunstall's Blog - Steve.Tunstall@Oracle.com</subtitle>
      <title xml:lang="en">Tips &amp; Tricks with your Oracle 7000 ZFSSA</title>
      <updated>2012-05-17T09:05:32Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.eall.com.br/blog/?p=2839</id>
    <link href="http://feedproxy.google.com/~r/LealsBlog/~3/1TWJvROVJcw/" rel="alternate" type="text/html"/>
    <title>@Las Vegas 2012</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Hi there, big projects going on, and not much time to blog theses days, but I hope to fix this soon… This entry is just to tell you that next week, I should be in Las Vegas (from sunday to friday). So, if you have the time to chat a little about “anything“, and for [...]
<p><a href="http://feedads.g.doubleclick.net/~a/MHuT2YfjnJcwpUcr3kU7SAJhiqM/0/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/MHuT2YfjnJcwpUcr3kU7SAJhiqM/0/di"/></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MHuT2YfjnJcwpUcr3kU7SAJhiqM/1/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/MHuT2YfjnJcwpUcr3kU7SAJhiqM/1/di"/></a></p><img height="1" src="http://feeds.feedburner.com/~r/LealsBlog/~4/1TWJvROVJcw" width="1"/></div>
    </summary>
    <updated>2012-05-14T15:39:01Z</updated>
    <category term="General"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.eall.com.br/blog/?p=2839</feedburner:origLink>
    <author>
      <name>Marcelo Leal</name>
    </author>
    <source>
      <id>http://www.eall.com.br/blog</id>
      <link href="http://www.eall.com.br/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/LealsBlog" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Computing Science, posix rules, life rules, no rules...</subtitle>
      <title>blog</title>
      <updated>2012-05-14T16:12:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://blogs.oracle.com/jimlaurent/entry/solaris_and_ipv6</id>
    <link href="https://blogs.oracle.com/jimlaurent/entry/solaris_and_ipv6" rel="alternate" type="text/html"/>
    <title xml:lang="en">Solaris and IPv6</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I work with my federal government and US DoD customers, and I'm frequently asked whether Oracle product X is IPv6:</p> 
  <p> </p> 
  <ul> 
    <li>Enabled</li> 
    <li>Compliant</li> 
    <li>Certified</li> 
    <li>DoD Certified</li> 
  </ul> 
  <p>This is because the <a href="https://www.acquisition.gov/far/current/pdf/FAR.pdf" title="FARs">Federal Acquisition Regulations</a> require that the government purchase IPv6 compliant products. </p> 
  <blockquote class="webkit-indent-blockquote"> 
    <p>Unless the agency Chief Information Officer waives the requirement, when acquiring information technology using Internet Protocol, the requirements documents must include reference to the appropriate technical capabilities defined in the USGv6 Profile (NIST Special Publication 500-267) and the corresponding declarations of conformance defined in the USGv6 Test Program.  </p> 
  </blockquote> 
  <p> Let's examine each of these adjectives one by one.</p> 
  <p> </p> 
  <ul> 
    <li>Enabled is clearly the lowest bar to hurdle.  A vendor could implement one or two RFCs in the IPv6 spectrum and claim that they are "enabled."</li> 
    <li>Compliant is a little more of a problem.  Compliant with what?  There are  many different RFCs related to supporting IPv6.  Are you compliant if you support DHCPv6 but not IKEv2?  Are you compliant if your device is a web server but doesn't support DHCPv6 because it's not applicable?  It appears from the statement above that the FARs require that the CIO of an organization determine WHICH capabilities from the USGv6 profile are required by a particular product. The USGv6 profile ONLY list requirements for hosts, routers and network protection devices.</li> 
    <li>Certified.  By whom? Against what list of RFCs?  How recently and on what versions?  If a version changes from 5.1 to 5.2, is it still certified?</li> 
    <li>DoD Certified.  This would be handy if the DoD, in fact, had an IPv6 certification program.  It did at one time through the Joint Interopability Test Command (JITC), but apparently they determined that attempting to test every OS and device that the DoD might buy was a <a href="http://en.wikipedia.org/wiki/Sisyphus" title="Sisyphus">Sisyphean task</a>. To quote their web page, "DoD no longer requires a stand-alone IPv6 certification." Several years ago Sun paid them a large amount of money, loaned two server and a person in order to receive our <a href="http://jitc.fhu.disa.mil/apl/ipv6.html">certification for Solaris</a> 10. </li> 
  </ul> 
  <p>At the <a href="http://www.afcea.org/events/disa/eveningevents.asp" title="DISA Mission Partner Conference">DISA mission partner conference this week</a>, I attended a presentation by the DoD IPv6 Transition Office.  The <a href="http://www.disa.mil/News/Conferences-and-Events/DISA-Mission-Partner-Conference-2012/~/media/Files/DISA/News/Conference/2012/DISA_IPv6_Transition.pdf" title="DITMO slides">slides are available online.</a>  I asked the speaker if there is an "accepted" way of advertising IPv6 compliance and received no answer.  He has promised to get back to me, however. </p> 
  <div> 
    <p>Oracle is a very large company with an extensive production encompassing storage, servers, thin clients, databases, middleware and application.  I have found no single resource documenting the IPv6 status of every product.  I can tell you, however, that <b>Solaris 10 and Solaris 11 have successfully completed the USGv6 testing</b> by the <a href="http://www.iol.unh.edu/services/testing/ipv6/usgv6tested.php?company=6125&amp;type=#eqplist" title="Solaris IPv6 testing status">UNH Interoperability IPv6 test facility</a> and the results are posted at their site.</p> 
    <p>As for <a href="http://www.oracle.com/us/technologies/linux/index.html" title="Oracle Linux">Oracle Linux</a>, it is <a href="http://www.oracle.com/us/technologies/027617.pdf" title="See the Oracle Linux FAQ">fully compatible with</a> Red Hat Linux 5 and 6 which has already been tested by UNH as well. </p> 
    <p> </p> 
    <p>Note:  I intended to provide additional references on USGv6 profiles and "Suppliers Declaration of Conformance" but the <a href="http://www.nist.gov/itl/antd/testing.cfm">NIST web page</a> seems to be in disrepair and the pages are not available. </p> 
    <p> </p> 
  </div> 
  <p> </p></div>
    </content>
    <updated>2012-05-12T01:22:59Z</updated>
    <published>2012-05-12T01:22:59Z</published>
    <category label="Sun Federal Business" term="/Sun Federal Business"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="government"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="ipv6"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="solaris"/>
    <author>
      <name>user12611852</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/jimlaurent/feed/entries/atom</id>
      <link href="https://blogs.oracle.com/jimlaurent/feed/entries/atom" rel="self" type="application/atom+xml"/>
      <link href="https://blogs.oracle.com/jimlaurent/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en">Blog for jimlaurent</subtitle>
      <title xml:lang="en">Jim Laurent's Weblog</title>
      <updated>2012-05-16T04:59:35Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://dtrace.org/blogs/bmc/?p=356</id>
    <link href="http://dtrace.org/blogs/bmc/2012/05/05/debugging-node-js-memory-leaks/" rel="alternate" type="text/html"/>
    <title>Debugging node.js memory leaks</title>
    <summary>Part of the value of dynamic and interpreted environments is that they handle the complexities of dynamic memory allocation. In particular, one needn’t explicitly free memory that is no longer in use: objects that are no longer referenceable are found automatically and destroyed via garbage collection. While garbage collection simplifies the program’s relationship with memory, [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Part of the value of dynamic and interpreted environments is that they handle the complexities of dynamic memory allocation.  In particular, one needn’t explicitly free memory that is no longer in use: objects that are no longer referenceable are found automatically and destroyed via garbage collection.  While garbage collection simplifies the program’s relationship with memory, it not mean the end of all memory-based pathologies: if an application retains a reference to an object that is ultimately rooted in a global scope, that object won’t be considered garbage and the memory associated with it will not be returned to the system.  If enough such objects build up, allocation will ultimately fail (memory is, after all, finite) and the program will (usually) fail along with it.  While this is not strictly — from the native code perspective, anyway — a memory leak (the application has not leaked memory so much as neglected to unreference a semantically unused object), the effect is nonetheless the same and the same nomenclature is used.
</p><p>While all garbage collected environments create the potential to create such leaks, it can be particularly easy in JavaScript: closures create implicit references to variables within their scopes — references that might not be immediately obvious to the programmer.  And node.js adds a new dimension of peril with its strictly asynchronous interface with the system:  if backpressure from slow upstream services (I/O, networking, database services, etc.) isn’t carefully passed to downstream consumers, memory will begin to fill with the intermediate state.  (That is, what one gains in concurrency of operations one may pay for in memory.)  And of course, node.js is on the server — where the long-running nature of services means that the effect of a memory leak is much more likely to be felt and to affect service.  Take all of these together, and you can easily see why virtually anyone who has stood up node.js in production will identify memory leaks as their most significant open issue.
</p><p>The state of the art for node.js memory leak detection — as concisely described by <a href="https://twitter.com/#!/felixge">Felix</a> in his <a href="https://github.com/felixge/node-memory-leak-tutorial">node memory leak tutorial</a> — is to use the v8-profiler and <a href="https://twitter.com/#!/blinkenbyte">Danny Coates’</a> <a href="https://github.com/dannycoates/node-inspector">node-inspector</a>.  While this method is a lot better than nothing, it’s very much oriented to the developer in development.  This is a debilitating shortcoming because memory leaks are often observed only after days (hours, if you’re unlucky) of running in production.  At Joyent, we have long wanted to tackle the problem of providing the necessary tooling to identify node.js memory leaks in production.  When we are so lucky as to have these in native code (that is, node.js add-ons), we can use <a href="http://dtrace.org/blogs/ahl/2004/07/13/number-11-of-20-libumem/">libumem and ::findleaks</a> — a technology that we have used to find thousands of production memory leaks over the years.  But this is (unfortunately) not the common case:  the common case is a leak in JavaScript — be it node.js or application code — for which our existing production techniques are useless.
</p><p>So for node.js leaks in production, one has been left with essentially a Gedanken experiment: consider your load and peruse source code looking for a leak.  Given how diabolical these leaks can be, it’s amazing to me that anyone ever finds these leaks.  (And it’s less surprising that they take an excruciating amount of effort over a long period of time.) That’s been the (sad) state of things for quite some time, but recently, this issue boiled over for us: <a href="http://voxer.com">Voxer</a>, a Joyent customer and <a href="http://dtrace.org/blogs/bmc/2010/08/11/the-node-js-demographic/">long in the vanguard of node.js development</a>, was running into a nasty memory leak:  a leak sufficiently acute that the service in question was having to be restarted on a regular basis, but not so much that it was reproducible in development.  With the urgency high on their side, we again kicked around this seemingly hopeless problem, focussing on the concrete data that we had: core dumps exhibiting the high memory usage, obtained at our request via gcore(1) before service restart.  Could we do anything with those?
</p><p>As an aside, a few months ago, Joyent’s <a href="https://twitter.com/#!/dapsays">Dave Pacheco</a> added some unbelievable <a href="http://dtrace.org/blogs/dap/2012/01/13/playing-with-nodev8-postmortem-debugging/">postmortem debugging support for node</a>.  (If postmortem debugging is new to you, you might be interested in checking out <a href="http://www.infoq.com/presentations/Debugging-Production-Systems">my presentation on debugging production systems</a> from QCon San Francisco.  I had the privilege of demonstrating Dave’s work in that presentation — and if you listen very closely at 43:26, you can hear the audience gasp when I demonstrate the amazing ::jsprint.) But Dave hasn’t built the infrastructure for walking the data structures of the V8 heap from an MDB dmod — and it was clear that doing so would be brittle and error-prone.
</p><p>As Dave, <a href="https://twitter.com/#!/brendangregg">Brendan</a> and I were kicking around increasingly desperate ideas (including running strings(1) on the dump — an idea not totally without merit — and some wild visualization ideas), a much simpler idea collectively occurred to us:  given that we understood via Dave’s MDB V8 support how a given object is laid out, and given that an object needed quite a bit of self-consistency with referenced but otherwise orthogonal structures, what about just iterating over all of the anonymous memory in the core and looking for objects?  That is, iterate over every single address, and see if that address could be interpreted as an object.  On the one hand, it was terribly brute force — but given the level of consistency required of an object in V8, it seemed that it wouldn’t pick up too many false positives.  The more we discussed it, the more plausible it became, but with Dave fully occupied (on another saucy project we have cooking at Joyent — more on that later), I roped up and headed into his MDB support for V8…
</p><p>The result — <a href="https://github.com/joyent/illumos-joyent/commit/e6446071ecdbdc60eda295956dbf3e1778663264">::findjsobjects</a> — takes only a few minutes to run on large dumps, but provides some important new light on the problem.  The output of ::findjsobjects consists of representative objects, the number of instances of that object and the number of properties on the object — followed by the constructor and first few properties of the objects.  For example, here is the dump on a gcore of a (non-pathological) Joyent node-based facility:
</p><pre>&gt; <b>::findjsobjects -v</b>
findjsobjects:         elapsed time (seconds) =&gt; 20
findjsobjects:                   heap objects =&gt; 6079488
findjsobjects:             JavaScript objects =&gt; 4097
findjsobjects:              processed objects =&gt; 1734
findjsobjects:                 unique objects =&gt; 161
OBJECT   #OBJECTS #PROPS CONSTRUCTOR: PROPS
fc4671fd        1      1 Object: flags
fe68f981        1      1 Object: showVersion
fe8f64d9        1      1 Object: EventEmitter
fe690429        1      1 Object: Credentials
fc465fa1        1      1 Object: lib
fc46300d        1      1 Object: free
fc4efbb9        1      1 Object: close
fc46c2f9        1      1 Object: push
fc46bb21        1      1 Object: uncaughtException
fe8ea871        1      1 Object: _idleTimeout
fe8f3ed1        1      1 Object: _makeLong
fc4e7c95        1      1 Object: types
fc46bae9        1      1 Object: allowHalfOpen
...
fc45e249       12      4 Object: type, min, max, default
fc4f2889       12      4 Object: index, fields, methods, name
fd2b8ded       13      4 Object: enumerable, writable, configurable, value
fc0f68a5       14      1 SlowBuffer: length
fe7bac79       18      3 Object: path, fn, keys
fc0e9d21       20      5 Object: _onTimeout, _idleTimeout, _idlePrev, ...
fc45facd       21      4 NativeModule: loaded, id, exports, filename
fc45f571       23      8 Module: paths, loaded, id, parent, exports, ...
fc4607f9       35      1 Object: constructor
fc0f86c9       56      3 Buffer: length, offset, parent
fc0fc92d       57      2 Arguments: length, callee
fe696f59       91      3 Object: index, fields, name
fc4f3785       91      4 Object: fields, name, methodIndex, classIndex
fe697289      246      2 Object: domain, name
fc0f87d9      308      1 Buffer:
</pre>
<p>Now, any one of those objects can be printed with ::jsprint.  For example, let’s take fc45e249 from the above output:
</p><pre><b>&gt; fc45e249::jsprint</b>
{
    type: number,
    min: 10,
    max: 1000,
    default: 300,
}
</pre>
<p>Note that that’s only a <i>representative</i> object — there are (in the above case) 12 objects that have that same property signature.  ::findjsobjects can get you all of them when you specify the address of the reference object:
</p><pre>&gt; <b>fc45e249::findjsobjects</b>
fc45e249
fc46fd31
fc467ae5
fc45ecb5
fc45ec99
fc45ec11
fc45ebb5
fc45eb41
fc45eb25
fc45e3d1
fc45e3b5
fc45e399
</pre>
<p>And because MDB is the debugger Unix was meant to have, that output can be piped to ::jsprint:
</p><pre>&gt; <b>fc45e249::findjsobjects | ::jsprint</b>
{
    type: number,
    min: 10,
    max: 1000,
    default: 300,
}
{
    type: number,
    min: 0,
    max: 5000,
    default: 5000,
}
{
    type: number,
    min: 0,
    max: 5000,
    default: undefined,
}
...
</pre>
<p>Okay, fine — but where are these objects referenced?  ::findjsobjects has an option for that:
</p><pre>&gt; <b>fc45e249::findjsobjects -r</b>
fc45e249 referred to by fc45e1e9.height
</pre>
<p>This tells us (or tries to) who is referencing that first (representative) object.  Printing that out (with the “-a” option to show the addresses of the objects):
</p><pre>&gt; <b>fc45e1e9::jsprint -a</b>
fc45e1e9: {
    ymax: fe78e061: undefined,
    hues: fe78e061: undefined,
    <b>height: fc45e249: {
        type: fe78e361: number,
        min: 14: 10,
        max: 7d0: 1000,
        default: 258: 300,
    }</b>,
    selected: fc45e3fd: {
        type: fe7a2465: array,
        default: fc45e439: [...],
    },
    ...
</pre>
<p>So if we want to learn where all of these objects are referenced, we can again use a pipeline within MDB:
</p><pre>&gt; <b>fc45e249::findjsobjects | ::findjsobjects -r</b>
fc45e249 referred to by fc45e1e9.height
fc46fd31 referred to by fc46b159.timeout
fc467ae5 is not referred to by a known object.
fc45ecb5 referred to by fc45eadd.ymax
fc45ec99 is not referred to by a known object.
fc45ec11 referred to by fc45eadd.nbuckets
fc45ebb5 referred to by fc45eadd.height
fc45eb41 referred to by fc45eadd.ymin
fc45eb25 referred to by fc45eadd.width
fc45e3d1 referred to by fc45e1e9.nbuckets
fc45e3b5 referred to by fc45e1e9.ymin
fc45e399 referred to by fc45e1e9.width
</pre>
<p>Of course, the proof of a debugger is in the debugging; would ::findjsobjects actually be of use on the Voxer dumps that served as its motivation?  Here is the (elided) output from running it on a big Voxer dump:
</p><pre>&gt; <b>::findjsobjects -v</b>
findjsobjects:         elapsed time (seconds) =&gt; 292
findjsobjects:                   heap objects =&gt; 8624128
findjsobjects:             JavaScript objects =&gt; 112501
findjsobjects:              processed objects =&gt; 100424
findjsobjects:                 unique objects =&gt; 241
OBJECT   #OBJECTS #PROPS CONSTRUCTOR: PROPS
fe806139        1      1 Object: Queue
fc424131        1      1 Object: Credentials
fc424091        1      1 Object: version
fc4e3281        1      1 Object: message
fc404f6d        1      1 Object: uncaughtException
...
fafcb229     1007     23 ClientRequest: outputEncodings, _headerSent, ...
fafc5e75     1034      5 Timing: req_start, res_end, res_bytes, req_end, ...
fafcbecd     1037      3 Object: aborted, data, end
 8045475     1060      1 Object:
fb0cee9d     1220      9 HTTPParser: socket, incoming, onHeadersComplete, ...
fafc58d5     1271     25 Socket: _connectQueue, bytesRead, _httpMessage, ...
fafc4335     1311     16 ServerResponse: outputEncodings, statusCode, ...
fafc4245     1673      1 Object: slab
fafc44d5     1702      5 Object: search, query, path, href, pathname
fafc440d     1784     14 Client: buffered_writes, name, timing, ...
fafc41c5     1796      3 Object: error, timeout, close
fafc4469     1811      3 Object: address, family, port
fafc42a1     2197      2 Object: connection, host
fbe10625     2389      2 Arguments: callee, length
fafc4251     2759     15 IncomingMessage: statusCode, httpVersionMajor, ...
fafc42ad     3652      0 Object:
fafc6785    11746      1 Object: oncomplete
fb7abc29    15155      1 Object: buffer
fb7a6081    15155      3 Object: , oncomplete, cb
fb121439    15378      3 Buffer: offset, parent, length
</pre>
<p>This immediately confirmed a hunch that <a>Matt</a> had had that this was a buffer leak.  And for <a href="https://twitter.com/#!/izs">Isaac</a> — who had been working this issue from the Gedanken side and was already zeroing in on certain subsystems — this data was surprising in as much as it was so confirming:  he was already on the right path.  In short order, he <a href="https://github.com/joyent/node/commit/d1effbb338fe5916e5a25fc3d3587016d0725761">nailed it</a>, and the fix is in <a href="http://blog.nodejs.org/2012/05/04/version-0-6-17-stable/">node 0.6.17</a>.
</p><p>The fix was low risk, so Voxer redeployed with it immediately — and for the first time in quite some time, memory utilization was flat.  This was a huge win — and was the reason for Matt’s <a href="https://twitter.com/#!/mranney/status/198125651495096321">tantalizing tweet</a>.  The advantages of this approach are that it requires absolutely no modification to one’s node.js programs — no special flags and no different options.  And it operates purely postmortem.  Thanks to help from gcore(1), core dumps can be taken over time for a single process, and those dumps can then be analyzed off-line.
</p><p>Even with ::findjsobjects, debugging node.js memory leaks is still tough.  And there are certainly lots of improvements to be made here — there are currently some objects that we do not know how to correctly interpret, and we know that we know that we can improve our algorithm for finding object references — but this shines a bright new light into what had previously been a black hole!
</p><p>If you want to play around with this, you’ll need <a href="http://smartos.org">SmartOS</a> or <a href="http://wiki.illumos.org/display/illumos/Distributions">your favorite illumos distro</a> (which, it must be said, you can get simply by provisioning on <a href="http://www.joyentcloud.com/">the Joyent cloud</a>).  You’ll need an updated v8.so — which you can either build yourself from <a href="https://github.com/joyent/illumos-joyent">illumos-joyent</a> or you can <a href="http://dtrace.org/blogs/bmc/files/2012/05/v8.so_.tar_.gz">download a binary</a>.  From there, follow <a href="http://dtrace.org/blogs/dap/2012/01/13/playing-with-nodev8-postmortem-debugging/">Dave’s instructions</a>.  Don’t hesitate to ping <a href="https://twitter.com/#!/bcantrill">me</a> if you get stuck or have requests for enhancement — and here’s to flat memory usage on your production node.js service!<br/></p></div>
    </content>
    <updated>2012-05-05T20:07:27Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>bmc</name>
    </author>
    <source>
      <id>http://dtrace.org/blogs/bmc</id>
      <link href="http://dtrace.org/blogs/bmc/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://dtrace.org/blogs/bmc" rel="alternate" type="text/html"/>
      <subtitle>Views on software from Bryan Cantrill's deck chair</subtitle>
      <title>The Observation Deck</title>
      <updated>2012-05-05T20:12:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://blogs.oracle.com/7000tips/entry/analytics_threshold_alerts</id>
    <link href="https://blogs.oracle.com/7000tips/entry/analytics_threshold_alerts" rel="alternate" type="text/html"/>
    <title xml:lang="en">Analytics &amp; Threshold Alerts</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Alerts are great for not only letting you know when there's some kind of hardware event, but they can also be pro-active and let you know there's a bottleneck coming BEFORE it happens. Check these out. There are two kinds of Alerts in the ZFSSA. When you go to Configuration--&gt;Alerts, you fist see the plus sign by the "Alert Actions" section. These are pretty self-explanatory and not what I'm talking about today. Click on the "Threshold Alerts", and then click the plus sign by those.</p>
  <p><img src="https://blogs.oracle.com/7000tips/resource/Alert1.jpg"/> </p>
  <p>This is what I'm talking about. The default one that comes up, "CPU: Percent Utilization" is a good one to start with. I don't mind if my CPUs go to 100% utilized for a short time. After all, we bought them to be used, right? If they go over 90% for over 10 minutes, however, something is up, and maybe we have workloads on this machine it was not designed for, or we don't have enough CPUs in the system and need more. So we can setup an alert that will keep an eye on this for us and send us an email if this were to occur. Now I don't have to keep watching it all the time. For an even better example, keep reading...</p>
  <p><img src="https://blogs.oracle.com/7000tips/resource/alert2.jpg"/> </p>
  <p>What if you want to keep your eyes on whether your Readzillas or Logzillas are being over-utilized? In other words, do you have enough of them? Perhaps you only have 2 Logzillas, and you think you may be better off with 4, but how do you prove it? No problem. Here in Threshold Alerts, click on the Threshold drop-down box, and choose your "Disk: Percent Utilization for Disk: Jxxxxx 013" choice, which is my Logzilla drive in the Jxxxxx tray.</p>
  <p>Wait. What's that? You don't have a choice in your drop-down for the Threshold item you are looking for, such as an individual disk? <br/>Well, we will have to fix that. </p>
  <p>Leave Alerts for now, and join me over in Analytics. Start with a worksheet with "Disk: Percent utilization broken down by Disk" chart. You do have this, as it's already one of your built-in datasets.</p>
  <p>Now, expand it so you can see all of your disks, and find one of your Readzilla or Logzilla drives. (Hint: It will NOT be disk 13 like my example here. Logzillas are always in the 20, 21, 22, or 23 slots of a disk tray. Go to your Configuration--&gt;Hardware screens and you can easily find out which drives are which for your system).</p>
  <p>Now, click on that drive to highlight it, like this: </p>
  <p><img src="https://blogs.oracle.com/7000tips/resource/alert3.jpg"/> </p>
  <p> Click on the Drill Button, and choose to drill down on that drive as a raw statistic. You will now have a whole new data chart, just for that one drive.</p>
  <p><img src="https://blogs.oracle.com/7000tips/resource/alert5.jpg"/> </p>
  <p> Don't go away yet. You now need to save that chart as a new dataset, which will keep it in your ZFSSA analytic metrics forever. Well, until you delete it.<br/>Click on the "Save" button, the second to last button on that chart. It looks like a circle with white dots on it (it's supposed to look like a reel-to-reel tape spindle).</p>
  <p><img src="https://blogs.oracle.com/7000tips/resource/alert4.jpg"/> </p>
  <p>Now go to your "Analytics--&gt;Datasets", and you will see a new dataset in there for it. </p>
  <p><img src="https://blogs.oracle.com/7000tips/resource/alert6.jpg"/> </p>
  <p> Go back to your Threshold Alerts, and you will now be able to make an alert that will tell you if this specific drive goes over 90% for more than 10 minutes. If this happens a lot, you probably need more Readzillas or Logzillas.</p>
  <p><img src="https://blogs.oracle.com/7000tips/resource/alert7.jpg"/> </p>
  <p>I hope you like these Alerts. They may take some time to setup at first, but in the long run you may thank yourself. It might not be a bad idea to send the email alerts to a mail distribution list, instead of a single person who may be on vacation when the alert is hit.  Enjoy. </p></div>
    </content>
    <updated>2012-05-03T19:34:12Z</updated>
    <published>2012-05-03T19:34:12Z</published>
    <category label="ZFSSA" term="/ZFSSA"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="alerts"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="analytics"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="datasets"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="threshold"/>
    <author>
      <name>Steve Tunstall</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/7000tips/feed/entries/atom</id>
      <link href="https://blogs.oracle.com/7000tips/feed/entries/atom" rel="self" type="application/atom+xml"/>
      <link href="https://blogs.oracle.com/7000tips/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en">Steve Tunstall's Blog - Steve.Tunstall@Oracle.com</subtitle>
      <title xml:lang="en">Tips &amp; Tricks with your Oracle 7000 ZFSSA</title>
      <updated>2012-05-17T09:05:32Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-1270287474555047904.post-2187866396308679553</id>
    <link href="http://feedproxy.google.com/~r/UnixSystem/~3/-EXn6GLJ7Dg/zfs-feature-flags-update.html" rel="alternate" type="text/html"/>
    <title>ZFS feature flags update</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">ZFS feature flags have been mentioned <a href="http://sparcv9.blogspot.se/2011/06/zfs-working-group.html">earlier</a> and now the code is now available from Delphix so that it can be <a href="https://www.illumos.org/issues/2619">integrated into illumos</a>. With this in place new ZFS features can be implemented in a clean and compatible way, first out seems to be async destroy of datasets (feature flag com.delphix:async_destroy).
<br/>
<br/>
Hopefully we will see other new feature soon after this is in in place.
<br/><br/>
<a href="http://blog.delphix.com/csiden/files/2012/01/ZFS_Feature_Flags.pdf">ZFS Feature Flags Presentation (PDF)</a><br/>
<a href="http://code.delphix.com/webrev-2619/">Feature flags webrev</a><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/1270287474555047904-2187866396308679553?l=sparcv9.blogspot.com" width="1"/></div><img height="1" src="http://feeds.feedburner.com/~r/UnixSystem/~4/-EXn6GLJ7Dg" width="1"/></div>
    </summary>
    <updated>2012-05-02T11:38:00Z</updated>
    <category scheme="http://www.blogger.com/atom/ns#" term="ZFS Working Group"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="ZFS"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="Illumos"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://sparcv9.blogspot.com/2012/05/zfs-feature-flags-update.html</feedburner:origLink>
    <author>
      <name>Henkis</name>
      <email>noreply@blogger.com</email>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-1270287474555047904</id>
      <category term="SPARC T4"/>
      <category term="Illumos"/>
      <category term="Fishworks"/>
      <category term="virtualization"/>
      <category term="Orace"/>
      <category term="omnios"/>
      <category term="Solaris 11 Express"/>
      <category term="2010.05"/>
      <category term="Oracle World"/>
      <category term="2010.03"/>
      <category term="Patch"/>
      <category term="dskinfo"/>
      <category term="M-series"/>
      <category term="SPARC"/>
      <category term="Solaris 11"/>
      <category term="OpenOffice"/>
      <category term="Nexenta"/>
      <category term="zones"/>
      <category term="FreeBSD"/>
      <category term="x86"/>
      <category term="Security"/>
      <category term="CIFS"/>
      <category term="ZFS Working Group"/>
      <category term="Oracle"/>
      <category term="DTrace"/>
      <category term="Indiana"/>
      <category term="s10u8"/>
      <category term="Solaris Next"/>
      <category term="s10u10"/>
      <category term="OpenIndiana"/>
      <category term="SPARC T5"/>
      <category term="KVM"/>
      <category term="OpenSolaris"/>
      <category term="LDOM"/>
      <category term="Sun"/>
      <category term="Fujitsu"/>
      <category term="Solaris"/>
      <category term="crossbow"/>
      <category term="Solaris 10"/>
      <category term="s10u9"/>
      <category term="Joyent"/>
      <category term="PSARC"/>
      <category term="digging"/>
      <category term="PKG"/>
      <category term="s10u7"/>
      <category term="ZFS"/>
      <author>
        <name>Henkis</name>
        <email>noreply@blogger.com</email>
      </author>
      <link href="http://sparcv9.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/UnixSystem" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Solaris for the masses</subtitle>
      <title>It's a UNIX system!</title>
      <updated>2012-05-13T15:37:02Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>https://blogs.oracle.com/darren/entry/podcast_immutable_zones_in_oracle</id>
    <link href="https://blogs.oracle.com/darren/entry/podcast_immutable_zones_in_oracle" rel="alternate" type="text/html"/>
    <title xml:lang="en">Podcast: Immutable Zones in Oracle Solaris 11</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>In this <a href="http://feedproxy.google.com/%7Er/OracleSunServersAndStoragePodcasts/%7E3/vdnAlois-Dk/11436000_Zones_042312.mp3">episode</a> of the "Oracle <a href="http://www.oracle.com/solaris/" title="">Solaris</a>: In a Class By Itself" <a href="http://www.oracle.com/us/syndication/podcasts/systems-podcasts-171740.html">podcast series</a>, the focus is a bit more technical. I was interviewed by host Charlie Boyle, Senior Director of <a href="http://www.oracle.com/solaris/" title="">Solaris</a> Product Marketing. We talked about a new feature in Oracle <a href="http://www.oracle.com/solaris/" title="">Solaris</a> 11: immutable zones. Those are read-only root zones for highly secure deployment scenarios.
</p> 
  <p>See also my previous blog post on <a href="https://blogs.oracle.com/darren/entry/immutable_zones_on_encrypted_zfs">Enctypted Immutable Zones</a>.<br/></p></div>
    </summary>
    <updated>2012-05-01T09:26:54Z</updated>
    <category term="General"/>
    <category term="podcast"/>
    <category term="security"/>
    <category term="solaris"/>
    <category term="zones"/>
    <author>
      <name>darrenm</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/darren/en_GB/</id>
      <link href="https://blogs.oracle.com/darren/en_GB/" rel="alternate" type="text/html"/>
      <link href="https://blogs.oracle.com/darren/en_GB/feed/entries/rss" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en">Copyright 2012</rights>
      <subtitle xml:lang="en">/dev/urandom things from the head of an engineer in the Solaris Security Group.</subtitle>
      <title xml:lang="en">darren_moffat@blog$ cat /dev/mem | grep /dev/urandom</title>
      <updated>2012-05-14T08:37:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://blogs.oracle.com/jimlaurent/entry/oracle_at_the_disa_partnership</id>
    <link href="https://blogs.oracle.com/jimlaurent/entry/oracle_at_the_disa_partnership" rel="alternate" type="text/html"/>
    <title xml:lang="en">Oracle at the DISA Partnership conference, May 7-10</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Join the Oracle hardware and software team in booth 1323 at the <a href="http://www.disa.mil/News/Conferences-and-Events/DISA-Mission-Partner-Conference-2012">DISA Partnership Conference</a>, May 7-10 in Tampa, FL.  A wide variety of Oracle technology and staff will be available to answer your questions and offer solutions to your information processing problems.</p> 
  <p>Oracle's President Mark Hurd will deliver a keynote address. </p>
  <p>On display will be:</p> 
  <p> </p> 
  <ul> 
    <li>Oracle Thin Client <a href="http://www.oracle.com/us/technologies/virtualization/061153.html">Virtual Desktop Infrastructure</a></li> 
    <li>Trusted <a href="http://www.oracle.com/us/products/servers-storage/solaris/solaris11/overview/index.html">Solaris</a> based multi-level desktop</li> 
    <li>Oracle <a href="http://www.oracle.com/us/products/database/index.html">Database 11g</a> technologies</li> 
    <li>Oracle Policy Automator</li> 
    <li><a href="http://www.oracle.com/us/corporate/acquisitions/rightnow/index.html">RightNow</a></li> 
    <li><a href="http://www.oracle.com/technetwork/middleware/webcenter/suite/overview/index.html">WebCenter</a> Collaboration tools</li> 
    <li><a href="http://www.oracle.com/us/technologies/linux/index.html">Oracle Linux</a></li> 
    <li>Oracle <a href="http://www.oracle.com/us/technologies/virtualization/oraclevm/index.html">Virtual Machine</a> and <a href="http://www.oracle.com/technetwork/server-storage/virtualbox">VirtualBox</a></li> 
    <li>Solaris 11</li> 
    <li>and more</li> 
  </ul> 
  <div> 
    <p>Come see us across from the DISA pavilion.</p> 
    <p> </p> 
  </div> 
  <p> </p> 
  <p> </p> 
  <p> </p></div>
    </content>
    <updated>2012-04-30T21:37:43Z</updated>
    <published>2012-04-24T20:21:54Z</published>
    <category label="Sun Federal Business" term="/Sun Federal Business"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="disa"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="oracle"/>
    <author>
      <name>user12611852</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/jimlaurent/feed/entries/atom</id>
      <link href="https://blogs.oracle.com/jimlaurent/feed/entries/atom" rel="self" type="application/atom+xml"/>
      <link href="https://blogs.oracle.com/jimlaurent/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en">Blog for jimlaurent</subtitle>
      <title xml:lang="en">Jim Laurent's Weblog</title>
      <updated>2012-05-16T04:59:35Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>https://blogs.oracle.com/security/entry/security_alert_for_cve_2012</id>
    <link href="https://blogs.oracle.com/security/entry/security_alert_for_cve_2012" rel="alternate" type="text/html"/>
    <title xml:lang="en">Security Alert for CVE-2012-1675 Released</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Hi, this is Eric Maurice.
</p>
<p>Oracle just released <a href="http://www.oracle.com/technetwork/topics/security/alert-cve-2012-1675-1608180.html">Security Alert CVE-2012-1675</a> to address the “TNS Listener Poison Attack” in the Oracle Database.  With a CVSS Base Score of 7.5, this vulnerability is remotely exploitable without authentication, and if successfully exploited, can result in a full compromise of the targeted Database.
</p>
<p>In the <a href="https://blogs.oracle.com/security/entry/april_2012_critical_patch_update">April 2012 Critical Patch Update</a>, Oracle provided Security-in-Depth recognition to Joxean Koret.  As stated in the Critical Patch Update advisories, “<em>People are recognized for Security-In-Depth contributions if they provide information, observations or suggestions pertaining to security vulnerability issues that result in significant modification of Oracle code or documentation in future releases, but are not of such a critical nature that they are distributed in Critical Patch Updates.</em>”
</p>
<p>As stated in <a href="https://blogs.oracle.com/security/entry/keeping_up_with_newer_releases">previous blog entries</a>, Oracle fixes vulnerability first in the main code line, and then tries to backport fixes through the Critical Patch Update program for <a href="https://blogs.oracle.com/security/entry/inclusion_of_security_fixes_fo">exploitable vulnerabilities that were externally reported</a>.  In certain instances, such backporting is very difficult or impossible because of the amount of code change required, or because the fix would create significant regressions, or because there is no reasonable way to automate the application of the fix (for example when user interaction is required to change configuration parameters). 
</p>
<p>Shortly after the release of the Critical Patch Update, mistakenly assuming that the issue had been backported through the CPU, Joxean Koret, the initial reporter of this vulnerability, fully disclosed its details, initially stating that it had been fixed by Oracle, then after realizing that it had not been fixed in current releases, reported the vulnerability as a “0-day.”  
</p>
<p>As a result of this disclosure, Oracle has issued Security Alert CVE-2012-1675 to provide customers with a number of technical measures to provide effective defense against this vulnerability in all deployment scenarios.
</p>
<p>Customers on single-node configurations (i.e., non Real Application Cluster (RAC) customers) should refer to the My Oracle Support Note titled “<a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1453883.1">Using Class of Secure Transport (COST) to Restrict Instance Registration</a>” (Doc ID 1453883.1) to limit registration to the local node and the IPC protocol through the COST (Class Of Secure Transport) feature in the listener.
</p>
<p>RAC and Exadata customers should refer to the My Oracle Support Note “<a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1340831.1">Using Class of Secure Transport (COST) to Restrict Instance Registration in Oracle RAC</a>” (Doc ID 1340831.1) to implement similar COST restrictions. 
</p>
<p>Note that implementing COST restrictions in RAC environments require the use of SSL/TLS encryption.  Such network encryption features were previously only available to customers who were licensed for Oracle Advanced Security.  However, RAC customers who were previously not licensed for Oracle Advanced Security need not be concerned about a licensing restriction as Oracle has updated its licensing to allow these customers the use of these features (namely SSL and TLS) to protect themselves against vulnerability CVE-2012-1675.  In other words, Oracle has added Oracle Advanced Security SSL/TLS to the Enterprise Edition Real Application Clusters (Oracle RAC) and RAC One Node options, and added Oracle Advanced Security SSL/TLS to the Oracle Database Standard Edition license when used with the Real Application Clusters.
</p>
<p>Considering that the technical details of vulnerability <a href="http://www.oracle.com/technetwork/topics/security/alert-cve-2012-1675-1608180.html">CVE-2012-1675</a> have now widely been distributed, Oracle highly recommends that customers make the configuration changes documented in the above mentioned My Oracle Support Notes as soon as possible.  Customers should also feel free to contact Oracle Support if they have questions or concerns.
</p>
<p><u>For More Information:</u>
</p>
<ul>
  <li>The Advisory for Security Alert CVE-2012-1675 is located at <a href="http://www.oracle.com/technetwork/topics/security/alert-cve-2012-1675-1608180.html">http://www.oracle.com/technetwork/topics/security/alert-cve-2012-1675-1608180.html</a> </li>
  <li>The My Oracle Support Note titled “Using Class of Secure Transport (COST) to Restrict Instance Registration” (Doc ID 1453883.1) is located at <a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1453883.1">http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1453883.1</a> </li>
  <li>The My Oracle Support Note titled “Using Class of Secure Transport (COST) to Restrict Instance Registration with SCAN listeners” (Doc ID 1340831.1) is located at  <a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1340831.1">http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1340831.1</a>  </li>
  <li>Oracle’s security fixing policies are published on the Oracle Software Security Assurance web site located at <a href="http://www.oracle.com/us/support/assurance/index.html">http://www.oracle.com/us/support/assurance/index.html</a>   </li>
</ul></div>
    </summary>
    <updated>2012-04-30T19:44:34Z</updated>
    <category term="Oracle"/>
    <category term="alert"/>
    <category term="cve-2012-1775"/>
    <category term="security"/>
    <author>
      <name>Eric P. Maurice</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/security/</id>
      <link href="https://blogs.oracle.com/security/" rel="alternate" type="text/html"/>
      <link href="https://blogs.oracle.com/security/feed/entries/rss" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en">Copyright 2012</rights>
      <title xml:lang="en">The Oracle Software Security Assurance Blog</title>
      <updated>2012-05-08T21:37:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c0t0d0s0.org/archives/7464-guid.html</id>
    <link href="http://feedproxy.google.com/~r/Wwwc0t0d0s0org/~3/yDYMKEyjkyk/7464-IOPS,-capacity,-bandwidth-and-something-new-to-explain-to-the-people-in-purchasing.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/2.5/" rel="license"/>
    <title>IOPS, capacity, bandwidth - and something new to explain to the people in purchasing</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">When you size storage, you have to size for three things: IOPS, capacity and bandwidth. But that has an interesting implication. When we had 2,4 or 9 GB harddisks we needed many disks to provide the needed capacity and thus had often enough IOPS for the tasks of that time without needing further provisions. Then disks got bigger, and we created massive storage arrays with much to large capacity , but we did it for the IOPS. Now we have SSD in the TB range and with IOPS north of 100.000 and you would think that your problems are gone, however now the third parameter comes into the game: Bandwith.<br/>
<br/>
So far you had often enough disks  (either because of bandwidth or IOPS requirements) and thus enough raw bandwidth at least at the point right behind the disk). However it doesn't matter, when you have 1 TB and 100.000 IOPS, you still have just a storage connection that limits your transmission at 6 GBps, come hell or high water. So after explaining "No, a 1 TB USB disk from el-cheapo-component-shack isn't enough for the 1 TB database, because of IOPS yadda yadda yadda" to the people in the purchasing department,  we probably have to start to explain "No, the 1 TB SSDs aren't enough as well, because of the bandwidth requirements yadda yadda yadda" 
    <img height="1" src="http://feeds.feedburner.com/~r/Wwwc0t0d0s0org/~4/yDYMKEyjkyk" width="1"/></div>
    </content>
    <updated>2012-04-28T09:59:58Z</updated>
    <category term="The IT Business"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.c0t0d0s0.org/archives/7464-IOPS,-capacity,-bandwidth-and-something-new-to-explain-to-the-people-in-purchasing.html</feedburner:origLink>
    <author>
      <name>Joerg Moellenkamp</name>
      <email>nospam@example.com</email>
    </author>
    <source>
      <id>http://www.c0t0d0s0.org/</id>
      <link href="http://www.c0t0d0s0.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Wwwc0t0d0s0org" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>the sun in a lighthungry universe</subtitle>
      <title>c0t0d0s0.org</title>
      <updated>2012-05-16T06:37:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://constantin.glez.de/257 at http://constantin.glez.de</id>
    <link href="http://feedproxy.google.com/~r/ConstantThinking/~3/zPHfI9VFywQ/get-ready-change-your-job" rel="alternate" type="text/html"/>
    <link href="http://feedproxy.google.com/~r/ConstantThinking/~5/S9ImVyfoswI/preview" length="38774" rel="enclosure" type="image/jpeg"/>
    <title>Get Ready to Change your Job</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="all-attached-images"><div class="image-attach-body image-attach-node-258" style="width: 320px;"><a href="http://constantin.glez.de/image/street-signs-business-usual-or-cloud"><img alt="Street signs: Business as usual or the cloud?" class="image image-blog " height="240" src="http://cdn.glez.de/sites/constantin.glez.de/files/images/streetsigns.blog.jpg" title="Street signs: Business as usual or the cloud?" width="320"/></a></div>
</div><!-- google_ad_section_start --><blockquote><p><em>The universe is change; our life is what our thoughts make it.</em><br/>
(Marcus Aurelius)</p></blockquote>
<p>If you have a job in IT (and who among my readers hasn't?), then it is going to fundamentally change soon.</p>
<p>Why?</p>
<p>In my own job, I see the full spectrum from where IT innovation is created to the very last laggards who are still depending a lot on mainframes and other ancient technology. Some things in IT are new (like, every week there's a new startup/technology/trend that is shaking up the industry), and some things are just repetitions of stuff that has happened before, albeit in slightly different colors.</p>
<p>So now, the world of IT as we know it is changing (again) and this time, change will impact organizations, roles and jobs.</p>
<p>Let's dive a little bit into what's happening. Don't worry, change is good, but only if you prepare for it.</p>
<p>There are three trends that are hitting the IT landscape right now. They are more or less independent, but they also complement each other:</p>
<h2>Trend #1: Climbing Up the IT Stack</h2>
<p>Information technology is just a stack of technologies. In its simplest form, we see hardware at the bottom, and software at the top. Over time, the stack has diversified into a more complex building where IT is composed of:</p>
<ul>
<li>Applications and Services</li>
<li>Software:
<ul>
<li>Middleware</li>
<li>Database</li>
</ul>
</li>
<li>"Glue":
<ul>
<li>Operating Systems</li>
<li>Virtualization</li>
<li>Networking</li>
</ul>
</li>
<li>Hardware:
<ul>
<li>Servers</li>
<li>Storage</li>
</ul>
</li>
</ul>
<p>For each of these components, every IT department needs to decide whether to build something from scratch, or just buy a pre-engineered solution.</p>
<p>A long time ago, IT shops built their own storage and server components, or they built their own databases and middleware, but that was very quickly delegated to IT vendors. Today, IT shops build <em>systems</em> out of components.</p>
<p>But that is changing:</p>
<ul>
<li>When was the last time your team built a file server? Right. Home-grown file servers today are obsolete, the network attached storage industry is doing that now, and IT shops buy ready-to-use NAS-devices.</li>
<li><a href="http://constantin.glez.de/blog/2011/12/rise-engineered-systems">Engineered Systems</a> are doing the same for database and middleware servers: Soon, there won't be a lot of motivation to build yet another database server cluster from scratch or yet another web farm etc. Even if you leave out Oracle's Engineered Systems, there are <a href="http://exared.blogspot.co.uk/2012/04/puresystems-flex-or-fantasy.html">other vendors now catching up</a> with their own versions of “building blocks” or “integrated systems”, all with the same goal: Do the hardware integration for you.</li>
</ul>
<p>So if your job/role/task has been to evaluate host bus adapters and their compatibilities with individual servers and SAN components, chasing down storage firmware patches so your server's OS doesn't hiccup too badly when confronted with a certain type of disk or if you run a test lab that regularly evaluates storage, server or networking components, then it's time to rethink what you're doing and whether this is going to continue being a good use of your time.</p>
<p>The trend here is obvious: Smaller parts are more and more integrated at the factory level, bigger parts are delivered to IT organizations, the point of deployment and integration is rising up the stack over time. </p>
<p>Today's part granularity is the rack, not the component. And if racks are too much of a hassle for you, you can get rid of all this hardware stuff altogether by using cloud computing.</p>
<h2>Trend #2: Disintermediation</h2>
<p>Ultimately, the whole purpose of running IT is to provide business services: A credit card billing service or maybe a blogging service or even an <a href="http://constantin.glez.de/blog/2012/01/engineered-systems-and-enterprise-architecture-or-how-sell-dog-food-online">online dog food store</a>. Every such service is composed of components across the whole IT stack.</p>
<p>Unfortunately, this creates a lot of dependencies: If you want to upgrade your storage, you need to plan for it, otherwise your credit card service would suffer, if your server needs a patch, you need to make sure the blogging software running on top of this server is moved elsewhere first, if you're running a consolidation project, you better schedule a few meetings with your dog food store department to make sure the transition is accurately planned, managed and executed without disrupting your service and so on.</p>
<p>But: The more stuff is dependent on more other stuff, the stiffer your organization is, the longer stuff takes time to complete and the more errors can happen along the way. Agility suffers.</p>
<p>The solution is disintermediation:</p>
<ul>
<li>Volume managers helped storage admins disintermediate their work from their server colleagues so they can manage storage without being dependent on their server departments. Server people liked that, too, because they could "get a new volume" by just calling their buddies from the storage department without having to wait until new hardware is rolled in and connected to their servers.</li>
<li>The same thing is happening in server-land through virtualization: Running the hardware is now becoming more and more independent from running the OS on top of the hardware. OS admins now request a new server in much the same way server admins request some new storage. The physical hardware layer can now operate separately from the OS and all the other software layers above.</li>
</ul>
<p>And disintermediation is hitting again, this time thanks to Engineered Systems and cloud computing. Whether you're operating a private cloud (based on Engineered Systems or not) or you're using a public cloud, your IT <em>operations</em> are now more and more independent from your IT <em>services</em>:</p>
<ul>
<li>No more coordination between departments for hardware consolidation, faulty hardware replacement or hardware modernization.</li>
<li>Processes closer to the hardware level are more automated and require less manual intervention.</li>
<li>But on the other side, developers, architects and other people closer to the IT service are now doing more and more operations work: They are now responsible for the OS within the VMs that they get from IT, they have to come up with the golden images that IT ops runs, they have to design scalability, durability and the whole service lifecycle in the virtual world that IT offers them. Or they simply plug together and run their own service, out of PaaS components.</li>
</ul>
<p>While IT ops is focusing more and more on running a private cloud infrastructure that is application agnostic (or maybe their company has decided to entirely offload IT into the cloud), the remaining pieces of IT that are closer to developing and managing IT at the application/service level enjoy more independence, more control but also more responsibility for their services.</p>
<p>This trend has been known as “<a href="https://en.wikipedia.org/wiki/Devops">DevOps</a>” for quite a while (and I highly recommend <a href="http://cuddletech.com/blog/?category_name=devops">Ben Rockwood's blog posts on DevOps</a>, or <a href="http://perfcap.blogspot.de/2012/03/ops-devops-and-noops-at-netflix.html">this piece by Adrian Cockcroft of Netflix</a>). Werner Vogels, Amazon CTO put it into his now famous words: “<a href="http://thenextweb.com/insider/2011/10/05/amazons-cto-amazon-is-a-technology-company-we-just-happen-to-do-retail/">You build it, you run it!</a>”.</p>
<p>What does this mean for your job? Well, if you're working in IT and you're now evolving into a more cloud based model, you need to decide whether you want to be part of the cloud operations bit (which is going to be much more automated and hence will offer less room for <a href="http://constantin.glez.de/blog/2010/02/how-add-creativity-your-technology-career-and-save-yourself-automation-and-outsourcing">creativity</a>), or maybe it is time to huddle up closer with your developers and service operators: They now have a need for some operating system and HA and network savvy guys that help them do this “you run it” thing, now that the cloud is here.</p>
<h2>Trend #3: There's a Lot of New Stuff to Learn!</h2>
<p>With all this change (from assembling components by hand to automated data centers, from silo IT to cloud computing and so on), there comes a lot of new opportunity: New stuff needs to be figured out which requires creativity, new tools and technologies emerge which need to be explored, new roles and responsibilities are created almost daily.</p>
<p>Here's some food for thought:</p>
<ul>
<li>The web is reinventing itself almost every year: If you thought Blogging, Podcasting, Facebook and Twitter was something new, think again. The new kid on the block is now <a href="http://pinterest.com/">Pinterest</a> and I still have to figure out what it may be useful for (at least to me...). Try to stay on top of current web developments and learn how they play the game of popularity, influence and monetization.</li>
<li>The rules of work are changing: Mobile tools like laptops and mobile phones have enabled a more mobile workforce in the 90's. Today, the workplace is entirely virtual: Offices are no longer assigned to individuals, instead we now see flexible offices and drop-in centers almost everywhere. Not to mention work-from-home, which has become a great way of increasing productivity while promoting work-life balance. Other ancient rules of working are challenged as well: As older companies downsize and lay off employees, they learn how to become independent contractors while an entire new generation is growing up to be small to medium entrepreneurs instead of joining a regular job. On the other hand, innovative employers try to attract talent through workspaces that look more like living rooms than offices, relying on self-organization vs. hierarchies (have you seen the <a href="http://newcdn.flamehaus.com/Valve_Handbook_LowRes.pdf">Valve Employee Handbook</a>?) and even <a href="https://en.wikipedia.org/wiki/Netflix#History">letting employees choose how many days of vacation they want</a>. The more open and flexible you are about work concepts, the better you can adapt to change. Try to be more <a href="http://constantin.glez.de/blog/2010/09/book-review-art-non-conformity-chris-guillebeau">unconventional</a>.</li>
<li>New programming methods and languages are emerging, almost on a daily basis. Whether triggered by the need to better leverage the web, cloud computing or simply by playing around with new concepts. Three years ago, I would never have thought of becoming <a href="http://constantin.glez.de/blog/2012/01/i-am-mobile-sensor-network-collecting-big-data">a mobile sensor network that feeds Big Data</a> or <a href="http://constantin.glez.de/blog/2011/05/how-render-mandelbrot-set-joyent-cloud-nodejs">using a client-side scripting language to program the cloud</a>. As automation hits data centers and services move into the cloud, high-level scripting has emerged as a new "must have" skill. Even the rules of programming and scripting have changed: Learning how to program today is much more about learning patterns and concepts, while individual languages can vary by taste, requirements or simply whatever environment your cloud provider currently offers. Try to learn a new programming paradigm, API or language at least every year to keep your mind fresh in terms of what the software world has to offer.</li>
</ul>
<h2>Conclusion</h2>
<p>As new IT concepts like virtualization, Engineered Systems, Cloud Computing, DevOps, new services, patterns and languages emerge, they force IT organizations to re-think and adapt roles, responsibilities and jobs to the new reality. Change is a constant in IT, and the current times are likely to see a lot more change than we have seen before.</p>
<p>Try to climb up the IT stack towards places that are closer to where your company creates value, and where <a href="http://constantin.glez.de/blog/2010/02/how-add-creativity-your-technology-career-and-save-yourself-automation-and-outsourcing">your creativity makes a difference</a>, as commoditization, automation and outsourcing in the industry climbs up behind you and is now hitting the system integration level.</p>
<p>Re-think how your company's value creation processes map to business processes and ultimately IT processes and how new ways of disintermediation affect your processes and your architecture methodology. If DevOps is the new ITIL, what would a new version of TOGAF look like?</p>
<p>Finally, try to learn something new from the rapidly changing web culture, be it a new way to look at work, a new scripting language or a new API.</p>
<p>Nobody knows how the future is going to look like, but the more you dig into new stuff, the closer you'll be to whatever the winners of the future are.</p>
<h2>Useful Stuff to Read</h2>
<p>Here are a few books that may be interesting, helpful or just fun to read as you re-invent your job (and yes, these are affiliate links. They help me pay for hosting costs and they'll cost you nothing, we both win!):</p>
<p/>
<p>(If you don't see anything, then you have an ad blocker enabled. Trust me, at least this time, it'll be ok to switch it off :).)</p>
<h2>Your Turn</h2>
<p>What changes do you see in your organization as your IT department evolves?</p>
<p>How do you prepare for change?</p>
<p>What other tips, resources and books do you recommend to stay on top of changes in IT?</p>
<p>Share your insights in the comments!</p>
<p><a href="http://www.flickr.com/photos/cbs_fan/696305749/in/photostream/">Street sign photo</a> by Flickr-user <a href="http://www.flickr.com/photos/cbs_fan/">CBS_Fan</a>, used and modified under CC license.</p>
<div class="flattr-box">&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;'''''

</div><!-- google_ad_section_end --><div class="sexybookmarks-default-8609"/>
<p><a href="http://feedads.g.doubleclick.net/~a/LvuPTiJ-xYRFfXamv0B4I0jI3vY/0/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/LvuPTiJ-xYRFfXamv0B4I0jI3vY/0/di"/></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LvuPTiJ-xYRFfXamv0B4I0jI3vY/1/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/LvuPTiJ-xYRFfXamv0B4I0jI3vY/1/di"/></a></p><img height="1" src="http://feeds.feedburner.com/~r/ConstantThinking/~4/zPHfI9VFywQ" width="1"/></div>
    </summary>
    <updated>2012-04-25T14:35:10Z</updated>
    <category scheme="http://constantin.glez.de/tag/cloud" term="cloud"/>
    <category scheme="http://constantin.glez.de/tag/engineered-systems" term="Engineered Systems"/>
    <category scheme="http://constantin.glez.de/category/general" term="General"/>
    <category scheme="http://constantin.glez.de/tag/it" term="it"/>
    <category scheme="http://constantin.glez.de/tag/job" term="job"/>
    <category scheme="http://constantin.glez.de/tag/jobs" term="jobs"/>
    <category scheme="http://constantin.glez.de/tag/organization" term="organization"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://constantin.glez.de/blog/2012/04/get-ready-change-your-job</feedburner:origLink>
    <author>
      <name>constant</name>
    </author>
    <source>
      <id>http://constantin.glez.de</id>
      <link href="http://constantin.glez.de" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/ConstantThinking" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Constant Thinking</title>
      <updated>2012-05-18T07:37:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://dtrace.org/blogs/ahl/?p=1139</id>
    <link href="http://dtrace.org/blogs/ahl/2012/04/24/btrace-dtrace-for-java-ish/" rel="alternate" type="text/html"/>
    <title>BTrace: DTrace for Java… ish</title>
    <summary>DTrace first peered into Java in early 2005 thanks to an early prototype by Jarod Jenson that led eventually to the inclusion of USDT probes in the HotSpot JVM. If you want to see where, say, the java.net.SocketOutputStream.write() method is called, you can simply run this DTrace script: hotspot$target:::method-entry /copyinstr(arg1, arg2) == "java/net/SocketOutputStream" &amp;&amp; copyinstr(arg3, [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>DTrace <a href="http://dtrace.org/blogs/ahl/2005/04/18/dtracing-java/">first peered into Java</a> in early 2005 thanks to an early prototype by Jarod Jenson that led eventually to the inclusion of USDT probes in the <a href="http://en.wikipedia.org/wiki/HotSpot">HotSpot JVM</a>. If you want to see where, say, the java.net.SocketOutputStream.write() method is called, you can simply run this DTrace script:</p>
<pre>hotspot$target:::method-entry
/copyinstr(arg1, arg2) == "java/net/SocketOutputStream" &amp;&amp;
 copyinstr(arg3, arg4) == "write"/
{
        jstack(50, 8000);
}</pre>
<p>And that will work as long as you rememember to start your JVM with the -XX:+ExtendedDTraceProbes option or you use the jinfo utility to enable it after the fact. And as long as you don’t mind a crippling performance penalty (hint: you probably do).</p>
<p>Inspired by <a href="http://dtrace.org/blogs/ahl/2012/04/09/dtrace-conf12-wrap-up/">dtrace.conf</a> a few weeks ago, I wanted to sketch out what the real Java provider would look like:</p>
<pre>java$target:java.net.SocketOutputStream:write:entry
{
        jstack(50,8000);
}</pre>
<p>And check it out:</p>
<pre># <strong>jdtrace.pl -p $(pgrep java) -n 'java$target:java.net.SocketOutputStream::entry{ jstack(50,8000); }'</strong>
dtrace: script '/tmp/jdtrace.19092/jdtrace.d' matched 0 probes
CPU     ID                    FUNCTION:NAME
0  64991 Java_com_sun_btrace_BTraceRuntime_dtraceProbe0:event
libbtrace.so`Java_com_sun_btrace_BTraceRuntime_dtraceProbe0+0xbb
com/sun/btrace/BTraceRuntime.dtraceProbe0(Ljava/lang/String;Ljava/lang/String;II)I
com/sun/btrace/BTraceRuntime.dtraceProbe(Ljava/lang/String;Ljava/lang/String;II)I
com/sun/btrace/BTraceUtils$D.probe(Ljava/lang/String;Ljava/lang/String;II)I
com/sun/btrace/BTraceUtils$D.probe(Ljava/lang/String;Ljava/lang/String;)I
java/net/SocketOutputStream.$btrace$jdtrace$probe1(Ljava/lang/String;Ljava/lang/String;)V
java/net/SocketOutputStream.write([BII)V
sun/nio/cs/StreamEncoder.writeBytes()V
sun/nio/cs/StreamEncoder.implFlushBuffer()V
sun/nio/cs/StreamEncoder.implFlush()V
sun/nio/cs/StreamEncoder.flush()V
java/io/OutputStreamWriter.flush()V
java/io/BufferedWriter.flush()V
java/io/PrintWriter.newLine()V
java/io/PrintWriter.println()V
java/io/PrintWriter.println(Ljava/lang/String;)V
com/delphix/appliance/server/ham/impl/HAMonitorServerThread.run()V
java/util/concurrent/ThreadPoolExecutor$Worker.runTask(Ljava/lang/Runnable;)V
java/util/concurrent/ThreadPoolExecutor$Worker.run()V
java/lang/Thread.run()V
StubRoutines (1)
libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x21d
libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
libjvm.so`__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_+0x149
libjvm.so`__1cMthread_entry6FpnKJavaThread_pnGThread__v_+0x113
libjvm.so`__1cKJavaThreadDrun6M_v_+0x2c6
libjvm.so`java_start+0x1f2
libc.so.1`_thrp_setup+0x9b
libc.so.1`_lwp_start</pre>
<p>Obviously there's something fishy going on. First, we're using perl -- the shibboleth of fake-o-ware -- and there's this BTrace stuff in the output.</p>
<h3>Faking it with BTrace</h3>
<p><a href="http://kenai.com/projects/btrace"> BTrace is a dynamic instrumentation tool for Java</a>; it is both inspired by DTrace and contains some DTrace integration. The perl script above takes the DTrace syntax and generates a DTrace script and a BTrace-enabled Java source file.</p>
<p>Like DTrace, BTrace lets you specify the points of instrumentation in your Java program as well as the actions to take. Here's what our generated source file looks like.</p>
<pre>import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;
@BTrace
public class jdtrace {
        @OnMethod(clazz="java.net.SocketOutputStream", method="write", location=@Location(Kind.ENTRY))
        public static void probe1(@ProbeClassName String c,
            @ProbeMethodName String m) {
                String name = "entry";
                String p = Strings.strcat(c, Strings.strcat(":",
                    Strings.strcat(m, Strings.strcat(":", name))));
                D.probe(p, "");
        }
}</pre>
<p>Note that we specify where to trace (this can be a regular expression), and then take the action of joining the class, method, and "entry" string into a single string that we pass to the D.probe() method that causes a BTrace USDT probe to fire.</p>
<p>Here's what the D script looks like:</p>
<pre>btrace$target:::event
{
        this-&gt;__jd_arg = copyinstr(arg0);
        this-&gt;__jd_mod = strtok(this-&gt;__jd_arg, ":");
        this-&gt;__jd_func = strtok(NULL, ":");
        this-&gt;__jd_name = strtok(NULL, ":");
}

btrace$target:::event
/((this-&gt;__jd_mod == "java.net.SocketOutputStream" &amp;&amp;
 this-&gt;__jd_func == "write" &amp;&amp;
 this-&gt;__jd_name == "entry"))/
{
        jstack(50,8000);
}</pre>
<p>It's pretty simple. We parse the string that was passed to D.probe(), and disassemble it into the DTrace notion of module, function, and name. We then use that information so that the specified actions are executed as appropriate (we could have specified different Java methods to probe, and different actions to take for each). <a href="https://github.com/adamleventhal/jdtrace/blob/master/jdtrace/jdtrace.pl">Here's the code</a> if you're interested.</p>
<p>This isn't the real Java provider, but is it close enough? Unfortunately not. The most glaring problem is that BTrace sometimes renders my Java process unresponsive. Other times it leaves instrumentation behind with no way of extracting it. The word "safe" appears as the third word on the BTrace website ("BTrace is safe"), but apparently there's still some way to go to achieve the requisite level of safety.</p>
<h3>A Better BTrace</h3>
<p>BTrace is an interesting tool for examining Java programs, but one obvious obstacle is that the programs are pretty cumbersome to write. With BTrace, we should be able to write a simple one-liner to see where we are when the java.net.SocketOutputStream.write() method is called, but instead we have to write a fairly cumbersome program:</p>
<pre>import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;
@BTrace
public class TraceWrite {
        @OnMethod(clazz="java.net.SocketOutputStream", method="write", location=@Location(Kind.ENTRY))
        public static void onWrite() {
                jstack();
        }
}</pre>
<p>DTrace-inspired syntax would let users iterate much more quickly:</p>
<pre>$ <strong>dbtrace -p $(pgrep -n java) -n 'java.net.SocketOutputStream:write:entry{ jstack(); }'</strong>
java.net.SocketOutputStream.write(SocketOutputStream.java)
sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)
sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276)
sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122)
java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)
java.io.BufferedWriter.flush(BufferedWriter.java:236)
java.io.PrintWriter.newLine(PrintWriter.java:438)
java.io.PrintWriter.println(PrintWriter.java:585)
java.io.PrintWriter.println(PrintWriter.java:696)
com.delphix.appliance.server.ham.impl.HAMonitorServerThread.run(HAMonitorServerThread.java:56)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)</pre>
<p>With BTrace, you can trace nearly arbitrary information about a program's state, but instead of doing something like this:</p>
<pre>dbtrace -p $(pgrep -n java) -n 'java.net.SocketOutputStream:write:entry{ printFields(this.impl); }'</pre>
<p>You have to do this:</p>
<pre>import com.sun.btrace.annotations.*;
import com.sun.btrace.AnyType;
import static com.sun.btrace.BTraceUtils.Reflective.*;
@BTrace
public class TraceWrite {
        @OnMethod(clazz="java.net.SocketOutputStream", method="write", location=@Location(Kind.ENTRY))
        public static void onWrite(@Self Object self) {
                Object impl = get(field(classOf(self), "impl"), self);
                printFields(impl);
        }
}</pre>
<pre>$ <strong>./bin/btrace $(pgrep -n java) TraceWrite.java</strong>
{server=null, port=1080, external_address=null, useV4=false, cmdsock=null, cmdIn=null, cmdOut=null, applicationSetProxy=false, timeout=0, trafficClass=0, shut_rd=false, shut_wr=false, socketInputStream=java.net.SocketInputStream@9993a1, fdUseCount=0, fdLock=java.lang.Object@ab5443, closePending=false, CONNECTION_NOT_RESET=0, CONNECTION_RESET_PENDING=1, CONNECTION_RESET=2, resetState=0, resetLock=java.lang.Object@292936, fd1=null, anyLocalBoundAddr=null, lastfd=-1, stream=false, socket=Socket[addr=/127.0.0.1,port=38832,localport=8765], serverSocket=null, fd=java.io.FileDescriptor@50abcc, address=/127.0.0.1, port=38832, localport=8765, }</pre>
<p>BTrace needs a language that enables rapid iteration — piggybacking on Java is holding it back — and it needs some hard safety guarantees. With those, many developers and support engineers would use BTrace as part of their daily work — we certainly would here at <a href="http://www.delphix.com">Delphix</a>.</p>
<p>Back to DTrace. Even with a useable solution for Java only, the ability to have lightweight and focused tracing for Java (and other dynamic languages) could be highly valuable. We’ll see how far BTrace can take us.</p></div>
    </content>
    <updated>2012-04-24T07:29:16Z</updated>
    <category term="DTrace"/>
    <category term="BTrace"/>
    <category term="Java"/>
    <author>
      <name>ahl</name>
    </author>
    <source>
      <id>http://dtrace.org/blogs/ahl</id>
      <link href="http://dtrace.org/blogs/ahl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://dtrace.org/blogs/ahl" rel="alternate" type="text/html"/>
      <subtitle>Thoughts on software, computing and technology</subtitle>
      <title>Adam Leventhal's blog</title>
      <updated>2012-05-03T00:12:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://blogs.oracle.com/7000tips/entry/route_table_stuff</id>
    <link href="https://blogs.oracle.com/7000tips/entry/route_table_stuff" rel="alternate" type="text/html"/>
    <title xml:lang="en">Route Table Stuff</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Let's talk about your Routing Table.</p> 
  <p>I have never installed a ZFSSA, ever, without having to edit this table. If you believe that you do not need to edit your routing table, then you are wrong.<br/>:)  Ok, maybe not. Maybe you only have your ZFSSA connected to one network with only a few systems on it. I guess it's possible. Even in my simulator, however, I had to edit the routing table so I could use it no matter how I had my laptop connected, at home over a VPN or at work or using a public Wifi. So I'm going to bet a nice dinner that you, or someone, should be checking this out.</p> 
  <p>First things first. I'm going to assume you have a cluster. I try really hard to only sell clusters, but yes I know there are plenty of single-nodes out there too. Single-node people can skip these first two paragraphs. It's very important in your cluster to have a 1GigE management interface to each of the two controllers. You really want to be able to manage each controller, even when one of them is down, right? So best practice is to use the 'igb0' port for controller 1 management and to use the 'igb1' port for controller 2 management. It's important to make these ports 'Private' in the cluster configuration screen, so they do NOT failover to the other controller when a cluster takeover takes place for whatever reason. Igb0 and igb1 are two of the four built-in 1GigE ports. You can still use igb2 and igb3 for data, either alone or as an aggregate, and don't make them private, so they DO failover in a cluster takeover event. Now go to your remote workstation, which may be over a different subnet, and you should be able to ping and connect to Controller 1 using igb0.<br/>Now, back to the routing table. You have probably noticed that you can not ping or connect to the other controller, and you think something is wrong. Not to worry, everything is fine. You just need to tell your routing table, which is shared between the heads, how to talk to that other port, igb1. You see, you have a default route setup already for port igb0, that's why it works. Your new, private, igb1 however, does not know how to speak back to your remote system you are now using to manage via the BUI from a different subnet. So, make a new default route for igb1 and point it to the default gateway, which is the router it needs to use in order to cross subnets. See the picture below. Note how I have a default route for "ZFS1-MGMT" for port igb0. This shows a green light because I'm currently on ZFS1, and it sees this port just fine. I also have a default route for "ZFS2-MGMT" from port igb1. This route has a blue light, showing it as inactive. That's because this controller, ZFS1, has nothing plugged into it's igb1 port. That's perfect. Hit "Apply". Now count to 10. Now from your remote host, go ahead and ping or connect to Controller 2, and it works!!! This is because your controllers share a routing table, and when you added that igb1 route, it propagated over to the other controller, where igb1 is plugged in, and that route has a green light over there and it works fine. You will see from Controller 2's point of view that igb1 has a green light and igb0 has a blue light.  (continued below the picture)</p> 
  <p><img src="https://blogs.oracle.com/7000tips/resource/routetable.jpg"/></p> 
  <p>Now it's time to setup any static routes you may need. If you have different subnets for your 1GigE management and your IB or 10GigE data (a very good idea), then you will need to make these. It's important to have routes for this, as you do not want data coming in over the 10GigE pipe, but then returning over the 1GigE pipe, right? That will happen if this is not setup correctly. Make your routes, as the picture example shows with a 10Gig aggragate here we called "Front-end-IP". Any traffic coming in from subnet 172.20.69 will use this pipe.</p> 
  <p>Lastly, check your multi-homing model button up top. I like 'Adaptive'. Loose is the default, and makes it so your packets can traverse your routes, even though they may go over the wrong route, so it seems like your system is working. This can very well be an illusion. Your ping may work, but it may be coming from the wrong interface, as "Loose" basically means the ZFSSA just doesn't care or enforce any rules. "Strict", on the other hand, is great if you want total enforcement. If you are very good with your routes, and are positive you have it right, and want to ensure that a packet never goes the wrong way, even if that means dropping the packet, then use Strict. I'm using Adaptive here, which is a happy medium.  From the help file: The "Adaptive" choice will prefer routes with a gateway address on the same subnet as the packet's source IP address: 1) An IP packet will be accepted on an IP interface so long as its destination IP address is up on the appliance. 2) An IP packet will be transmitted over the IP interface tied to the route that most specifically matches an IP packet's destination address. If multiple routes are equally specific, prefer routes that have a gateway address on the same subnet as the packet's source address. If no eligible routes exist, drop the packet.</p>
  <p>Update 4/23/12- My colleague, Darius (<a href="https://blogs.oracle.com/si/">https://blogs.oracle.com/si/</a>), rightfully wanted me to point out how important it was to setup a static route for replication. You do not want replication to go over a private management port by mistake, as this will cause it to fail when one controller or the other goes down for maintenance.</p> 
  <p>I hope this helps. Routing can be fun. </p></div>
    </content>
    <updated>2012-04-23T13:52:09Z</updated>
    <published>2012-04-19T08:28:04Z</published>
    <category label="ZFSSA" term="/ZFSSA"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="multihoming"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="route"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="routing"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="table"/>
    <author>
      <name>Steve Tunstall</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/7000tips/feed/entries/atom</id>
      <link href="https://blogs.oracle.com/7000tips/feed/entries/atom" rel="self" type="application/atom+xml"/>
      <link href="https://blogs.oracle.com/7000tips/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en">Steve Tunstall's Blog - Steve.Tunstall@Oracle.com</subtitle>
      <title xml:lang="en">Tips &amp; Tricks with your Oracle 7000 ZFSSA</title>
      <updated>2012-05-17T09:05:32Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://blogs.oracle.com/d/entry/sincos</id>
    <link href="https://blogs.oracle.com/d/entry/sincos" rel="alternate" type="text/html"/>
    <title xml:lang="en">sincos()</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>If you are computing both the sine and cosine of an angle, then you will be twice as quick if you call <a href="http://docs.oracle.com/cd/E19205-01/820-4180/man3m/sincos.3m.html">sincos()</a> than if you call cos() and sin() independently:

</p><pre>#include 

int main()
{
  double a,b,c;
  a=1.0;
  for (int i=0;i&lt;100000000;i++) { b=sin(a); c=cos(a); }
}

$ cc -O sc.c -lm
$ timex ./a.out
real          19.13
</pre>
<p>vs</p>
<pre>#include 

int main()
{
  double a,b,c;
  a=1.0;
  for (int i=0;i&lt;100000000;i++) { sincos(a,&amp;b,&amp;c); }
}
$ cc -O sc.c -lm
$ timex ./a.out
real           9.80
</pre></div>
    </content>
    <updated>2012-04-23T11:00:00Z</updated>
    <published>2012-04-23T11:00:00Z</published>
    <category label="Personal" term="/Personal"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="mathematics"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="performance"/>
    <author>
      <name>Darryl Gove</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/d/feed/entries/atom</id>
      <link href="https://blogs.oracle.com/d/feed/entries/atom" rel="self" type="application/atom+xml"/>
      <link href="https://blogs.oracle.com/d/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en">Compiling and performance</subtitle>
      <title xml:lang="en">Darryl Gove's blog</title>
      <updated>2012-05-18T05:39:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c0t0d0s0.org/archives/7463-guid.html</id>
    <link href="http://feedproxy.google.com/~r/Wwwc0t0d0s0org/~3/uLTfG4R0Tuo/7463-Koehlbrand-Bridge.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/2.5/" rel="license"/>
    <title>Köhlbrand Bridge</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><center><a border="0" href="http://www.flickr.com/photos/c0t0d0s0/7101217719/" title="P1010191.jpg by c0t0d0s0, on Flickr"><img alt="P1010191.jpg" height="225" src="http://farm8.staticflickr.com/7069/7101217719_71715bacf9.jpg" width="500"/></a></center> 
    <img height="1" src="http://feeds.feedburner.com/~r/Wwwc0t0d0s0org/~4/uLTfG4R0Tuo" width="1"/></div>
    </content>
    <updated>2012-04-23T08:08:30Z</updated>
    <category term="Photographie"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.c0t0d0s0.org/archives/7463-Koehlbrand-Bridge.html</feedburner:origLink>
    <author>
      <name>Joerg Moellenkamp</name>
      <email>nospam@example.com</email>
    </author>
    <source>
      <id>http://www.c0t0d0s0.org/</id>
      <link href="http://www.c0t0d0s0.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Wwwc0t0d0s0org" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>the sun in a lighthungry universe</subtitle>
      <title>c0t0d0s0.org</title>
      <updated>2012-05-16T06:37:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://blogs.oracle.com/d/entry/what_is_xcode_abs44</id>
    <link href="https://blogs.oracle.com/d/entry/what_is_xcode_abs44" rel="alternate" type="text/html"/>
    <title xml:lang="en">What is -xcode=abs44?</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I've talked about building <a href="https://blogs.oracle.com/d/entry/building_shared_libraries_for_sparcv9">64-bit libraries with position independent code</a>. When building 64-bit <i>applications</i> there are two options for the code that the compiler generates: -xcode=abs64 or -xcode=abs44, the default is -xcode=abs44. These are <a href="http://docs.oracle.com/cd/E24457_01/html/E21990/bjapr.html#bjatt">documented in the user guides</a>. The abs44 and abs64 options produce 64-bit applications that constrain the <i>code + data + BSS</i> to either 44 bit or 64 bits of address.</p>

<p>These options constrain the addresses statically encoded in the application to either 44 or 64 bits. It does not restrict the address range for pointers (dynamically allocated memory) - they remain 64-bits. The restriction is in locating the address of a routine or a variable within the executable.</p>

<p>This is easier to understand from the perspective of an example. Suppose we have a variable "data" that we want to return the address of. Here's the code to do such a thing:</p>

<pre>extern int data;

int * address()
{
  return &amp;data
}
</pre>

<p>If we compile this as a 32-bit app we get the following disassembly:</p>

<pre><b>/* 000000          4 */         sethi   %hi(data),%o5</b>
/* 0x0004            */         retl    ! Result =  %o0
<b>/* 0x0008            */         add     %o5,%lo(data),%o0</b>
</pre>

<p>So it takes two instructions to generate the address of the variable "data". At link time the linker will go through the code, locate references to the variable "data" and replace them with the actual address of the variable, so these two instructions will get modified. If we compile this as a 64-bit code with full 64-bit address generation (-xcode=abs64) we get the following:</p>

<pre><b>/* 000000          4 */         sethi   %hh(data),%o5</b>
<b>/* 0x0004            */         sethi   %lm(data),%o2</b>
<b>/* 0x0008            */         or      %o5,%hm(data),%o4</b>
<b>/* 0x000c            */         sllx    %o4,32,%o3</b>
<b>/* 0x0010            */         or      %o3,%o2,%o1</b>
/* 0x0014            */         retl    ! Result =  %o0
<b>/* 0x0018            */         add     %o1,%lo(data),%o0</b>
</pre>

<p>So to do the same thing for a 64-bit application with full 64-bit address generation takes 6 instructions. Now, most hardware cannot address the full 64-bits, hardware typically can address somewhere around 40+ bits of address (<a href="http://ark.intel.com/products/37109/Intel-Xeon-Processor-X5560-%288M-Cache-2_80-GHz-6_40-GTs-Intel-QPI%29">example</a>). So being able to generate a full 64-bit address is currently unnecessary. This is where abs44 comes in. A 44 bit address can be generated in four instructions, so slightly cuts the instruction count without practically compromising the range of memory that an application can address:</p>

<pre><b>/* 000000          4 */         sethi   %h44(data),%o5</b>
<b>/* 0x0004            */         or      %o5,%m44(data),%o4</b>
<b>/* 0x0008            */         sllx    %o4,12,%o3</b>
/* 0x000c            */         retl    ! Result =  %o0
<b>/* 0x0010            */         add     %o3,%l44(data),%o0</b>
</pre></div>
    </content>
    <updated>2012-04-20T11:40:11Z</updated>
    <published>2012-04-20T11:40:11Z</published>
    <category label="Work" term="/Work"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="64-bit"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="performance"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="solarisstudio"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="sparc"/>
    <author>
      <name>Darryl Gove</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/d/feed/entries/atom</id>
      <link href="https://blogs.oracle.com/d/feed/entries/atom" rel="self" type="application/atom+xml"/>
      <link href="https://blogs.oracle.com/d/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en">Compiling and performance</subtitle>
      <title xml:lang="en">Darryl Gove's blog</title>
      <updated>2012-05-18T05:39:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>https://blogs.oracle.com/patch/entry/resolving_stale_links_to_sunsolve</id>
    <link href="https://blogs.oracle.com/patch/entry/resolving_stale_links_to_sunsolve" rel="alternate" type="text/html"/>
    <title xml:lang="en">Resolving stale links to SunSolve documentation on My Oracle Support</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>A couple of folks have posted comments on old blog entries complaining that they can't resolve links to old SunSolve content.</p> 
  <p>SunSolve was decommissioned as part of the integration into Oracle.  Documentation which is still relevant was migrated.  The URIs changed in the process.  So did the document IDs. <br/></p> 
  <p>On the basis that it's better to teach a man how to fish than to just give him a fish, here's a tip on how to do find the current links to such migrated documentation.  At least, this is how I do it:<br/></p> 
  <p>If you're looking to find the current URI for a document for which you have a stale URI such as <a href="http://sunsolve.sun.com/search/document.do?assetkey=1-79-1199543.1-1">http://sunsolve.sun.com/search/document.do?assetkey=1-79-250526.1-1</a> , simply search MOS using the "core" document number in the old SunSolve URI - for example "250526" in this example.  Enter this in the "Search Knowledge Base" search box.  </p> 
  <p>If the document is still relevant, MOS will usually return the corresponding new Document ID.  For example, in this case Document <span class="x1a" id="pt1:km_r2:0:mr1:kb_pgl2">1019995.1.  The top line of the document 1019995.1 states "Migrated ID: 250526".</span></p> 
  <p><span class="x1a" id="pt1:km_r2:0:mr1:kb_pgl2">I've updated the Doc IDs for a number of my old blog postings.  Apologies for the inconvenience caused.<br/></span></p></div>
    </summary>
    <updated>2012-04-18T10:56:41Z</updated>
    <category term="Sun"/>
    <category term="best"/>
    <category term="documentation"/>
    <category term="mos"/>
    <category term="my"/>
    <category term="oracle"/>
    <category term="otn"/>
    <category term="practice"/>
    <category term="solaris"/>
    <category term="sunsolve"/>
    <category term="support"/>
    <category term="supporthtml"/>
    <author>
      <name>user12244672</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/patch/</id>
      <link href="https://blogs.oracle.com/patch/" rel="alternate" type="text/html"/>
      <link href="https://blogs.oracle.com/patch/feed/entries/rss" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en">Copyright 2012</rights>
      <subtitle xml:lang="en">Solaris Patching - News and Best Practice</subtitle>
      <title xml:lang="en">Patch Corner</title>
      <updated>2012-05-07T17:37:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c0t0d0s0.org/archives/7462-guid.html</id>
    <link href="http://feedproxy.google.com/~r/Wwwc0t0d0s0org/~3/S8MHztzpfys/7462-Swap.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/2.5/" rel="license"/>
    <title>Swap</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Seemingly simple topics are never simple. Just collecting some stuff about the topic "Swap. How to size it". Well ... it isn't simple ... not at all. Especially when you want to explain, not just giving a rule of thumb ... 
    <img height="1" src="http://feeds.feedburner.com/~r/Wwwc0t0d0s0org/~4/S8MHztzpfys" width="1"/></div>
    </content>
    <updated>2012-04-18T05:46:03Z</updated>
    <category term="General"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.c0t0d0s0.org/archives/7462-Swap.html</feedburner:origLink>
    <author>
      <name>Joerg Moellenkamp</name>
      <email>nospam@example.com</email>
    </author>
    <source>
      <id>http://www.c0t0d0s0.org/</id>
      <link href="http://www.c0t0d0s0.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Wwwc0t0d0s0org" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>the sun in a lighthungry universe</subtitle>
      <title>c0t0d0s0.org</title>
      <updated>2012-05-16T06:37:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>https://blogs.oracle.com/security/entry/april_2012_critical_patch_update</id>
    <link href="https://blogs.oracle.com/security/entry/april_2012_critical_patch_update" rel="alternate" type="text/html"/>
    <title xml:lang="en">April 2012 Critical Patch Update Released</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Hi, this is Eric Maurice.
</p>
<p>Oracle has just released the <a href="http://www.oracle.com/technetwork/topics/security/cpuapr2012-366314.html">April 2012 Critical Patch Update</a>. This Critical Patch Update provides 88 new security fixes across the following product families: Oracle Database Server, Oracle Fusion Middleware, Oracle Enterprise Manager Grid Control, Oracle E-Business Suite, Oracle Supply Chain Products Suite, Oracle PeopleSoft Enterprise, Oracle FLEXCUBE, Oracle Siebel Clinical Trial Management System, Oracle Primavera, Oracle Sun products suite, and Oracle MySQL.
</p>
<p>Of the 88 new vulnerabilities, 6 directly affect Oracle Database Server. The highest CVSS Base Score for these Database Server vulnerabilities is 9.0. This Base Score affects the Oracle Spatial component on Windows platforms (on non-Windows platforms, i.e., Linux, Unix, the CVSS Base Score is 6.5). In addition, 6 Enterprise Manager Grid Control fixes may be relevant to Database Server deployments. The highest CVSS Base Score for the Enterprise Manager Grid Control vulnerabilities is 5.8; but 4 of the 6 vulnerabilities can be remotely exploitable without authentication. Therefore, Oracle highly recommends that these fixes be applied as soon as possible.
</p>
<p>This Critical patch Update also includes 11 new security fixes for Oracle Fusion Middleware. The highest CVSS Base Score for these Fusion Middleware vulnerabilities is 10.0 (for vulnerability CVE-2012-1695). This score affects a series of vulnerabilities in the Java Runtime Environment that are applicable to JRockit. Starting again with this Critical Patch Update, JRockit fixes will no longer be provided with the Critical Patch Update for Java SE, but be provided in “the normal” Critical Patch Update along with other Oracle Fusion Middleware fixes.
</p>
<p>This Critical Patch Update provides the following application security fixes: 4 for Oracle E-Business Suite, 5 for Oracle Supply Chain Products Suite, 15 for Oracle PeopleSoft Enterprise, 2 for Siebel Clinical Trial Management System, 17 for Oracle FLEXCUBE, and 1 for Oracle Primavera Enterprise Project Management.
</p>
<p>Finally, this Critical Patch Update provides 15 new security fixes for the Oracle Sun Products Suite (including Oracle Grid Engine, Oracle Glassfish Enterprise Server, Oracle Solaris, etc.) and 6 new security fixes for Oracle MySQL.
</p>
<p>While a great amount of caution is required when analyzing the content of the Critical Patch Updates in an attempt to identify potential trends; I believe the content of this Critical Patch Update is consistent with the <a href="https://blogs.oracle.com/security/entry/october_2011_critical_patch_updates">views expressed in previous blog entries</a>: <a href="http://www.oracle.com/us/support/assurance/index.html">Oracle Software Security Assurance activities</a> tend to result in lowering the number of exploitable security bugs in most mature product lines (that is the product lines who have implemented <a href="http://www.oracle.com/us/support/assurance/development/index.html">Oracle secure development practices</a> for the longest time), and as a result we see a downward trend in the number of fixes for these product lines. On the other hand, newly acquired product lines often experience relatively large number of security fixes in the Critical Patch Updates. This is due in part to the increased visibility these products may get as a result of their acquisition by Oracle, as well as development’s access to an extended toolset (e.g., security scanning tools) and increased executive attention around security matters as a result of joining Oracle.
</p>
<p><u>For More Information: </u>
</p>
<p>The April 2012 Critical Patch Update Advisory is located at <a href="http://www.oracle.com/technetwork/topics/security/cpuapr2012-366314.html">http://www.oracle.com/technetwork/topics/security/cpuapr2012-366314.html</a>
</p>
<p>More information about Oracle Software Security Assurance is located at <a href="http://www.oracle.com/us/support/assurance/index.html">http://www.oracle.com/us/support/assurance/index.html</a>
</p>
<p> 
</p></div>
    </summary>
    <updated>2012-04-17T15:03:06Z</updated>
    <category term="Oracle"/>
    <category term="critical"/>
    <category term="patch"/>
    <category term="update"/>
    <author>
      <name>Eric P. Maurice</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/security/</id>
      <link href="https://blogs.oracle.com/security/" rel="alternate" type="text/html"/>
      <link href="https://blogs.oracle.com/security/feed/entries/rss" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en">Copyright 2012</rights>
      <title xml:lang="en">The Oracle Software Security Assurance Blog</title>
      <updated>2012-05-08T21:37:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c0t0d0s0.org/archives/7461-guid.html</id>
    <link href="http://feedproxy.google.com/~r/Wwwc0t0d0s0org/~3/mAhN939li6U/7461-River.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/2.5/" rel="license"/>
    <title>River</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><center><a href="http://www.flickr.com/photos/c0t0d0s0/6938727046/" title="P1010145.jpg by c0t0d0s0, on Flickr"><img alt="P1010145.jpg" border="0" height="375" src="http://farm6.staticflickr.com/5330/6938727046_888d45fe07.jpg" width="500"/></a></center> 
    <img height="1" src="http://feeds.feedburner.com/~r/Wwwc0t0d0s0org/~4/mAhN939li6U" width="1"/></div>
    </content>
    <updated>2012-04-17T10:54:15Z</updated>
    <category term="Photographie"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.c0t0d0s0.org/archives/7461-River.html</feedburner:origLink>
    <author>
      <name>Joerg Moellenkamp</name>
      <email>nospam@example.com</email>
    </author>
    <source>
      <id>http://www.c0t0d0s0.org/</id>
      <link href="http://www.c0t0d0s0.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Wwwc0t0d0s0org" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>the sun in a lighthungry universe</subtitle>
      <title>c0t0d0s0.org</title>
      <updated>2012-05-16T06:37:03Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-1270287474555047904.post-2532577960956061861</id>
    <link href="http://feedproxy.google.com/~r/UnixSystem/~3/nTKqHkZOL9A/omnios.html" rel="alternate" type="text/html"/>
    <title>OmniOS</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">OmniOS is a new illumos-based server distribution with commercial support available was announced at the DTrace conference.<br/><br/>It contains the features you expect like Crossbow, ZFS, DTrace, IPS and Comstar but also includes KVM and updates in userland (Python, GCC, Perl, OpenSSL etc.)<br/><br/><i>"OmniOS is our vision of what OpenSolaris could have been had it remained in the open. It runs better, faster and has more innovations,” continued Schlossnagle. “OmniTI did not want to lose the benefits that OpenSolaris technologies brought to customers, so we decided to pursue the continuation of the OS on our own. We've been running OmniOS in our data centers for six months and have seen tremendous results. We’re excited to announce our news at the DTrace conference because of its importance and relevance to this community."</i><br/>- Theo Schlossnagle, CEO of OmniTI<br/><br/>More information, install images and source repositories are available here: <a href="http://omnios.omniti.com/">omnios.omniti.com</a><br/><br/>I have only installed the image into VirtualBox witch was painless and quick, I might post an update when I've had time for some exploring.<br/><br/><a href="http://omniti.com/remembers/2012/omniti-debuts-omnios-an-open-source-operating-system-for-the-solaris-community">OmniTI Debuts OmniOS, an Open Source Operating System for the Solaris Community</a><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/1270287474555047904-2532577960956061861?l=sparcv9.blogspot.com" width="1"/></div><img height="1" src="http://feeds.feedburner.com/~r/UnixSystem/~4/nTKqHkZOL9A" width="1"/></div>
    </summary>
    <updated>2012-04-16T06:44:00Z</updated>
    <category scheme="http://www.blogger.com/atom/ns#" term="ZFS"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="omnios"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="Illumos"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="DTrace"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://sparcv9.blogspot.com/2012/04/omnios.html</feedburner:origLink>
    <author>
      <name>Henkis</name>
      <email>noreply@blogger.com</email>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-1270287474555047904</id>
      <category term="SPARC T4"/>
      <category term="Illumos"/>
      <category term="Fishworks"/>
      <category term="virtualization"/>
      <category term="Orace"/>
      <category term="omnios"/>
      <category term="Solaris 11 Express"/>
      <category term="2010.05"/>
      <category term="Oracle World"/>
      <category term="2010.03"/>
      <category term="Patch"/>
      <category term="dskinfo"/>
      <category term="M-series"/>
      <category term="SPARC"/>
      <category term="Solaris 11"/>
      <category term="OpenOffice"/>
      <category term="Nexenta"/>
      <category term="zones"/>
      <category term="FreeBSD"/>
      <category term="x86"/>
      <category term="Security"/>
      <category term="CIFS"/>
      <category term="ZFS Working Group"/>
      <category term="Oracle"/>
      <category term="DTrace"/>
      <category term="Indiana"/>
      <category term="s10u8"/>
      <category term="Solaris Next"/>
      <category term="s10u10"/>
      <category term="OpenIndiana"/>
      <category term="SPARC T5"/>
      <category term="KVM"/>
      <category term="OpenSolaris"/>
      <category term="LDOM"/>
      <category term="Sun"/>
      <category term="Fujitsu"/>
      <category term="Solaris"/>
      <category term="crossbow"/>
      <category term="Solaris 10"/>
      <category term="s10u9"/>
      <category term="Joyent"/>
      <category term="PSARC"/>
      <category term="digging"/>
      <category term="PKG"/>
      <category term="s10u7"/>
      <category term="ZFS"/>
      <author>
        <name>Henkis</name>
        <email>noreply@blogger.com</email>
      </author>
      <link href="http://sparcv9.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/UnixSystem" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Solaris for the masses</subtitle>
      <title>It's a UNIX system!</title>
      <updated>2012-05-13T15:37:02Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c0t0d0s0.org/archives/7460-guid.html</id>
    <link href="http://feedproxy.google.com/~r/Wwwc0t0d0s0org/~3/-qOPTb4lcS0/7460-Upcoming-event-Oracle-Solaris-11-Whats-New-Since-the-Launch.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/2.5/" rel="license"/>
    <title>Upcoming event - Oracle Solaris 11: What’s New Since the Launch</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">On April 25th an webbased event about Solaris 11 takes place: It's named <a href="https://event.on24.com/eventRegistration/EventLobbyServlet?target=registration.jsp&amp;eventid=448526&amp;sessionid=1&amp;key=F388781B6AD9D5AB6018014A0A677FC5&amp;partnerref=OTN&amp;sourcepage=register">Oracle Solaris 11: What’s New Since the Launch</a>.<br/>
<center><br/>
<table width="75%">
 <tbody><tr><td bgcolor="silver" colspan="2">Agenda</td></tr>
 <tr><td>9:00 a.m. PDT</td><td><strong>Keynote: Oracle Solaris - Strategy and Update</strong><br/><i>Markus Flierl, Vice President, Oracle Solaris Engineering<i/></i></td></tr>
 <tr><td>9:40 a.m. PDT</td><td><strong>Oracle Solaris 11: Extreme Engineering - A Technical Update</strong><br/><i>Dan Price, Senior Principal Product Engineer, Oracle Solaris Engineering<br/>
Bart Smaalders, Senior Principal Product Engineer, Oracle Solaris Engineering</i></td></tr>
 <tr><td>10:20 a.m. PDT</td><td><strong>Customers and Partners: Why We Moved to Oracle Solaris 11</strong><br/>
A discussion of the reasons why businesses and commercial software developers have adopted Oracle Solaris 11, from the people responsible for these decisions</td></tr>
 <tr><td>11:00 a.m. PDT</td><td><strong>Oracle Solaris: Core to the Oracle Systems Strategy</strong><br/><i>John Fowler, Executive Vice President of Systems, Oracle<i/></i></td></tr>
</tbody></table><br/>
</center><br/>
9:00 am PDT is 18:00 in Berlin, 17:00 in London and i assume much to late in Tokyo with 01:00 am the next day ... 
    <img height="1" src="http://feeds.feedburner.com/~r/Wwwc0t0d0s0org/~4/-qOPTb4lcS0" width="1"/></div>
    </content>
    <updated>2012-04-15T18:03:06Z</updated>
    <category term="English"/>
    <category term="Solaris"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.c0t0d0s0.org/archives/7460-Upcoming-event-Oracle-Solaris-11-Whats-New-Since-the-Launch.html</feedburner:origLink>
    <author>
      <name>Joerg Moellenkamp</name>
      <email>nospam@example.com</email>
    </author>
    <source>
      <id>http://www.c0t0d0s0.org/</id>
      <link href="http://www.c0t0d0s0.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Wwwc0t0d0s0org" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>the sun in a lighthungry universe</subtitle>
      <title>c0t0d0s0.org</title>
      <updated>2012-05-16T06:37:02Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c0t0d0s0.org/archives/7459-guid.html</id>
    <link href="http://feedproxy.google.com/~r/Wwwc0t0d0s0org/~3/aEm9bUxtmaE/7459-Using-the-Support-Repository-for-Solaris-11.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/2.5/" rel="license"/>
    <title>Using the Support Repository for Solaris 11</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-018-howto-update-s11-1572261.html">"How to Update Oracle Solaris 11 Systems Using Support Repository Updates"</a> is a great article written by Glynn Foster in order to explain the use of the Support Repository for Solaris 11. A must read.  
    <img height="1" src="http://feeds.feedburner.com/~r/Wwwc0t0d0s0org/~4/aEm9bUxtmaE" width="1"/></div>
    </content>
    <updated>2012-04-15T09:23:18Z</updated>
    <category term="English"/>
    <category term="Solaris"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.c0t0d0s0.org/archives/7459-Using-the-Support-Repository-for-Solaris-11.html</feedburner:origLink>
    <author>
      <name>Joerg Moellenkamp</name>
      <email>nospam@example.com</email>
    </author>
    <source>
      <id>http://www.c0t0d0s0.org/</id>
      <link href="http://www.c0t0d0s0.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Wwwc0t0d0s0org" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>the sun in a lighthungry universe</subtitle>
      <title>c0t0d0s0.org</title>
      <updated>2012-05-16T06:37:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://blogs.oracle.com/7000tips/entry/new_spc2_benchmark_the_7420</id>
    <link href="https://blogs.oracle.com/7000tips/entry/new_spc2_benchmark_the_7420" rel="alternate" type="text/html"/>
    <title xml:lang="en">New SPC2 benchmark- The 7420 KILLS it !!!</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>This is pretty sweet. The new SPC2 benchmark came out last week, and the 7420 not only came in 2nd of ALL speed scores, but came in #1 for price per MBPS.</p>
  <p>Check out this table. The 7420 score of 10,704 makes it really fast, but that's not the best part. The price one would have to pay in order to beat it is ridiculous. You can go see for yourself at <a href="http://www.storageperformance.org/results/benchmark_results_spc2">http://www.storageperformance.org/results/benchmark_results_spc2</a><br/>The only system on the whole page that beats it was over twice the price per MBPS. Very sweet for Oracle.</p>
  <p>So let's see, the 7420 is the fastest per $. <br/>The 7420 is the cheapest per MBPS. <br/>The 7420 has incredible, built-in features, management services, analytics, and protocols. It's extremely stable and as a cluster has no single point of failure. It won the Storage Magazine award for best NAS system this year.</p>
  <p><img src="https://blogs.oracle.com/7000tips/resource/SPC2.jpg"/> </p>So how long will it be before it's the number 1 NAS system in the market? What are the biggest hurdles still stopping the widespread adoption of the ZFSSA? From what I see, it's three things: 1. Administrator's comfort level with older legacy systems. 2. Politics 3. Past issues with Oracle Support.  <br/>
  <p>I see all of these issues crop up regularly. Number 1 just takes time and education. Number 3 takes time with our new, better, and growing support team. many of them came from Oracle and there were growing pains when they went from a straight software-model to having to also support hardware. Number 2 is tricky, but it's the job of the sales teams to break through the internal politics and help their clients see the value in oracle hardware systems. Benchmarks like this will help. </p> 
  <p> </p></div>
    </content>
    <updated>2012-04-14T16:23:47Z</updated>
    <published>2012-04-14T16:23:47Z</published>
    <category label="ZFSSA" term="/ZFSSA"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="benchmark"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="performance"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="zfssa"/>
    <author>
      <name>Steve Tunstall</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/7000tips/feed/entries/atom</id>
      <link href="https://blogs.oracle.com/7000tips/feed/entries/atom" rel="self" type="application/atom+xml"/>
      <link href="https://blogs.oracle.com/7000tips/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en">Steve Tunstall's Blog - Steve.Tunstall@Oracle.com</subtitle>
      <title xml:lang="en">Tips &amp; Tricks with your Oracle 7000 ZFSSA</title>
      <updated>2012-05-17T09:05:32Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://cuddletech.com/blog/?p=652</id>
    <link href="http://cuddletech.com/blog/?p=652&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=policy-process-in-the-blood" rel="alternate" type="text/html"/>
    <title>Policy &amp; Process in the Blood</title>
    <summary>I’m highly introspective… far more than I would actually like to be.  I’m one of those strange individuals to whom if you said “Do you realize your being a jerk right now?” I’d actually admit “Yes, I’m sorry about that, I’m trying to find a way to rectify it unsuccessfully.” Despite that obsessive level of [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’m highly introspective… far more than I would actually like to be.  I’m one of those strange individuals to whom if you said “Do you realize your being a jerk right now?” I’d actually admit “Yes, I’m sorry about that, I’m trying to find a way to rectify it unsuccessfully.”</p>
<p>Despite that obsessive level of awareness, nothing can tell you more about who you are then your children.  In particular, by observing things your children do that you never taught them, they just started doing of their own accord because “it seemed right”.  Genetics at work.</p>
<p>I fight frequently with people about documenting processes.  But maybe I’m just anal?  Then the other day my son comes to me and shows me this:</p>
<p><img alt="" class="aligncenter" height="536" src="http://cuddletech.com/img/Refreshment-Process.jpg" title="Refreshment Process" width="400"/></p>
<p>This is Glenn, my eldest son (6 years old).  He wanted some lemonade, but mom and I were busy.  He decided it might help if he simplified his request into a process.  You can see here that we start with a bottle of lemonade, then we pour it into a glass, then WHAMO!  we have our amazingly refreshing beverage to enjoy.  It is the perfect process with an input, output, and processing in the middle.  Brilliant, and he hasn’t even been to business school yet.  How much simpler does process get?</p>
<p>What about policy?  Policy is just a business word for “rules”, nothing more.  In my opinion, the worlds most amazing and effective policy is this one:</p>
<p><img class="aligncenter" src="http://www.cuddletech.com/img/road.jpg" title="2 Lane Road"/></p>
<p>That yellow line is policy.  Its not a brick wall, but we treat it like one.  Thanks to that little bit of paint two cars can drive towards each other at 70 MPH, passing with only 6 ft between them, without fear.  It doesn’t get simpler or more powerful than that.</p>
<p>Parents and authority figures in general, tend to layer into a child the concept of right and wrong as absolutes.  Take the cookie and you shall be punished, so don’t take the cookie!  All throughout our culture we do this, define a rules and corresponding punishments.  The result is a general fear of rules, because they are seemingly there for the sole purpose of justifying punishment.  </p>
<p>Any rule, any law, any policy, can be viewed as a guide or as a guillotine.  When I asked many of my peers what they thought about policy a surprising number quickly answered “Its there so that you can fire people.”  Its shocking how many people believe that.  One would think that policy is there to enforce lessons learned in the past, as a guide for decision making, pre-computed solutions to problems which might be difficult to conflicting.  So then why is it that they are considered simply a justification for punishment?  Inconsistency of course… everyone seems to ignore, discount, or outright disregard policy on a day-to-day basis and it only comes to peoples attention when someone is being called out.</p>
<p>Policy and process are wonderful things.  At least, they can be.  They are the means by which we share knowledge within an organization.  Common tasks, problems, and dilemmas can be quickly handled in a tried and true way, consistent throughout the organization, because we have policy and process.  But in order for them to work, there are some ground rules, if you don’t follow them they are doomed to be the millstones of frustration most of us see them as:</p>
<ul>
<li> They need to be simple and straight-forward for the average employee.
</li><li> They need to be indexed, so that they can be easily found.
</li><li> They need to be relevant to the business, not just copied from someone else.
</li><li> They need to be consistent, so that they do not contradict each other.
</li><li> They need to be helpful and solve real problems.
</li><li> They need to be up to date.  Old policy and process can be worse than none at all, because people are afraid of the reliability and may waste time debating a course of action, which is exactly what process and policy should speed up.
</li></ul>
<p>The last point is the hardest.  Knowledge management is still something we’re shitty at.  Wiki’s have helped a lot over the last decade by making everything searchable and empowering everyone to update documents quickly and easily.  But the fundamental problem is that of scaling.  Not scaling the infrastructure but of the human mind.  Many a sci-fi story has depicted the person who desire to know everything, and when the wish was granted, their head promptly exploded in one way or another.  In many large companies when you hire on you’ll receive a book or binder with all the company policies… did you read it?  Of course not: tl:dr.</p>
<p>Thus, what we’re really talking about here is culture.  Genetics.  Your children get them from you in the blood, but in a company we must teach them to others through words and actions.  Preferably when employees are new, through on the job training/mentoring/tasking.  Will you ignore policy and process?  If you don’t care, they are likely useless crap anyways, and everyone can fend for themselves and hopefully get it right.  But what if instead they were useful, and they were a reference available to simplify life?  You don’t read the dictionary, but you know that its there and handy when you need it… so should be process and policy.    </p>
<p>I feel passionate about these things because I hate to see employees stressed out because they aren’t sure what to do or how to do something.  Useless anxiety.  Wasted energy.  Muda.  I see managers beat on their people for not knowing… but who’s fault is it really?  There are hard problems in the world, lets focus the energy on new problems and codify what we’ve learned in the past for everyone to benefit from.  This is the nature of continuous improvement… building a collective body of corporate knowledge and continuously expanding, refining, and even replacing it when appropriate.</p></div>
    </content>
    <updated>2012-04-14T07:52:45Z</updated>
    <category term="DevOps"/>
    <category term="Management"/>
    <author>
      <name>benr</name>
    </author>
    <source>
      <id>http://cuddletech.com/blog</id>
      <link href="http://cuddletech.com/blog/?feed=rss2" rel="self" type="application/atom+xml"/>
      <link href="http://cuddletech.com/blog" rel="alternate" type="text/html"/>
      <subtitle>The Blog of Ben Rockwood</subtitle>
      <title>Cuddletech</title>
      <updated>2012-04-21T03:12:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c0t0d0s0.org/archives/7458-guid.html</id>
    <link href="http://feedproxy.google.com/~r/Wwwc0t0d0s0org/~3/rMXXdIMPqaA/7458-Veranstaltungshinweis-2.-Oracle-Breakfast.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/2.5/" rel="license"/>
    <title>Veranstaltungshinweis:  2. Oracle Breakfast</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Am 26. April findet das zweite Oracle Oracle Breakfast in Hamburg in der Geschäftsstelle (Kühnehöfe 5) statt: Also Futtern mit technischem Content. Auch diesmal gibt es zwei Vorträge.<br/>
<center><br/>
<table width="50%">
<tbody><tr>
 <td bgcolor="silver" colspan="2">Agenda</td>
</tr>
<tr>
 <td>9:30</td><td>Willkommen zum Frühstück</td>
</tr>
<tr>
<td>10:00</td><td><b>Solaris 11 im Detail  - Einbindung in heterogene Netze (CIFS-Dienst etc.)</b><br/>Joerg Moellenkamp</td>
</tr>
<tr>
 <td>11:30</td><td>Kaffeepause</td><td>
</td></tr>
<tr>
 <td>12:00</td><td><b>ZFSSA  praktisch<br/>Einbindung einer ZFS SA in heterogene Netze, aber wie? Vortrag &amp; Livedemo unter VirtualBox</b><br/>Dirk Nitschke</td>
</tr>
<tr>
 <td>13:30</td><td>geplantes Ende</td>
</tr>
</tbody></table><br/>
</center><br/>
Anmelden könnt Ihr euch mit einer formlosen Mail an <a href="mailto:oraclebreakfast_ham@c0t0d0s0.org">oraclebreakfast_ham@c0t0d0s0.org</a>. Das ist ein Forwarder an die Addresse der Kollegin, die das intern bei uns organisiert, deren Mailaddresse ich nicht unbedingt für Spammer verteilen möchte ... 
    <img height="1" src="http://feeds.feedburner.com/~r/Wwwc0t0d0s0org/~4/rMXXdIMPqaA" width="1"/></div>
    </content>
    <updated>2012-04-13T18:56:50Z</updated>
    <category term="German"/>
    <category term="Solaris"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.c0t0d0s0.org/archives/7458-Veranstaltungshinweis-2.-Oracle-Breakfast.html</feedburner:origLink>
    <author>
      <name>Joerg Moellenkamp</name>
      <email>nospam@example.com</email>
    </author>
    <source>
      <id>http://www.c0t0d0s0.org/</id>
      <link href="http://www.c0t0d0s0.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Wwwc0t0d0s0org" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>the sun in a lighthungry universe</subtitle>
      <title>c0t0d0s0.org</title>
      <updated>2012-05-16T06:37:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c0t0d0s0.org/archives/7457-guid.html</id>
    <link href="http://feedproxy.google.com/~r/Wwwc0t0d0s0org/~3/YubBaXSKEUg/7457-Solaris-11-LKSF.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/2.5/" rel="license"/>
    <title>Solaris 11 LKSF</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">After having some discussions i now made my mind about it: In the next weeks you will see many republications of old articles in the blog as i will republish all articles in the LKSF, however checked and updated for Solaris 11 (some Opensolaris based stuff in the lksf is working slightly different, and if it's just for different package names). However this will take time, as i will do this on weekends and evenings. At the end i will just recollect them and create a Solaris LKSF pdf again. 
    <img height="1" src="http://feeds.feedburner.com/~r/Wwwc0t0d0s0org/~4/YubBaXSKEUg" width="1"/></div>
    </content>
    <updated>2012-04-13T18:37:30Z</updated>
    <category term="English"/>
    <category term="Solaris"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.c0t0d0s0.org/archives/7457-Solaris-11-LKSF.html</feedburner:origLink>
    <author>
      <name>Joerg Moellenkamp</name>
      <email>nospam@example.com</email>
    </author>
    <source>
      <id>http://www.c0t0d0s0.org/</id>
      <link href="http://www.c0t0d0s0.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Wwwc0t0d0s0org" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>the sun in a lighthungry universe</subtitle>
      <title>c0t0d0s0.org</title>
      <updated>2012-05-16T06:37:02Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>https://blogs.oracle.com/7000tips/entry/hybrid_columnar_compression</id>
    <link href="https://blogs.oracle.com/7000tips/entry/hybrid_columnar_compression" rel="alternate" type="text/html"/>
    <title xml:lang="en">Hybrid Columnar Compression</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>You heard me in the past talk about the HCC feature for Oracle databases. Hybrid Columnar Compression is a fantastic, built-in, free feature of Oracle 11Gr2. One used to need an Exadata to make use of it. However, last October, Oracle opened it up and now allows it to work on ANY Oracle DB server running 11Gr2, as long as the storage behind it is a ZFSSA for DNFS, or an Axiom for FC.</p>
  <p>If you're not sure why this is so cool or what HCC can do for your Oracle database, please check out this presentation. In it, Art will explain HCC, show you what it does, and give you a great idea why it's such a game-changer for those holding lots of historical DB data.</p>
  <p>Did I mention it's free? Click here:</p>
  <p><a href="http://hcc.zanghosting.com/hcc-demo-swf.html" target="_blank" title="HCC Demonstration">http://hcc.zanghosting.com/hcc-demo-swf.html</a></p>
  <p> </p></div>
    </content>
    <updated>2012-04-12T16:32:15Z</updated>
    <published>2012-04-12T16:32:15Z</published>
    <category label="ZFSSA" term="/ZFSSA"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="hcc"/>
    <category scheme="http://roller.apache.org/ns/tags/" term="zfssa"/>
    <author>
      <name>Steve Tunstall</name>
    </author>
    <source>
      <id>https://blogs.oracle.com/7000tips/feed/entries/atom</id>
      <link href="https://blogs.oracle.com/7000tips/feed/entries/atom" rel="self" type="application/atom+xml"/>
      <link href="https://blogs.oracle.com/7000tips/" rel="alternate" type="text/html"/>
      <subtitle xml:lang="en">Steve Tunstall's Blog - Steve.Tunstall@Oracle.com</subtitle>
      <title xml:lang="en">Tips &amp; Tricks with your Oracle 7000 ZFSSA</title>
      <updated>2012-05-17T09:05:32Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://constantin.glez.de/254 at http://constantin.glez.de</id>
    <link href="http://feedproxy.google.com/~r/ConstantThinking/~3/58KM4sg1WPs/how-avoid-your-next-12-month-science-project" rel="alternate" type="text/html"/>
    <link href="http://feedproxy.google.com/~r/ConstantThinking/~5/93aJbBLmxs8/preview" length="26400" rel="enclosure" type="image/jpeg"/>
    <title>How to Avoid Your Next 12-Month Science Project</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="all-attached-images"><div class="image-attach-body image-attach-node-256" style="width: 320px;"><a href="http://constantin.glez.de/image/exalogicibnetworkjpg"><img alt="exalogic_ib_network.jpg" class="image image-blog " height="240" src="http://cdn.glez.de/sites/constantin.glez.de/files/images/exalogic_ib_network.blog.jpg" title="exalogic_ib_network.jpg" width="320"/></a></div>
</div><!-- google_ad_section_start --><p>While most customers immediately understand how the magic of Oracle's Hybrid Columnar Compression, intelligent storage servers and flash memory make Exadata uniquely powerful against home-grown database systems, some people think that Exalogic is nothing more than a bunch of x86 servers, a storage appliance and an InfiniBand (IB) network, built into a single rack.</p>
<p>After all, isn't this exactly what the High Performance Computing (HPC) world has been doing for decades?</p>
<p>On the surface, this may be true. And some people tried exactly that: They tried to put together their own version of Exalogic, but then they discover there's a lot more to building a system than buying hardware and assembling it together. IT is not Ikea.</p>
<p>Why is that so? Could it be there's more going on behind the scenes than merely putting together a bunch of servers, a storage array and an InfiniBand network into a rack? Let's explore some of the special sauce that makes Exalogic unique and un-copyable, so you can save yourself from your next 6- to 12-month science project that distracts you from doing real work that adds value to your company.</p>
<h2>Engineering Systems is Hard Work!</h2>
<p>The backbone of Exalogic is its <a href="http://en.wikipedia.org/wiki/InfiniBand">InfiniBand</a> network: 4 times better bandwidth than even 10 Gigabit Ethernet, and only about a tenth of its latency. What a potential for increased scalability and throughput across the middleware and database layers!</p>
<p>But InfiniBand is a beast that needs to be tamed: It is true that Exalogic uses a standard, open-source <a href="http://en.wikipedia.org/wiki/OFED">Open Fabrics Enterprise Distribution (OFED)</a> InfiniBand driver stack. Unfortunately, this software has been developed by the HPC community with fastest speed in mind (which is good) but, despite the name, not many other enterprise-class requirements are included (which is less good).</p>
<p>Here are some of the improvements that Oracle's InfiniBand development team had to add to the OFED stack to make it enterprise-ready, simply because typical HPC users didn't have the need to implement them:</p>
<ul>
<li><strong>More than 100 bug fixes</strong> in the pieces that were not related to the <a href="http://en.wikipedia.org/wiki/Message_Passing_Interface">Message Passing Interface Protocol (MPI)</a>, which is the protocol that HPC users use most of the time, but which is less useful in the enterprise.</li>
<li><strong>Performance optimizations and tuning</strong> across the whole IB stack: From Switches, Host Channel Adapters (HCAs) and drivers to low-level protocols, middleware and applications. Yes, even the standard HPC IB stack could be improved in terms of performance.</li>
<li><strong>Ethernet over IB (EoIB)</strong>: Exalogic uses InfiniBand internally to reach high performance, but it needs to play nicely with datacenters around it. That's why Oracle added Ethernet over InfiniBand technology to it that allows for creating many virtual 10GBE adapters inside Exalogic's nodes that are aggregated and connected to Exalogic's IB gateway switches.<br/>
While this is an open standard, it's up to the vendor to implement it. In this case, Oracle integrated the EoIB stack with Oracle's own IB to 10GBE gateway switches, and made it fully virtualized from the beginning. This means that Exalogic customers can completely rewire their server infrastructure inside the rack without having to physically pull or plug a single cable - a must-have for every cloud deployment.<br/>
Anybody who wants to match this level of integration would need to add an InfiniBand switch development team to their project.<br/>
Or just buy Oracle's gateway switches, which are conveniently shipped with a whole server infrastructure attached!</li>
<li><strong>IPv6 support</strong> for InfiniBand's <a href="http://en.wikipedia.org/wiki/Sockets_Direct_Protocol">Sockets Direct Protocol (SDP)</a>, <a href="http://en.wikipedia.org/wiki/Reliable_Datagram_Sockets">Reliable Datagram Sockets (RDS)</a>, TCP/IP over IB (IPoIB) and EoIB protocols. Because no IPv6 = not very enterprise-class.</li>
<li><strong>HA capability for SDP</strong>. High Availability is not a big requirement for HPC, but for enterprise-class application servers it is. Every node in Exalogic's InfiniBand network is connected twice for redundancy. If any cable or port or HCA fails, there's always a replacement link ready to take over. This requires extra magic at the protocol level to work. So in addition to Weblogic's failover capabilities, Oracle implemented IB automatic path migration at the SDP level to avoid unnecessary failover operations at the middleware level.</li>
<li><strong>Security</strong>, for example spoof-protection. Another feature that is less important for traditional users of InfiniBand, but very important for enterprise customers.</li>
<li><strong>InfiniBand Partitioning and Quality-of-Service (QoS)</strong>: One of the first questions we get from customers about Exalogic is: “How can we implement multi-tenancy?” The answer is to partition your IB network, which effectively creates many networks that work independently and that are protected at the lowest networking layer possible. In addition to that, QoS allows administrators to prioritize traffic flow in multi-tenancy environments so they can keep their service levels where it matters most.</li>
<li><strong>Resilient IB Fabric Management</strong>: InfiniBand is a self-managing network, so a lot of the magic lies in coming up with the right topology and in teaching the subnet manager how to properly discover and manage the network. Oracle's Infiniband switches come with pre-integrated, highly available fabric management with seamless integration into Oracle Enterprise Manager Ops Center.
</li></ul>
<p>In short: Oracle elevated the OFED InfiniBand stack into an enterprise-class networking infrastructure. Many years and multiple teams of manpower went into the above improvements - this is something you can only get from Oracle, because no other InfiniBand vendor can give you these features across the whole stack!</p>
<h2>Exabus: Because it's not About the Size of Your Network, it's How You Use it!</h2>
<p>So let's assume that you somehow were able to get your hands on an enterprise-class IB driver stack. Or maybe you don't care and are just happy with the standard OFED one? Anyway, the next step is to actually leverage that InfiniBand performance. Here are the choices:</p>
<ol>
<li>Use traditional TCP/IP on top of the InfiniBand stack,</li>
<li>Develop your own integration between your middleware and the lower-level (but faster) InfiniBand protocols.</li>
</ol>
<p>While more bandwidth is always a good thing, it's actually the low latency that enables superior performance for your applications when running on any networking infrastructure: The lower the latency, the faster the response travels through the network and the more transactions you can close per second.</p>
<p>The reason why InfiniBand is such a low latency technology is that it gets rid of most if not all of your traditional networking protocol stack: Data is literally beamed from one region of RAM in one server into another region of RAM in another server with no kernel/drivers/UDP/TCP or other networking stack overhead involved!</p>
<p>Which makes option 1 a no-go: Adding TCP/IP on top of InfiniBand is like adding training wheels to your racing bike. It may be ok in the beginning and for development, but it's not quite the performance IB was meant to deliver.</p>
<p>Which only leaves option 2: Integrating your middleware with fast, low-level InfiniBand protocols. And this is what Exalogic's "Exabus" technology is all about. Here are a few Exabus features that help applications leverage the performance of InfiniBand in Exalogic:</p>
<ul>
<li><strong><a href="http://en.wikipedia.org/wiki/Remote_direct_memory_access">RDMA</a> and SDP integration</strong> at the JDBC driver level (SDP), for Oracle Weblogic (SDP), Oracle Coherence (RDMA), Oracle Tuxedo (RDMA) and the new Oracle Traffic Director (RDMA) on Exalogic. Using these protocols, middleware can communicate a lot faster with each other and the Oracle database than by using standard networking protocols,</li>
<li><strong>Seamless Integration of Ethernet over InfiniBand</strong> from Exalogic's Gateway switches into the OS,</li>
<li><strong>Oracle Weblogic optimizations</strong> for handling massive amounts of parallel transactions. Because if you have an 8-lane Autobahn, you also need to improve your ramps so you can feed it with many cars in parallel.</li>
<li><strong>Integration of Weblogic with Oracle Exadata</strong> for faster performance, optimized session management and failover.</li>
</ul>
<p>As you see, “Exabus” is Oracle's word for describing all the InfiniBand enhancements Oracle put into Exalogic: OFED stack enhancements, protocols for faster IB access, and InfiniBand support and optimizations at the virtualization and middleware level. All working together to deliver the full potential of InfiniBand performance.</p>
<p>Who else has 100% control over their middleware so they can develop their own low-level protocol integration with InfiniBand? Even if you take an open source approach, you're looking at years of development work to create, test and support a whole new networking technology in your middleware!</p>
<h2>The Extras: Less Hassle, More Productivity, Faster Time to Market</h2>
<p>And then there are the other advantages of <a href="http://constantin.glez.de/blog/2011/12/rise-engineered-systems">Engineered Systems</a> that are true for Exalogic the same as they are for every other Engineered System:</p>
<ul>
<li><strong>One simple purchasing process</strong>: No headaches due to endless RFPs and no “Will X work with Y?” uncertainties.</li>
<li><strong>Everything has been engineered together</strong>: All kinds of bugs and problems have been already fixed at the design level that would have only manifested themselves after you have built the system from scratch. </li>
<li><strong>Everything is built, tested and integrated at the factory level</strong></li>
<p>. Less integration pain for you, faster time to market.</p>
<li><strong>Every Exalogic machine world-wide is identical to Oracle's own machines in the lab</strong>: Instant replication of any problems you may encounter, faster time to resolution.</li>
<li><strong>Simplified patching, management and operations.</strong></li>
<li><strong>One throat to choke</strong>: Imagine finger-pointing hell for systems that have been put together using several different vendors. Oracle's Engineered Systems have a single phone number that customers can call to get their problems solved.</li>
<p>For more business-centric values, read <em><a href="http://constantin.glez.de/blog/2012/03/business-value-engineered-systems">The Business Value of Engineered Systems</a></em>.</p>
<h2>Conclusion: Buy Exalogic, or get ready for a 6-12 Month Science Project</h2>
<p>And here's the reason why it's not easy to "build your own Exalogic": There's a lot of work required to make such a system fly. In fact, anybody who is starting to "just put together a bunch of servers and an InfiniBand network" is really looking at a 6-12 month science project.</p>
<p>And the outcome is likely to not be very enterprise-class. And it won't have Exalogic's performance either.</p>
<p>Because building an Engineered System is literally rocket science: It takes a lot of time, effort, resources and many iterations of design/test/analyze/fix to build such a system. That's why InfiniBand has been reserved for HPC scientists for such a long time.</p>
<p>And only Oracle can bring the power of InfiniBand in an enterprise-class, ready-to use, pre-integrated version to customers, without the develop/integrate/support pain.</p>
<p>For more details, check the new <a href="http://www.oracle.com/us/products/middleware/exalogic-elastic-cloud-overview-489031.pdf">Exalogic overview white paper</a> which was updated only recently.</p>
<p>P.S.: Thanks to my colleagues Ola, <a href="http://pauldone.blogspot.co.uk/">Paul</a>, <a href="http://exablurb.blogspot.co.uk/">Don</a> and Andy for helping me put together this article!</p>
</ul><div class="flattr-box">'''''

</div><!-- google_ad_section_end --><div class="sexybookmarks-default-4341"/>
<p><a href="http://feedads.g.doubleclick.net/~a/Y62QiOEb_A4ddkaap4Hhbwx7C1U/0/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/Y62QiOEb_A4ddkaap4Hhbwx7C1U/0/di"/></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Y62QiOEb_A4ddkaap4Hhbwx7C1U/1/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/Y62QiOEb_A4ddkaap4Hhbwx7C1U/1/di"/></a></p><img height="1" src="http://feeds.feedburner.com/~r/ConstantThinking/~4/58KM4sg1WPs" width="1"/></div>
    </summary>
    <updated>2012-04-10T12:54:43Z</updated>
    <category scheme="http://constantin.glez.de/category/engineered-systems" term="Engineered Systems"/>
    <category scheme="http://constantin.glez.de/tag/engineered-systems" term="Engineered Systems"/>
    <category scheme="http://constantin.glez.de/tag/infiniband" term="Infiniband"/>
    <category scheme="http://constantin.glez.de/tag/integration" term="Integration"/>
    <category scheme="http://constantin.glez.de/tag/latency" term="latency"/>
    <category scheme="http://constantin.glez.de/tag/oracle" term="Oracle"/>
    <category scheme="http://constantin.glez.de/tag/performance" term="performance"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://constantin.glez.de/blog/2012/04/how-avoid-your-next-12-month-science-project</feedburner:origLink>
    <author>
      <name>constant</name>
    </author>
    <source>
      <id>http://constantin.glez.de</id>
      <link href="http://constantin.glez.de" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/ConstantThinking" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Constant Thinking</title>
      <updated>2012-05-18T07:37:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://dtrace.org/blogs/ahl/?p=1114</id>
    <link href="http://dtrace.org/blogs/ahl/2012/04/09/dtrace-conf12-wrap-up/" rel="alternate" type="text/html"/>
    <title>dtrace.conf(12) wrap-up</title>
    <summary>For the second time in as many quadrennial dtrace.confs, I was impressed at how well the unconference format worked out. Sharing coffee with the DTrace community, it was great to see some of the oldest friends of DTrace — Jarod Jenson, Stephen O’Grady, Jonathan Adams to name a few — and to put faces to [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://dtrace.org/blogs/ahl/files/2012/04/dtrace.conf12_tee.png"><img alt="" class="alignright size-full wp-image-1124" height="96" src="http://dtrace.org/blogs/ahl/files/2012/04/dtrace.conf12_tee.png" title="dtrace.conf(12) tee" width="96"/></a>For the <a href="http://dtrace.org/blogs/ahl/2008/05/05/dtrace-conf-post-post-mortem/">second time</a> in as many quadrennial <a href="http://wiki.smartos.org/display/DOC/dtrace.conf">dtrace.conf</a>s, I was impressed at how well the unconference format worked out. Sharing coffee with the DTrace community, it was great to see some of the oldest friends of DTrace — <a href="http://dl.acm.org/citation.cfm?id=1117399">Jarod Jenson</a>, <a href="https://twitter.com/#!/sogrady">Stephen O’Grady</a>, <a href="https://blogs.oracle.com/jwadams/">Jonathan Adams</a> to name a few — and to put faces to names — <a href="https://twitter.com/#!/slfritchie">Scott Fritchie</a>, <a href="https://twitter.com/#!/dlsspy">Dustin Sallings</a>, Blake Irvin, etc — of the many new additions to the DTrace community. You can see all the <a href="http://wiki.smartos.org/display/DOC/dtrace.conf+Schedule">slides and videos</a>; these are my thoughts and notes on the day.</p>
<p><a href="http://dtrace.org/blogs/bmc/">Bryan</a> provided a typically eloquent review of the state of the community. DTrace development is alive and well — after a lull while Oracle’s acquisition of Sun settled in — with new support for a variety of languages and runtimes, and new products that rely heavily on DTrace as a secret sauce. Bryan laid out some important development goals, areas where many have started straying from the edges of the completed DTrace features into the partially complete or starkly missing. We all then set to work hammering out a loose schedule for the day; I’ll admit that at first I was worried that we’d have too many listeners and not enough presenters, but the schedule quickly filled — and with more topics than we’d end up having time to cover.</p>
<h3>User-land CTF and Dynamic Translators</h3>
<p>DTrace, from its inception, has been a systemic analysis tool, but the earliest development focused on kernel observability — not a surprise since Bryan, Mike, and I developed it while working in the Solaris kernel development. After its use spread (quickly) beyond the kernel team, use shifted more and more to features focused on understanding C and C++ applications in user-land, and then to applications written in a variety of higher-level languages — Java, Ruby, Perl, Javascript, Erlang, etc. <a href="http://dtrace.org/blogs/dap/2011/12/13/usdt-providers-redux/">User-land Statically Defined Tracing</a> (USDT) is the DTrace facility that enables rich tracing of higher-level languages. It was a relatively late addition to DTrace (integrated in 2004, well after the initial integration in 2003), and since then we’ve learned a lot about what we got right, what we got wrong, and where it’s rough — <a href="https://twitter.com/#!/bcantrill/status/187246955464884226">in some cases very rough</a> — around the edges.</p>
<p>In his opening remarks, Bryan identified USDT improvements as a key area for the community’s focus. In DTrace development we tried to focus on making the impossible possible rather than making the possible easier. In its current form, some things are still impossible with DTrace, namely consumption of type structures from user-land programs; stable, non-privileged use of DTrace; and support for different runtime versions. <a href="http://dtrace.org/blogs/dap/">Dave Pacheco</a> and I took the first  slot on the schedule and spoke (at length — sorry) about solutions to these problems.</p>
<p>While others had the benefit of a bit more time to prepare, I did have the advantage of spending many years idly contemplating the problem space and possible solutions. On the subject of user-land type information (in the form of CTF), I identified the key parts of the code that would would need some work. For the USDT enhancements, we discussed dynamic translators — D code that would be linked and executed at runtime, contrasted with today’s static translators that are compiled into a D program — how they would address the problem, and how these ideas could be extended to the kernel (for once, user-land is actually a bit ahead).</p>
<p>I’ll go into the details of our off the cuff proposals, and delve into the code to firm up those ideas in a future blog post. Beyond the extensive implementation work we laid out, the next step is to gather the most complicated, extant USDT providers and proposals for other providers, and figure out what they should look like in the new, dynamic translator world.</p>
<h3>The D Language</h3>
<p>Next up, my long-time colleague, DTrace contributor, <a href="http://dtrace.org/blogs/eschrock/">Eric Schrock</a> led the discussion on D language additions. The format of a D program is heavily tied to DTrace’s implementation: all clauses must trace a fixed amount of data, and infinite loops are forbidden. For this reason, D lacks the backward branches needed for traditional looping, subroutines for common code, and if/else clauses for control flow. Each of these has a work-alike — unrolled loops, macros, and predicates or the ternary operator — but their absence renders D confusing to some — especially those unaware of the motivation. Further, the D language need not necessarily hold the underlying implementation so central.</p>
<p>Eric discussed some proposals for how each might be addressed, and I noted that it would be possible to create a prototype environment where we could try out these “D++” features by compiling into D work-alikes. The next step is to identify the most complicated D scripts, and see what they might look like for various incarnations of those language features.</p>
<h3>Work with DTrace</h3>
<p>The next few sessions focused not on changes to DTrace, but interesting work done using DTrace:</p>
<p>John Thompson of Sony talked about their port of DTrace to the Playstation Vita (!). Sony developers are given access to DTrace, but found it to be unfamiliar and unapproachable. John spoke his attempts to remedy this by replacing D with a C++-like interface which he implemented by replacing the D compiler with Clang.</p>
<p>My Fishworks colleague, <a href="https://twitter.com/brendangregg">Brendan Gregg</a>, showed some of beautiful visualizations they’ve been developing at Joyent, and talked about the analyses those visualizations enabled. As always, it was fascinating stuff. If you don’t read <a href="http://dtrace.org/blogs/brendan">Brendan’s blog</a>, you really should. Long-time DTrace advocate, <a href="http://twitter.com/postwait">Theo Schlossnagle</a>, talked about the visualizations they’re doing in <a href="http://circonus.com/">Circonus</a> — also fascinating stuff for anyone thinking about how to present system activity in comprehensible ways. <a href="http://twitter.com/richardelling">Richard Elling</a> showed the DTrace-based visualizations Nexenta used at VMworld to rave reviews.</p>
<p><a href="https://twitter.com/mcavage">Mark Cavage</a> <a href="http://mcavage.github.com/presentations/dtrace_conf_2012-04-03/">presented</a> Joyent’s work bringing DTrace to node.js; <a href="http://twitter.com/slfritchie">Scott Fritchie</a> <a href="http://www.snookles.com/scott/publications/dtrace.conf-2012.erlang-vm.pdf">talked about</a> DTrace for Erlang. Both were useful sources of ideas for how we could improve USDT.</p>
<p>Ryan Stone presented the state of DTrace on FreeBSD. That DTrace is not enabled in the build by default remains a key obstacle for adoption. I hope that Ryan et al. are able to persuade the FreeBSD leadership that their licensing fears are misguided.</p>
<h3>DTrace for OEL</h3>
<p>I was delighted that Kris van Hees was able to attend to present the Oracle port to Linux. DTrace for OEL was <a href="http://dtrace.org/blogs/ahl/2011/10/05/dtrace-for-linux-2/">announced at Oracle Open World 2011</a>, but the initial beta <a href="http://dtrace.org/blogs/ahl/2011/10/10/oel-this-is-not-dtrace/">didn’t live up to its billing</a> at OOW. As is often the case, this was more a failure of messaging than of engineering. Kris and his team are making steady progress. While it’s not yet in the public beta, they have the kernel function boundary tracing provider (fbt) implemented. Most heartening of all, Oracle intends to keep DTrace for OEL moving forward as the community evolves and improves DTrace — rather than forking it. How that plays out, and what that means for DTrace on Oracle Solaris will be interesting to see, but it’s great to hear that Kris sees the value of DTrace ubiquity and DTrace compatibility.</p>
<p>As was remarked several times, having DTrace available on the fastest growing deployment platform will be the single most significant accelerator for DTrace adoption. The work Kris and his team at Oracle are doing is probably the most important in the DTrace ecosystem, and I think that I speak for the entire DTrace community in offering to assist in any way possible.</p>
<h3>A ZFS DTrace Provider</h3>
<p>Matt Ahrens and George Wilson — respectively the co-inventor of ZFS, and the preeminent SPA developer — presented a <a href="https://docs.google.com/a/delphix.com/document/d/1wOxlXX6nLm56fccIUPS6iD1pgkX57OwdD78YhQWC8oQ/edit">proposal for a DTrace provider for ZFS</a>. ZFS is a highly sophisticated filesystem, but one that is also difficult to understand. Building in rich instrumentation is going to be a tremendous step forward for anyone using ZFS (for example, our mutual employer, Delphix).</p>
<h3>Whither DTrace?</h3>
<p>Jarod Jenson — the first DTrace user outside of Sun — took the stage in the final session to talk about DTrace adoption. Jarod has made DTrace a significant part of his business for many years. What continues to amazing him, despite numerous presentations, demonstrations, and lessons, is the relatively low level of DTrace adoption. DTrace is a tool that comes alive in the hands of a skilled, scientific, incisive practitioner — and in all of those, Jarod is superlative — but it can have a high bar of entry. There were many concrete suggestions for how to improve DTrace adoption. Most of them didn’t hold water for me — different avenue for education, further documentation, community outreach, higher level tools, visualizations, etc. — but two were quite compelling: DTrace for Linux, and DTrace on <a href="http://stackoverflow.com">stackoverflow.com</a> (and the like). I don’t know how much room there is to participate in the former, but by all means if there are DTrace one-liners that solve problems (on Mac OS X for example), post them, and get people covertly using DTrace.</p>
<p>The core DTrace community is growing. It was great to see old friends like Steve Peters who worked on porting DTrace to Mac OS X in the same room as Kris van Hees as he spoke about his port to Linux. It was inspiring to see so many new members of the community, eager to use, build and improve DTrace. And personally it inspired me to get back into the code to finish up some projects I had in flight, and to chart out the course for some of the projects we discussed.</p>
<p>Thanks to everyone who attended dtrace.conf in person or online. And thanks especially to Deirdre Straughan who made it happen.</p></div>
    </content>
    <updated>2012-04-09T18:03:09Z</updated>
    <category term="DTrace"/>
    <category term="BryanCantrill"/>
    <category term="DavePacheco"/>
    <category term="dtrace.conf"/>
    <category term="EricSchrock"/>
    <category term="GeorgeWilson"/>
    <category term="KrisvanHees"/>
    <category term="MattAhrens"/>
    <category term="OEL"/>
    <author>
      <name>ahl</name>
    </author>
    <source>
      <id>http://dtrace.org/blogs/ahl</id>
      <link href="http://dtrace.org/blogs/ahl/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://dtrace.org/blogs/ahl" rel="alternate" type="text/html"/>
      <subtitle>Thoughts on software, computing and technology</subtitle>
      <title>Adam Leventhal's blog</title>
      <updated>2012-05-03T00:12:10Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.eall.com.br/blog/?p=2835</id>
    <link href="http://feedproxy.google.com/~r/LealsBlog/~3/rdQsLBBZB8o/" rel="alternate" type="text/html"/>
    <title>Inferno</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">103 anos de Glorias!!!
<p><a href="http://feedads.g.doubleclick.net/~a/NxcnFYZWvm1M6VKfHPWfuMdlr3U/0/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/NxcnFYZWvm1M6VKfHPWfuMdlr3U/0/di"/></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/NxcnFYZWvm1M6VKfHPWfuMdlr3U/1/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/NxcnFYZWvm1M6VKfHPWfuMdlr3U/1/di"/></a></p><img height="1" src="http://feeds.feedburner.com/~r/LealsBlog/~4/rdQsLBBZB8o" width="1"/></div>
    </summary>
    <updated>2012-04-08T22:50:17Z</updated>
    <category term="Colorado"/>
    <category term="Futebol"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.eall.com.br/blog/?p=2835</feedburner:origLink>
    <author>
      <name>Marcelo Leal</name>
    </author>
    <source>
      <id>http://www.eall.com.br/blog</id>
      <link href="http://www.eall.com.br/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/LealsBlog" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Computing Science, posix rules, life rules, no rules...</subtitle>
      <title>blog</title>
      <updated>2012-05-14T16:12:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.c0t0d0s0.org/archives/7456-guid.html</id>
    <link href="http://feedproxy.google.com/~r/Wwwc0t0d0s0org/~3/vzLYNnTjEJE/7456-Deep-insight-into-the-behaviour-of-the-SPARC-T4-processor.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/2.5/" rel="license"/>
    <title>Deep insight into the behaviour of  the SPARC T4 processor</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Ruud van der Pas and Jared Smolens wrote an really interesting whitepaper about the SPARC T4 and its behaviour in regard with certain code: <a href="http://www.oracle.com/technetwork/server-storage/sun-sparc-enterprise/documentation/t-series-latency-1579242.pdf">How the SPARC T4 Processor Optimizes Throughput Capacity: A Case Study</a>. In this article the authors compare and explain the behaviour of the the UltraSPARC T4 and T2+ processor in order to highlight some of the strengths of the SPARC T-series processors in general and the T4 in particular. 
    <img height="1" src="http://feeds.feedburner.com/~r/Wwwc0t0d0s0org/~4/vzLYNnTjEJE" width="1"/></div>
    </content>
    <updated>2012-04-07T13:24:07Z</updated>
    <category term="English"/>
    <category term="Sun/Oracle"/>
    <category term="Technology"/><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.c0t0d0s0.org/archives/7456-Deep-insight-into-the-behaviour-of-the-SPARC-T4-processor.html</feedburner:origLink>
    <author>
      <name>Joerg Moellenkamp</name>
      <email>nospam@example.com</email>
    </author>
    <source>
      <id>http://www.c0t0d0s0.org/</id>
      <link href="http://www.c0t0d0s0.org/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Wwwc0t0d0s0org" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>the sun in a lighthungry universe</subtitle>
      <title>c0t0d0s0.org</title>
      <updated>2012-05-16T06:37:02Z</updated>
    </source>
  </entry>
</feed>

