Chris Pollett > Students >
An

    ( Print View )

    [Bio]

    [Project Blog]

    [CS297Proposal]

    [Del1]

    [CS297ProposalB]

    [Del2]

    [Del3]

    [Del4]

    [CS297Report-PDF]

    [CS298Proposal]

    [CS298Report-PDF]

    [CS298Presentation-PDF]

    [Source code-ZIP]

                          

























CS297-298 Project News Feed

Feature 17 - Automate Verifying Result
   (Posted on Mon, 10 Jan 2005 18:40:29 PST .)
Feature Description:
 With this feature, user no longer have to go into output file and 
check the result for ARIES or NATIX.  For example, user can add expected result into a flat file 
name in the following directory:

verifyFile = c://an//cs297//xmldb//unit//verify//file-name.txt

Solution:
 Wrote ThVerifyResult which contains a loop through the lines in the verify file and look for it in output file.
   


Feature 16 - I/O
   (Posted on Mon, 10 Jan 2005 18:34:42 PST .)
Feature Description: 
 Add a new property in dbsystem.properties to direct 
output from the program to a file or to standard IO.

Solution:
 Done
   


Bug 15 - Format page content to be Viewable.
   (Posted on Mon, 10 Jan 2005 18:24:59 PST .)
Bug Description:
 When a page is written to disk, it's a block of bytes which is 
hard to see sometime.

Solution:
 The page still write to disk as it used to be. 

However, for debug purposes, add code to format the page so user can look into its content.

This new page format is named as page-number.pageformatted
   


Bug 14 - CLR written for rollback operations only
   (Posted on Mon, 10 Jan 2005 18:19:41 PST .)
Bug Description: 
 CLR is written for rollback operation only, not during restart recovery.

Solution:
  Fixed
   


Bug 12 - ThLogRecord implements Comparable
   (Posted on Mon, 10 Jan 2005 18:18:10 PST .)
Feature Description: Implement sort for ArrayList of log record.

Solution:
public class ThLogRecord implements Comparable
{
.....
public int compareTo(Object obj) 
  {
     ThLogRecord log = (ThLogRecord) obj;
     int result = lsN.compareTo(log.getLSN());
     if (result < 0)
        return 1;
     else if (result > 0)
        return -1;
     return result;       
  }  
}

How to call:
java.util.Collections.sort(redologs); 


Bug 11 - Compensation Log Record (CLR)
   (Posted on Mon, 27 Dec 2004 16:02:34 PST .)
Problem Description:
 Add CLR feature.
   


Bug 10 - Performance Related
   (Posted on Mon, 27 Dec 2004 16:01:29 PST .)
Bug Description:
 During scanning log records phase,
instead of create an instance of every log record and then check to 
see if the log lsn is match with the current lsn, check the lsn of the comming log record. 
If it match with the current, create the log record. If not, skip it.

Fix Description:
 Check for a matched LSN of the interest before create an instance of a log record.

   


Bug 9 - Exception in Redo Phase of Restart Recovery
   (Posted on Mon, 13 Dec 2004 19:46:47 PST .)
Problem Description:
  NullPointerException throws during Restart Recovery for Update and Delete Operations.
  It was because forgot to pass path value when write out log 
records but expect a value when read in.

Fix Description:
  Provide the fix in reateLogRecord function in LogManager.
   


Bug 8 - Restart Recovery for 2 commited Transactions
   (Posted on Mon, 13 Dec 2004 19:40:20 PST .)
Problem Description:
  Suppose T1 update and commited
  T2 also update and commited and with additional updates.
  => Get un-expect values

Fix Description:
  sort log records before calling redos in redo phase.
     


Bug 7 - What's to rollback and what's not
   (Posted on Thu, 09 Dec 2004 13:57:18 PST .)
Problem Description:
 For the case where one transaction updated the document and the second transaction goes in 
and modif on top of it, how should we handle this?

Problem fix:
 For simplicity because of time related and our concentration was on Recovery Manager, we decided ignore locking implementaion. 
Thus, we assume transactions are serializable. 
 We assume UR-committed read (UR)
 We assume that we can't rollback operations that are not nest by other operations.

For example:
 T1 load data into a document.
 T2 insert some data

Up to this point, we can only rollback T2 inserts because:
 T2 updates 
   


Bug 6 - Fixed
   (Posted on Thu, 09 Dec 2004 13:39:43 PST .)
Bug Description:
 This bug affect only when the NATIX switch is on.
 Because PageInterpreter has it's own log records and it won't publish to Log Manager until the 
Page is flushed to disk by Buffer Manager's swapping, it still keep 
the log locally in PageInterpreter.
Thus, during rollbak, Log Manger can't read the log.

Bug Fix:
 Make sure log records are flushed so Log Manager can process it.
   


