Update of /cvsroot/cweb/bigdata/src/java/com/bigdata/scaleup In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv2900/src/java/com/bigdata/scaleup Modified Files: PartitionMetadata.java MasterJournal.java SegmentMetadata.java AbstractPartitionTask.java IResourceMetadata.java JournalMetadata.java Log Message: Corrected problem in the interpretation of maximumExtent for an IBufferStrategy vs an IJournal. Working through use of isolatable indices for the triple store. Index: JournalMetadata.java =================================================================== RCS file: /cvsroot/cweb/bigdata/src/java/com/bigdata/scaleup/JournalMetadata.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JournalMetadata.java 8 Mar 2007 18:14:06 -0000 1.1 --- JournalMetadata.java 27 Mar 2007 17:11:41 -0000 1.2 *************** *** 45,48 **** --- 45,49 ---- import java.io.File; + import java.util.UUID; import com.bigdata.journal.Journal; *************** *** 61,65 **** protected final String filename; protected final ResourceState state; ! public File getFile() { return new File(filename); --- 62,67 ---- protected final String filename; protected final ResourceState state; ! protected final UUID uuid; ! public File getFile() { return new File(filename); *************** *** 78,81 **** --- 80,87 ---- } + public UUID getUUID() { + return uuid; + } + public JournalMetadata(Journal journal, ResourceState state) { *************** *** 90,94 **** this.state = state; } ! } \ No newline at end of file --- 96,102 ---- this.state = state; + this.uuid = journal.getRootBlockView().getUUID(); + } ! } Index: IResourceMetadata.java =================================================================== RCS file: /cvsroot/cweb/bigdata/src/java/com/bigdata/scaleup/IResourceMetadata.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** IResourceMetadata.java 8 Mar 2007 18:14:06 -0000 1.1 --- IResourceMetadata.java 27 Mar 2007 17:11:41 -0000 1.2 *************** *** 45,51 **** --- 45,53 ---- import java.io.File; + import java.util.UUID; import com.bigdata.journal.Journal; import com.bigdata.objndx.IndexSegment; + import com.bigdata.objndx.IndexSegmentMetadata; /** *************** *** 72,75 **** --- 74,83 ---- public ResourceState state(); + /** + * The unique identifier for the resource (the UUID found in either the + * journal root block or the {@link IndexSegmentMetadata}). + */ + public UUID getUUID(); + // public int hashCode(); // Index: AbstractPartitionTask.java =================================================================== RCS file: /cvsroot/cweb/bigdata/src/java/com/bigdata/scaleup/AbstractPartitionTask.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AbstractPartitionTask.java 27 Mar 2007 14:34:22 -0000 1.3 --- AbstractPartitionTask.java 27 Mar 2007 17:11:41 -0000 1.4 *************** *** 257,268 **** File outFile = master.getSegmentFile(name, partId, segId); ! new IndexSegmentBuilder(outFile, master.tmpDir, src.rangeCount( ! fromKey, toKey), src.rangeIterator(fromKey, toKey), ! branchingFactor, valSer, useChecksum, recordCompressor, ! errorRate, indexUUID); IResourceMetadata[] resources = new SegmentMetadata[] { new SegmentMetadata( ! "" + outFile, outFile.length(), ! ResourceState.New) }; updatePartition(resources); --- 257,268 ---- File outFile = master.getSegmentFile(name, partId, segId); ! IndexSegmentBuilder builder = new IndexSegmentBuilder(outFile, ! master.tmpDir, src.rangeCount(fromKey, toKey), src ! .rangeIterator(fromKey, toKey), branchingFactor, ! valSer, useChecksum, recordCompressor, errorRate, indexUUID); IResourceMetadata[] resources = new SegmentMetadata[] { new SegmentMetadata( ! "" + outFile, outFile.length(), ResourceState.New, ! builder.segmentUUID) }; updatePartition(resources); *************** *** 345,351 **** // build the merged index segment. ! new IndexSegmentBuilder(outFile, null, mergeItr.nentries, ! new MergedEntryIterator(mergeItr), branchingFactor, valSer, ! useChecksum, recordCompressor, errorRate, indexUUID); // close the merged leaf iterator (and release its buffer/file). --- 345,352 ---- // build the merged index segment. ! IndexSegmentBuilder builder = new IndexSegmentBuilder(outFile, ! null, mergeItr.nentries, new MergedEntryIterator(mergeItr), ! branchingFactor, valSer, useChecksum, recordCompressor, ! errorRate, indexUUID); // close the merged leaf iterator (and release its buffer/file). *************** *** 388,395 **** newSegs[0] = new SegmentMetadata(oldSeg.filename, oldSeg.nbytes, ! ResourceState.Dead); ! newSegs[1] = new SegmentMetadata(outFile.toString(), outFile.length(), ! ResourceState.Live); mdi.put(fromKey, new PartitionMetadata(0, segId + 1, newSegs)); --- 389,396 ---- newSegs[0] = new SegmentMetadata(oldSeg.filename, oldSeg.nbytes, ! ResourceState.Dead, oldSeg.uuid); ! newSegs[1] = new SegmentMetadata(outFile.toString(), outFile ! .length(), ResourceState.Live, builder.segmentUUID); mdi.put(fromKey, new PartitionMetadata(0, segId + 1, newSegs)); Index: SegmentMetadata.java =================================================================== RCS file: /cvsroot/cweb/bigdata/src/java/com/bigdata/scaleup/SegmentMetadata.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SegmentMetadata.java 8 Mar 2007 18:14:05 -0000 1.3 --- SegmentMetadata.java 27 Mar 2007 17:11:41 -0000 1.4 *************** *** 45,48 **** --- 45,49 ---- import java.io.File; + import java.util.UUID; import com.bigdata.objndx.IndexSegment; *************** *** 71,75 **** final public ResourceState state; ! public SegmentMetadata(String filename,long nbytes,ResourceState state) { this.filename = filename; --- 72,78 ---- final public ResourceState state; ! final public UUID uuid; ! ! public SegmentMetadata(String filename,long nbytes,ResourceState state, UUID uuid ) { this.filename = filename; *************** *** 79,82 **** --- 82,87 ---- this.state = state; + this.uuid = uuid; + } *************** *** 88,92 **** SegmentMetadata o2 = (SegmentMetadata)o; ! if(filename.equals(o2.filename) && nbytes==o2.nbytes && state == o2.state) return true; return false; --- 93,99 ---- SegmentMetadata o2 = (SegmentMetadata)o; ! if (filename.equals(o2.filename) && nbytes == o2.nbytes ! && state == o2.state && uuid.equals(o2.uuid)) ! return true; return false; *************** *** 105,108 **** --- 112,119 ---- return state; } + + public UUID getUUID() { + return uuid; + } } Index: PartitionMetadata.java =================================================================== RCS file: /cvsroot/cweb/bigdata/src/java/com/bigdata/scaleup/PartitionMetadata.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PartitionMetadata.java 8 Mar 2007 18:14:06 -0000 1.3 --- PartitionMetadata.java 27 Mar 2007 17:11:41 -0000 1.4 *************** *** 46,50 **** --- 46,52 ---- import java.io.DataInputStream; import java.io.DataOutputStream; + import java.io.Externalizable; import java.io.IOException; + import java.util.UUID; import com.bigdata.objndx.IValueSerializer; *************** *** 52,58 **** /** ! * A description of the {@link IndexSegment}s containing the user data for ! * a partition. ! * * @author <a href="mailto:tho...@us...">Bryan Thompson</a> * @version $Id$ --- 54,63 ---- /** ! * A description of the {@link IndexSegment}s containing the user data for a ! * partition. ! * ! * FIXME add ordered UUID[] of the data services on which the index partition ! * has been mapped. ! * * @author <a href="mailto:tho...@us...">Bryan Thompson</a> * @version $Id$ *************** *** 267,270 **** --- 272,280 ---- * Serialization for an index segment metadata entry. * + * FIXME implement {@link Externalizable} and use explicit versioning. + * + * FIXME assumes that resources are {@link IndexSegment}s rather than + * either index segments or journals. + * * @author <a href="mailto:tho...@us...">Bryan Thompson</a> * @version $Id$ *************** *** 307,310 **** --- 317,324 ---- os.writeInt(segmentMetadata.state.valueOf()); + os.writeLong(segmentMetadata.uuid.getMostSignificantBits()); + + os.writeLong(segmentMetadata.uuid.getLeastSignificantBits()); + } *************** *** 336,340 **** .valueOf(is.readInt()); ! val.segs[j] = new SegmentMetadata(filename, nbytes, state); } --- 350,356 ---- .valueOf(is.readInt()); ! UUID uuid = new UUID(is.readLong()/*MSB*/,is.readLong()/*LSB*/); ! ! val.segs[j] = new SegmentMetadata(filename, nbytes, state, uuid); } Index: MasterJournal.java =================================================================== RCS file: /cvsroot/cweb/bigdata/src/java/com/bigdata/scaleup/MasterJournal.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MasterJournal.java 27 Mar 2007 14:34:22 -0000 1.4 --- MasterJournal.java 27 Mar 2007 17:11:41 -0000 1.5 *************** *** 919,925 **** File outFile = getSegmentFile(name,pmd.partId,segId); ! new IndexSegmentBuilder(outFile, tmpDir, oldIndex.btree ! .getEntryCount(), oldIndex.btree.getRoot().entryIterator(), ! mseg, Value.Serializer.INSTANCE, true/* useChecksum */, null/* new RecordCompressor() */, 0d, oldIndex.btree .getIndexUUID()); --- 919,926 ---- File outFile = getSegmentFile(name,pmd.partId,segId); ! IndexSegmentBuilder builder = new IndexSegmentBuilder(outFile, ! tmpDir, oldIndex.btree.getEntryCount(), oldIndex.btree ! .getRoot().entryIterator(), mseg, ! Value.Serializer.INSTANCE, true/* useChecksum */, null/* new RecordCompressor() */, 0d, oldIndex.btree .getIndexUUID()); *************** *** 928,939 **** * update the metadata index for this partition. */ ! mdi.put(separatorKey, ! new PartitionMetadata(0, segId + 1, ! new SegmentMetadata[] { new SegmentMetadata("" ! + outFile, outFile.length(), ! ResourceState.Live) })); ! // /* ! // * open and verify the index segment against the btree data. // */ // seg = new IndexSegment(new IndexSegmentFileStore(outFile01), btree --- 929,939 ---- * update the metadata index for this partition. */ ! mdi.put(separatorKey, new PartitionMetadata(0, segId + 1, ! new SegmentMetadata[] { new SegmentMetadata("" + outFile, ! outFile.length(), ResourceState.Live, ! builder.segmentUUID) })); ! // /* ! // * open and verify the index segment against the btree data. // */ // seg = new IndexSegment(new IndexSegmentFileStore(outFile01), btree *************** *** 963,971 **** // build the merged index segment. ! new IndexSegmentBuilder(outFile, null, mergeItr.nentries, ! new MergedEntryIterator(mergeItr), mseg, oldIndex.btree ! .getNodeSerializer().getValueSerializer(), ! false/* useChecksum */, null/* recordCompressor */, ! 0d/* errorRate */, oldIndex.btree.getIndexUUID()); // close the merged leaf iterator (and release its buffer/file). --- 963,972 ---- // build the merged index segment. ! IndexSegmentBuilder builder = new IndexSegmentBuilder(outFile, ! null, mergeItr.nentries, new MergedEntryIterator(mergeItr), ! mseg, oldIndex.btree.getNodeSerializer() ! .getValueSerializer(), false/* useChecksum */, ! null/* recordCompressor */, 0d/* errorRate */, ! oldIndex.btree.getIndexUUID()); // close the merged leaf iterator (and release its buffer/file). *************** *** 1001,1008 **** newSegs[0] = new SegmentMetadata(oldSeg.filename, oldSeg.nbytes, ! ResourceState.Dead); ! newSegs[1] = new SegmentMetadata(outFile.toString(), outFile.length(), ! ResourceState.Live); mdi.put(separatorKey, new PartitionMetadata(0, segId + 1, newSegs)); --- 1002,1009 ---- newSegs[0] = new SegmentMetadata(oldSeg.filename, oldSeg.nbytes, ! ResourceState.Dead, oldSeg.uuid); ! newSegs[1] = new SegmentMetadata(outFile.toString(), outFile ! .length(), ResourceState.Live, builder.segmentUUID); mdi.put(separatorKey, new PartitionMetadata(0, segId + 1, newSegs)); |