Inzicht in hoe blob-momentopnamen kosten genereren

Het maken van een momentopname, een alleen-lezen kopie van een blob, kan leiden tot extra kosten voor gegevensopslag voor uw account. Bij het ontwerpen van uw toepassing is het belangrijk om te weten hoe deze kosten kunnen oplopen, zodat u onnodige kosten kunt minimaliseren.

Belangrijke factureringsoverwegingen

De volgende lijst bevat belangrijke punten waarmee u rekening moet houden bij het maken van een momentopname.

  • Er worden kosten in rekening gebracht voor unieke blokken of pagina's, ongeacht of deze zich in de blob of in de momentopname bevinden. Voor uw account worden geen extra kosten in rekening gebracht voor momentopnamen die zijn gekoppeld aan een blob totdat u de blob waarop ze zijn gebaseerd, bijwerkt. Wanneer u de basis-blob bijwerkt, wijkt deze af van de momentopnamen en worden er kosten in rekening gebracht voor de unieke blokken of pagina's in elke blob of momentopname.

  • Wanneer u een blok in een blok-blob vervangt, wordt dat blok vervolgens in rekening gebracht als een uniek blok. Dit geldt zelfs als het blok dezelfde blok-id en dezelfde gegevens heeft als in de momentopname. Zodra het blok opnieuw is doorgevoerd, wijkt het af van de bijbehorende tegenhanger in een momentopname en worden er kosten in rekening gebracht voor de gegevens. Hetzelfde geldt voor een pagina in een pagina-blob die is bijgewerkt met identieke gegevens.

  • Als u een blok-blob vervangt door de methode UploadFile, UploadText, UploadStream of UploadByteArray aan te roepen, worden alle blokken in die blob vervangen. Als u een momentopname hebt die aan die blob is gekoppeld, worden alle blokken in de basisblob en momentopname nu afwijken en worden alle blokken in beide blobs in rekening gebracht. Dit geldt zelfs als de gegevens in de basis-blob en de momentopname identiek blijven.

  • De Azure Blob-service beschikt niet over een manier om te bepalen of twee blokken identieke gegevens bevatten. Elk blok dat wordt geĆ¼pload en doorgevoerd, wordt behandeld als uniek, zelfs als het dezelfde gegevens en dezelfde blok-id heeft. Omdat er kosten in rekening worden gebracht voor unieke blokken, is het belangrijk om te bedenken dat het bijwerken van een blob met een momentopname leidt tot extra unieke blokken en extra kosten.

Belangrijk

Best practices dicteren dat u momentopnamen zorgvuldig beheert om extra kosten te voorkomen. Het is raadzaam om momentopnamen op de volgende manier te beheren:

  • Momentopnamen die zijn gekoppeld aan een blob verwijderen en opnieuw maken wanneer u de blob bijwerkt, zelfs als u bijwerkt met identieke gegevens, tenzij uw toepassingsontwerp vereist dat u momentopnamen bijhoudt. Door de momentopnamen van de blob te verwijderen en opnieuw te maken, kunt u ervoor zorgen dat de blob en momentopnamen niet afwijken.
  • Als u momentopnamen voor een blob onderhoudt, moet u voorkomen dat u UploadFile, UploadText, UploadStream of UploadByteArray aanroept om de blob bij te werken, omdat deze methoden alle blokken in de blob vervangen. Werk in plaats daarvan zo min mogelijk blokken bij met behulp van de methoden PutBlock en PutBlockList .

Factureringsscenario's voor momentopnamen

De volgende scenario's laten zien hoe de kosten voor een blok-blob en de bijbehorende momentopnamen toenemen. In scenario 1 is de basis-blob niet bijgewerkt sinds de momentopname is gemaakt. Er worden dus alleen kosten in rekening gebracht voor de unieke blokken 1, 2 en 3:

Diagram waarin wordt getoond hoe blokken in rekening worden gebracht in scenario 1

Scenario 1: Alleen in de blokken 1, 2 en 3 worden kosten in rekening gebracht.

In scenario 2 is de basis-blob bijgewerkt, maar de momentopname niet. Blok 3 is bijgewerkt en hoewel het dezelfde gegevens en dezelfde id bevat, is het niet hetzelfde als blok 3 in de momentopname. Als gevolg hiervan worden vier blokken in rekening gebracht op het account:

Diagram waarin wordt getoond hoe blokken in rekening worden gebracht in scenario 2

Scenario 2: in blokken 1, 2 en 3 in de basis-blob worden kosten in rekening gebracht, samen met blok 3 in de momentopname.

In scenario 3 is de basis-blob bijgewerkt, maar de momentopname niet. Blok 3 is vervangen door blok 4 in de basisblob, maar de momentopname weerspiegelt nog steeds blok 3. Als gevolg hiervan worden vier blokken in rekening gebracht op het account:

Diagram waarin wordt getoond hoe blokken in rekening worden gebracht in scenario 3

Scenario 3: in blokken 1, 2, 3 en 4 worden kosten in rekening gebracht.

In scenario 4 is de basis-blob volledig bijgewerkt en bevat deze geen van de oorspronkelijke blokken. Als gevolg hiervan worden kosten in rekening gebracht voor alle acht unieke blokken. Dit scenario kan optreden als u een updatemethode gebruikt, zoals UploadFile, UploadText, UploadFromStream of UploadByteArray, omdat deze methoden alle inhoud van een blob vervangen.

Diagram waarin wordt getoond hoe blokken in rekening worden gebracht in scenario 4

Scenario 4: in blokken 1, 2, 3, 4, 5, 6, 7 en 8 worden kosten in rekening gebracht.

Zie ook

De Blob Storage-service gebruiken
De Queue Storage-service gebruiken
Een momentopname van een blob maken