def __process_data_block(self, key, raw_data, is_replica=False): self.__processed_local_blocks += 1 try: raw_header = raw_data.read(DataBlockHeader.HEADER_LEN) primary_key, replica_count, checksum, user_id, stored_dt = DataBlockHeader.unpack(raw_header) if not is_replica: if key != primary_key: raise Exception("Primary key is invalid: %s != %s" % (key, primary_key)) data_keys = KeyUtils.get_all_keys(primary_key, replica_count) if is_replica: if key not in data_keys: raise Exception("Replica key is invalid: %s" % key) except Exception, err: self.__invalid_local_blocks += 1 logger.error("[RepairDataBlocks] %s" % err) return