db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <Richard.Hille...@Sun.COM>
Subject Re: Hard vs. Soft Upgrade
Date Thu, 23 Mar 2006 21:49:41 GMT
Daniel John Debrunner wrote:

>Deepa Remesh wrote:
>
>  
>
>>On 3/22/06, Rick Hillegas <Richard.Hillegas@sun.com> wrote:
>>
>>    
>>
>>>It appears that changes to the database are partitioned into two
>>>buckets: those accomplished by Hard Upgrade and those accomplished by
>>>Soft Upgrade. Examples of Soft Upgrade changes appear under item (2)
>>>under the heading "Upgrading System Catalogs" on the webpage
>>>http://db.apache.org/derby/papers/versionupgrade.html#Version+Upgrade+Mechanism.
>>>These are useful examples.
>>>      
>>>
>>I was looking at this document and it is not very clear to me what can
>>be categorized as "safe changes" as mentioned in this statement:
>>"Apply "safe changes" from category 2) in a single transaction. An
>>example would be fixing incorrect information. ". 
>>    
>>
>
>Does this help (javadoc for DD_Version.applySafeChanges)?
>
>http://db.apache.org/derby/javadoc/engine/org/apache/derby/impl/sql/catalog/DD_Version.html#applySafeChanges(org.apache.derby.iapi.store.access.TransactionController,%20int,%20int)
>
>  
>
It's nice to see this documented, but it's not clearing up my confusion. 
The definition given here implies that a change is "safe" as long as you 
can reboot the database using old versions of Derby. What if, many hours 
after booting the old Derby version, a method returns odd results or the 
server actually crashes?

So far I have seen only two examples of "safe" changes

o changing the nullability of a system column
o changing the value in a set of rows to support new functionality (I'm 
a bit unclear on what this means, a concrete example would help)

It's hard for me to generalize from these two examples. Maybe the answer is:

o We can't spell out the rules yet because we haven't played with this 
scheme long enough.
o Over several releases, we will collect more examples and distill a 
definition based on a case-by-case study of every upgrade-induced 
database change we introduce

Regards,
-Rick

Mime
View raw message