Skip to content

Commit

Permalink
Fix UAV migration bug: look up editableMappingsInfo versions in corre…
Browse files Browse the repository at this point in the history
…ct list (#8378)
  • Loading branch information
fm3 authored Feb 7, 2025
1 parent 5447c6e commit 5d04993
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import logging
from utils import setup_logging, log_since
import argparse
from connections import connect_to_fossildb, assert_grpc_success
import time
import fossildbapi_pb2 as proto


logger = logging.getLogger("migration-logs")


def main():
logger.info("Hello from add_editable_mapping_info")
setup_logging()
parser = argparse.ArgumentParser()
parser.add_argument("--fossil", type=str, help="Fossildb host and port. Example: localhost:7155", required=True)
parser.add_argument("--editable_mapping_info_file", type=str, help="path to binary input file to put", required=True)
parser.add_argument("--tracingId", type=str, help="tracingId to put the entry to", required=True)
parser.add_argument("--version", type=int, help="version number to put the entry to", required=True)
args = parser.parse_args()
before = time.time()
stub = connect_to_fossildb(args.fossil, "target")
with open(args.editable_mapping_info_file, 'rb') as infile:
bytes_to_put = infile.read()

logger.info(f"putting {len(bytes_to_put)} bytes of type {type(bytes_to_put)} at {args.tracingId} v{args.version}")
reply = stub.Put(proto.PutRequest(collection="editableMappingsInfo", key=args.tracingId, version=args.version, value=bytes_to_put))
assert_grpc_success(reply)
log_since(before, "Inserting one editable mapping info entry")





if __name__ == '__main__':
main()
5 changes: 2 additions & 3 deletions tools/migration-unified-annotation-versioning/migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,6 @@ def migrate_segment_index(self, tracing_id, layer_version_mapping):
logger.info(f"Migrating segment index with large batch sizes for {tracing_id} failed with {e}, retrying with small batch sizes...")
self.migrate_all_versions_and_keys_with_prefix("volumeSegmentIndex", tracing_id, layer_version_mapping, transform_key=None, put_buffer_size=10, get_keys_page_size=1, get_keys_version_batch_size=1000)


def migrate_editable_mapping(self, tracing_id: str, layer_version_mapping: LayerVersionMapping, mapping_id_map: MappingIdMap) -> List[int]:
if tracing_id not in mapping_id_map:
return []
Expand All @@ -458,9 +457,9 @@ def migrate_editable_mapping_info(self, tracing_id: str, mapping_id: str, layer_
materialized_versions = self.list_versions(collection, mapping_id)
materialized_versions_unified = []
for materialized_version in materialized_versions:
value_bytes = self.get_bytes(collection, mapping_id, materialized_version)
if materialized_version not in layer_version_mapping[tracing_id]:
if materialized_version not in layer_version_mapping[mapping_id]:
continue
value_bytes = self.get_bytes(collection, mapping_id, materialized_version)
new_version = layer_version_mapping[mapping_id][materialized_version]
materialized_versions_unified.append(new_version)
self.save_bytes(collection, tracing_id, new_version, value_bytes)
Expand Down

0 comments on commit 5d04993

Please sign in to comment.