From 54095eb5cb0dbb13d52d15ff5906b05d8a7bac99 Mon Sep 17 00:00:00 2001 From: Joseph Schorr <josephschorr@users.noreply.github.com> Date: Mon, 30 Nov 2015 14:25:01 -0500 Subject: [PATCH] Handle the common case of one chunk when calculating the uncompressed size Reference #992 --- data/database.py | 2 ++ ...403d02fea323_add_new_blobupload_columns.py | 28 ++++++++++++++++++ data/model/blob.py | 3 +- endpoints/v2/blob.py | 22 +++++++++++++- test/data/test.db | Bin 1134592 -> 1114112 bytes util/registry/gzipstream.py | 14 +++++++-- 6 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 data/migrations/versions/403d02fea323_add_new_blobupload_columns.py diff --git a/data/database.py b/data/database.py index 297656c6c..b4d7ba986 100644 --- a/data/database.py +++ b/data/database.py @@ -784,6 +784,8 @@ class BlobUpload(BaseModel): sha_state = ResumableSHAField(null=True, default=resumablehashlib.sha256) location = ForeignKeyField(ImageStorageLocation) storage_metadata = JSONField(null=True, default={}) + chunk_count = IntegerField(default=0) + uncompressed_byte_count = IntegerField(null=True) class Meta: database = db diff --git a/data/migrations/versions/403d02fea323_add_new_blobupload_columns.py b/data/migrations/versions/403d02fea323_add_new_blobupload_columns.py new file mode 100644 index 000000000..cb5b74317 --- /dev/null +++ b/data/migrations/versions/403d02fea323_add_new_blobupload_columns.py @@ -0,0 +1,28 @@ +"""Add new blobupload columns + +Revision ID: 403d02fea323 +Revises: 10b999e8db1f +Create Date: 2015-11-30 14:25:46.822730 + +""" + +# revision identifiers, used by Alembic. +revision = '403d02fea323' +down_revision = '10b999e8db1f' + +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import mysql + +def upgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.add_column('blobupload', sa.Column('chunk_count', sa.Integer(), nullable=False)) + op.add_column('blobupload', sa.Column('uncompressed_byte_count', sa.Integer(), nullable=True)) + ### end Alembic commands ### + + +def downgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.drop_column('blobupload', 'uncompressed_byte_count') + op.drop_column('blobupload', 'chunk_count') + ### end Alembic commands ### diff --git a/data/model/blob.py b/data/model/blob.py index b05ce6100..263978ec1 100644 --- a/data/model/blob.py +++ b/data/model/blob.py @@ -26,7 +26,7 @@ def get_repo_blob_by_digest(namespace, repo_name, blob_digest): def store_blob_record_and_temp_link(namespace, repo_name, blob_digest, location_obj, byte_count, - link_expiration_s): + link_expiration_s, uncompressed_byte_count=None): """ Store a record of the blob and temporarily link it to the specified repository. """ random_image_name = str(uuid4()) @@ -35,6 +35,7 @@ def store_blob_record_and_temp_link(namespace, repo_name, blob_digest, location_ try: storage = ImageStorage.get(content_checksum=blob_digest) storage.image_size = byte_count + storage.uncompressed_size = uncompressed_byte_count storage.save() ImageStoragePlacement.get(storage=storage, location=location_obj) diff --git a/endpoints/v2/blob.py b/endpoints/v2/blob.py index e7525c8a9..0d8dc4a4e 100644 --- a/endpoints/v2/blob.py +++ b/endpoints/v2/blob.py @@ -13,6 +13,7 @@ from auth.jwt_auth import process_jwt_auth from endpoints.decorators import anon_protect from util.cache import cache_control from util.registry.filelike import wrap_with_handler, StreamSlice +from util.registry.gzipstream import calculate_size_handler from storage.basestorage import InvalidChunkException @@ -220,6 +221,14 @@ def _upload_chunk(namespace, repo_name, upload_uuid): input_fp = wrap_with_handler(input_fp, found.sha_state.update) + # If this is the first chunk and we're starting at the 0 offset, add a handler to gunzip the + # stream so we can determine the uncompressed size. We'll throw out this data if another chunk + # comes in, but in the common case Docker only sends one chunk. + size_info = None + if start_offset == 0 and found.chunk_count == 0: + size_info, fn = calculate_size_handler() + input_fp = wrap_with_handler(input_fp, fn) + try: length_written, new_metadata, error = storage.stream_upload_chunk(location_set, upload_uuid, start_offset, length, input_fp, @@ -228,8 +237,18 @@ def _upload_chunk(namespace, repo_name, upload_uuid): except InvalidChunkException: _range_not_satisfiable(found.byte_count) + # If we determined an uncompressed size and this is the first chunk, add it to the blob. + # Otherwise, we clear the size from the blob as it was uploaded in multiple chunks. + if size_info is not None and found.chunk_count == 0 and size_info.is_valid: + found.uncompressed_byte_count = size_info.uncompressed_size + elif length_written > 0: + # Otherwise, if we wrote some bytes and the above conditions were not met, then we don't + # know the uncompressed size. + found.uncompressed_byte_count = None + found.storage_metadata = new_metadata found.byte_count += length_written + found.chunk_count += 1 return found, error @@ -257,7 +276,8 @@ def _finish_upload(namespace, repo_name, upload_obj, expected_digest): # Mark the blob as uploaded. model.blob.store_blob_record_and_temp_link(namespace, repo_name, expected_digest, upload_obj.location, upload_obj.byte_count, - app.config['PUSH_TEMP_TAG_EXPIRATION_SEC']) + app.config['PUSH_TEMP_TAG_EXPIRATION_SEC'], + upload_obj.uncompressed_byte_count) # Delete the upload tracking row. upload_obj.delete_instance() diff --git a/test/data/test.db b/test/data/test.db index 335b28e341d4ea58e6dd26512ba1e728d5daa50e..09d116ec48ed6251b3f0c3f9f636c73e796d56a0 100644 GIT binary patch delta 55990 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 G)&DO&3|b)o delta 56656 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 diff --git a/util/registry/gzipstream.py b/util/registry/gzipstream.py index 0f9ce1e6b..3a3f28542 100644 --- a/util/registry/gzipstream.py +++ b/util/registry/gzipstream.py @@ -16,6 +16,7 @@ class SizeInfo(object): def __init__(self): self.uncompressed_size = 0 self.compressed_size = 0 + self.is_valid = True def calculate_size_handler(): """ Returns an object and a SocketReader handler. The handler will gunzip the data it receives, @@ -23,17 +24,26 @@ def calculate_size_handler(): """ size_info = SizeInfo() - decompressor = zlib.decompressobj(ZLIB_GZIP_WINDOW) def fn(buf): + if not size_info.is_valid: + return + # Note: We set a maximum CHUNK_SIZE to prevent the decompress from taking too much # memory. As a result, we have to loop until the unconsumed tail is empty. current_data = buf size_info.compressed_size += len(current_data) while len(current_data) > 0: - size_info.uncompressed_size += len(decompressor.decompress(current_data, CHUNK_SIZE)) + try: + size_info.uncompressed_size += len(decompressor.decompress(current_data, CHUNK_SIZE)) + except: + # The gzip stream is not valid for some reason. + size_info.uncompressed_size = None + size_info.is_valid = False + return + current_data = decompressor.unconsumed_tail # Make sure we allow the scheduler to do other work if we get stuck in this tight loop.