Bug 6 - Rollback less than suppose to
   (Posted on Wed, 08 Dec 2004 16:20:08 PST .)
Problem Description:
  Rollback Operation rollback less than it suppose to



   


ARIES and NATIX
   (Posted on Tue, 07 Dec 2004 10:33:27 PST .)
Done
   


Bug 5 - Space Map Page
   (Posted on Tue, 07 Dec 2004 10:33:20 PST .)
Can't get Space Map Page to work. It often throws exception if split often.

Solution: Not at the moment.
=> Back out the code for this

   


Bug 4 - Free pages in buffer that no longer needed.
   (Posted on Tue, 30 Nov 2004 10:26:08 PST .)
Bug Description:
 Rollback operation such as LOAD often produce pages contain no longer in use pages.

Fix Description:
 Call buffer manager to free these pages.
   


Bug Fix 3 - High Level Page Map
   (Posted on Mon, 29 Nov 2004 05:06:21 PST .)
1. Bug Description:
 This is actually a new feature.

2. Bug Fix:
 XML structure written to page on disk is named as Space Map Page. 
 Handle overflow: split when this page is overflow by moving 1/2 of struct nodes in the page to the new node.
   


Bug Fix 2 - Structure print out as null values
   (Posted on Mon, 29 Nov 2004 05:00:39 PST .)
1. Bug Description: 
 Structure printed out null values when there is a page swap in Buffer Manager.

 This is because of the mis calculate in offset of nodes during toHex() function. 
   
2. Fix Description:
 re-calculate offset for page.toHex() function.


Bug Fix 1 - Duplicate call to Load Operation
   (Posted on Mon, 29 Nov 2004 04:56:15 PST .)
1. Bug Description: 
 Duplicate call to LOAD operation at parser, cause duplicate call to open data input file and LOAD into xml document.

2. Fix Description:
 In ThParser, reset a local variable before the next iteration.

   


Subsidiary Logging
   (Posted on Tue, 09 Nov 2004 10:21:32 PST .)
Everything breaks right now as the result of changed in page structure
   


Write XML tree structure to disk
   (Posted on Tue, 02 Nov 2004 17:39:14 PST .)
Add code to write XML tree structure to disk.

Status: working.
   


ASCII to HEX Conversion
   (Posted on Tue, 02 Nov 2004 10:20:43 PST .)
Change the way a page is written to disk as file of HEX instead of object.
   


ARIES/NATIX
   (Posted on Tue, 26 Oct 2004 10:50:28 PDT .)
Re-organize program so that we can select recovery methode:

* Create interface IThPage 
* ThPage and ThPageInterpreter implements IThPage.
* ThPageInterpreter extends ThPage.

Status: working. 
   


Update and Rollback for Update Operation
   (Posted on Tue, 26 Oct 2004 10:43:49 PDT .)
* Complete Update and Rollback for UPDATE operation
   


Rollback of Delete & Transactions Interleave
   (Posted on Tue, 12 Oct 2004 10:28:39 PDT .)
* Complete Rollback for DELETE operations.
* Complete test of load, inserts, delete, and rollbacks with transaction interleave.

   


Rollback - Test & Debug
   (Posted on Tue, 05 Oct 2004 13:34:15 PDT .)
Rollback for Load operation is also working.

Debugging on Rollback for Delete Operation.

 Issue: Should we delete the data and do log apply to rollback or just set a deleted bit and do nothing so that during rollback, we only flip back this bit
 
   


Simple Recovery Manager - Rollback
   (Posted on Thu, 30 Sep 2004 15:17:17 PDT .)
+ Add Recovery Manager Class to handle rollback. 

+ Working for the case:
Insert ....
Rollback;

+ Target features:
  More complicated rollback operations.

  More transactions
  
+ Difficulties: handle nesting transactions

+ Target date: 10/05/04


Improve Log Records
   (Posted on Thu, 30 Sep 2004 15:12:08 PDT .)
Add more information used by Recovery Manager

Improve human readability log record for debugging purpose - Change writeUTF() to writebytes().
   


Test Buffer Manager and Modified Storage Manager
   (Posted on Tue, 28 Sep 2004 10:45:31 PDT .)
+ Add more delete operation 
+ Change page size
+ Add more bit that will be used by Recovery manager

Target date: 09/22/04
Done 


Code Clean up
   (Posted on Tue, 14 Sep 2004 10:59:43 PDT .)
Create and make use of Properties file.

Target date: 09/14/04
   


Log Manager
   (Posted on Tue, 14 Sep 2004 10:59:03 PDT .)
Write log records for create, update, insert, and delete operation. 

Target date: 09/22/04
   


Transaction Management
   (Posted on Tue, 14 Sep 2004 10:57:56 PDT .)
Should be able to support nesting Transaction.

Target date: 09/22/04
   


Really Simple Syndication (RSS) Feed...