<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Information in Rotation &#187; Storing data</title>
	<atom:link href="http://appliedrotation.com/Techblog/?cat=11&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://appliedrotation.com/Techblog</link>
	<description>Dan Rabin writes on metadata, data, the information they represent and how.</description>
	<lastBuildDate>Sun, 01 Nov 2015 20:21:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Disk drive reliability in detail</title>
		<link>http://appliedrotation.com/Techblog/?p=37</link>
		<comments>http://appliedrotation.com/Techblog/?p=37#comments</comments>
		<pubDate>Mon, 29 Jun 2009 17:56:15 +0000</pubDate>
		<dc:creator>Dan Rabin</dc:creator>
				<category><![CDATA[Storing data]]></category>

		<guid isPermaLink="false">http://appliedrotation.com/Techblog/?p=37</guid>
		<description><![CDATA[I tend to get abstract and philosophical about data here, and it&#8217;s good to have have an occasional splash in the cold water of how the stuff gets stored. Jon Elerath&#8217;s article on hard disk reliability in the June 2009 &#8230; <a href="http://appliedrotation.com/Techblog/?p=37">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I tend to get abstract and philosophical about data here, and it&#8217;s good to have have an occasional splash in the cold water of how the stuff gets stored.</p>
<p>Jon Elerath&#8217;s <a href="http://portal.acm.org/citation.cfm?id=1516059">article on hard disk reliability in the June 2009 <em>Communications of the ACM</em></a> (may require ACM login) gives a lot of detail about the different kinds of disk storage error and appropriate countermeasures.  He gets down to the level of things that scratch vs. things that smear (kind of like H.P. Lovecraft for the archivally-minded).</p>
<p>The big takeaway is that there are big obvious crash-failures like the bearing getting wobbly or servo tracks being trashed: these make the drive stop working, and you rebuild from something you still trust.  And then there are insidious quiet read/write failures that you can only counteract with a policy of &quot;scrubbing&quot; drives proactively.</p>
<p>Now that I buy storage by the 1.5 terabytes/spindle, I really should do something to dissuade Those Whose Names Are Random from assimilating my data to the Outer Abyss of Maximum Entropy.  If you should happen to find some of your goats missing, better not to ask&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://appliedrotation.com/Techblog/?feed=rss2&#038;p=37</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick addendum about the Chandler Repository</title>
		<link>http://appliedrotation.com/Techblog/?p=17</link>
		<comments>http://appliedrotation.com/Techblog/?p=17#comments</comments>
		<pubDate>Wed, 31 Jan 2007 07:40:53 +0000</pubDate>
		<dc:creator>Dan Rabin</dc:creator>
				<category><![CDATA[Storing data]]></category>

		<guid isPermaLink="false">http://appliedrotation.com/Techblog/?p=17</guid>
		<description><![CDATA[If my brief article about the Chandler Repository caught your interest, you might want to check out Andi&#8217;s blog, in which he discusses some of the design and implementation issues. Accounts of software design from the time of implementation are &#8230; <a href="http://appliedrotation.com/Techblog/?p=17">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If my brief article about the <a href="http://appliedrotation.com/Techblog/?p=16">Chandler Repository</a> caught your interest, you might want to check out Andi&#8217;s <a href="http://blogs.osafoundation.org/chandlerdb/">blog</a>, in which he discusses some of the design and implementation issues.<br />
Accounts of software design from the time of implementation are incredibly valuable.  Maybe someday we&#8217;ll have a search tool that lets you enter your implementation ideas and gives you back the accounts of people who have tried them before.</p>
]]></content:encoded>
			<wfw:commentRss>http://appliedrotation.com/Techblog/?feed=rss2&#038;p=17</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Chandler Repository</title>
		<link>http://appliedrotation.com/Techblog/?p=16</link>
		<comments>http://appliedrotation.com/Techblog/?p=16#comments</comments>
		<pubDate>Tue, 30 Jan 2007 23:35:14 +0000</pubDate>
		<dc:creator>Dan Rabin</dc:creator>
				<category><![CDATA[Storing data]]></category>

		<guid isPermaLink="false">http://appliedrotation.com/Techblog/?p=16</guid>
		<description><![CDATA[I spent a few hours yesterday in the company of Andi Vajda, lead developer of the data repository component of the Open Source Applications Foundation&#8217;s Chandler project. We talked about the technical details of the repository. The Chandler repository is &#8230; <a href="http://appliedrotation.com/Techblog/?p=16">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I spent a few hours yesterday in the company of Andi Vajda, lead developer of the data repository component of the Open Source Applications Foundation&#8217;s Chandler project.  We talked about the technical details of the repository.</p>
<p>The Chandler repository is an object database with some interesting design features:</p>
<ul>
<li>All links between objects are bidirectional.  Andi&#8217;s main motivation for this choice was to be able to guarantee to clients that references aren&#8217;t dangling without having to implement a garbage collector.</li>
<li>All objects have universally unique identifiers (UUIDs) to make equality testing trivial.</li>
<li>Repositories are versioned.  Aside from the usual rollback capabilities this enables, client code can inspect a particular object as it was in any extant version.</li>
<li>In addition to a conventional notion of class inheritance, the Chandler repository supports a notion of &#8220;cloud inheritence&#8221; for merging data schemas when copying objects from one database to another.</li>
</ul>
<p>The repository layer is cleanly separated from the layer of Chandler that knows the semantics of calendar items, tasks, and so forth.  That layer is responsible for mapping its items to repository items.  Interchange of personal information is carried out at this higher layer, not by the repository.  There&#8217;s an interesting bit of Python metaprogramming by <a href="http://dirtsimple.org/programming/index.html">Philip Eby</a> that hides some of the mapping complexity from the application-level programmer.</p>
<p>I&#8217;m going to have a look at the source to see how this works.  There are popular application-building tools that carry out object/relational mappings (moving between the objects that are convenient to use in code and the representations that are convenient in the usual relational database), but this is the first time I&#8217;ve come face-to-face with an object/<em>object</em> mapping tool.  I&#8217;ll report back when I&#8217;m better informed.</p>
<p>[Thanks to Andi for fact-checking this post!]</p>
]]></content:encoded>
			<wfw:commentRss>http://appliedrotation.com/Techblog/?feed=rss2&#038;p=16</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
