public void initialize(byte opCode, long drId, VersionTag tag) throws IOException { this.opCode = opCode; assert this.opCode == OPLOG_CONFLICT_VERSION; this.size = 1;// for the opcode saveDrId(drId); this.versionsBytes = serializeVersionTag(tag); this.size += this.versionsBytes.length; this.size++; // for END_OF_RECORD_ID }
public void initialize(byte opCode, long drId, VersionTag tag) throws IOException { this.opCode = opCode; assert this.opCode == OPLOG_CONFLICT_VERSION; this.size = 1;// for the opcode saveDrId(drId); this.versionsBytes = serializeVersionTag(tag); this.size += this.versionsBytes.length; this.size++; // for END_OF_RECORD_ID }
private void initVersionsBytes(DiskEntry entry) throws IOException { // persist entry version, region version and memberId // The versions in entry are initialized to 0. So we will not persist the // 3 // types of data if region version is 0. // TODO: This method will be called 2 times, one for persisting into crf // another for persisting into krf, since we did not save the byte arrary // for the verstion tag. VersionStamp stamp = entry.getVersionStamp(); if (EntryBits.isWithVersions(this.userBits)) { assert (stamp != null); this.versionsBytes = serializeVersionTag(stamp); this.size += this.versionsBytes.length; } }
private byte[] serializeVersionTag(int entryVersion, long regionVersion, VersionSource versionMember, long timestamp, int dsId) throws IOException { HeapDataOutputStream out = new HeapDataOutputStream(4 + 8 + 4 + 8 + 4, Version.CURRENT); serializeVersionTag(entryVersion, regionVersion, versionMember, timestamp, dsId, out); byte[] versionsBytes = out.toByteArray(); return versionsBytes; }
private byte[] serializeVersionTag(int entryVersion, long regionVersion, VersionSource versionMember, long timestamp, int dsId) throws IOException { HeapDataOutputStream out = new HeapDataOutputStream(4 + 8 + 4 + 8 + 4, Version.CURRENT); serializeVersionTag(entryVersion, regionVersion, versionMember, timestamp, dsId, out); byte[] versionsBytes = out.toByteArray(); return versionsBytes; }
private void initVersionsBytes(VersionTag tag, long lastModifiedTime) throws IOException { if (EntryBits.isWithVersions(this.userBits)) { this.versionsBytes = serializeVersionTag(tag); this.size += this.versionsBytes.length; } else { // persist last modified time for no-versions case this.userBits = EntryBits.setHasLastModifiedTime(this.userBits); initLastModifiedTime(lastModifiedTime); } }
void serializeVersionTag(VersionHolder tag, DataOutput out) throws IOException { int entryVersion = tag.getEntryVersion(); long regionVersion = tag.getRegionVersion(); VersionSource versionMember = tag.getMemberID(); long timestamp = tag.getVersionTimeStamp(); int dsId = tag.getDistributedSystemId(); serializeVersionTag(entryVersion, regionVersion, versionMember, timestamp, dsId, out); }
byte[] serializeVersionTag(VersionStamp stamp) throws IOException { int entryVersion = stamp.getEntryVersion(); long regionVersion = stamp.getRegionVersion(); VersionSource versionMember = stamp.getMemberID(); long timestamp = stamp.getVersionTimeStamp(); int dsId = stamp.getDistributedSystemId(); return serializeVersionTag(entryVersion, regionVersion, versionMember, timestamp, dsId); }
byte[] serializeVersionTag(VersionTag tag) throws IOException { int entryVersion = tag.getEntryVersion(); long regionVersion = tag.getRegionVersion(); VersionSource versionMember = tag.getMemberID(); long timestamp = tag.getVersionTimeStamp(); int dsId = tag.getDistributedSystemId(); return serializeVersionTag(entryVersion, regionVersion, versionMember, timestamp, dsId); }
byte[] serializeVersionTag(VersionTag tag) throws IOException { int entryVersion = tag.getEntryVersion(); long regionVersion = tag.getRegionVersion(); VersionSource versionMember = tag.getMemberID(); long timestamp = tag.getVersionTimeStamp(); int dsId = tag.getDistributedSystemId(); return serializeVersionTag(entryVersion, regionVersion, versionMember, timestamp, dsId); }
void serializeVersionTag(VersionHolder tag, DataOutput out) throws IOException { int entryVersion = tag.getEntryVersion(); long regionVersion = tag.getRegionVersion(); VersionSource versionMember = tag.getMemberID(); long timestamp = tag.getVersionTimeStamp(); int dsId = tag.getDistributedSystemId(); serializeVersionTag(entryVersion, regionVersion, versionMember, timestamp, dsId, out); }
byte[] serializeVersionTag(VersionStamp stamp) throws IOException { int entryVersion = stamp.getEntryVersion(); long regionVersion = stamp.getRegionVersion(); VersionSource versionMember = stamp.getMemberID(); long timestamp = stamp.getVersionTimeStamp(); int dsId = stamp.getDistributedSystemId(); return serializeVersionTag(entryVersion, regionVersion, versionMember, timestamp, dsId); }
private void initVersionsBytes(DiskEntry entry) throws IOException { // persist entry version, region version and memberId // The versions in entry are initialized to 0. So we will not persist the 3 // types of data if region version is 0. // TODO: This method will be called 2 times, one for persisting into crf // another for persisting into krf, since we did not save the byte arrary // for the verstion tag. if (EntryBits.isWithVersions(this.userBits)) { VersionStamp stamp = entry.getVersionStamp(); assert (stamp != null); this.versionsBytes = serializeVersionTag(stamp); this.size += this.versionsBytes.length; } else { // persist last modified time for no-versions case this.userBits = EntryBits.setHasLastModifiedTime(this.userBits); initLastModifiedTime(entry.getLastModified()); } }
private void writeOneKeyEntryForKRF(byte[] keyBytes, byte userBits, int valueLength, long diskRegionId, long oplogKeyId, long valueOffset, VersionHolder tag) throws IOException { if (getParent().isValidating()) { return; } if (!getParent().isOfflineCompacting()) { assert (this.krf.dos != null); } else { if (this.krf.dos == null) { // krf already exist, thus not re-opened for write return; } } DataSerializer.writeByteArray(keyBytes, this.krf.dos); this.krf.dos.writeByte(EntryBits.getPersistentBits(userBits)); InternalDataSerializer.writeArrayLength(valueLength, this.krf.dos); DiskInitFile.writeDiskRegionID(this.krf.dos, diskRegionId); if (EntryBits.isWithVersions(userBits) && tag != null) { serializeVersionTag(tag, this.krf.dos); } InternalDataSerializer.writeVLOld(oplogKeyId, this.krf.dos); // skip the invalid entries, theire valueOffset is -1 if (!EntryBits.isAnyInvalid(userBits) && !EntryBits.isTombstone(userBits)) { InternalDataSerializer.writeVLOld((valueOffset - this.krf.lastOffset), this.krf.dos); // save the lastOffset in krf object this.krf.lastOffset = valueOffset; } this.krf.keyNum++; }
DiskInitFile.writeDiskRegionID(this.krf.dos, diskRegionId); if (withVersions) { serializeVersionTag(tag, this.krf.dos);