Hoe we 35x prestaties voor beeldsequenties bereikten

door | 18 oktober 2023

Bij MASV hechten we veel waarde aan feedback van klanten en proberen we hier zo snel mogelijk iets mee te doen. Soms krijgen we positieve ideeën en feedback over hoe we ons product beter kunnen maken. Andere keren is feedback kritisch - en vaak productiever.

Dat is precies hoe we erachter kwamen hoe de prestaties van beeldsequenties verbeteren (AKA grote batches van kleine bestanden).

We staan vooral bekend om het verplaatsen van de grootste bestanden ter wereld, maar onze klanten verplaatsen ook duizenden (soms miljoenen) kleine bestanden tegelijk. Als je werkt met beeldsequenties, gigantische codebases of LIDAR-scans, dan weet je waar we het over hebben.

In dit specifieke geval merkten onze gebruikers een vertraging op bij het overbrengen van afbeeldingssequenties. Dus gingen we aan de slag met een oplossing. We zijn verheugd te kunnen aankondigen dat MASV is nu tot 35x sneller voor overdrachten met grote aantallen kleine bestanden.

Zo hebben we het gedaan.

Inhoudsopgave

Wat zijn beeldsequenties en hoe worden ze gebruikt?

Een afbeeldingssequentie is een verzameling individuele afbeeldingsbestandenwaarbij elk beeldbestand een enkel frame in een video is. Ze worden gebruikt in media en filmproductie voor zaken als animatie, VFX rondreizenen kleurcorrectie.

Het voordeel van het opdelen van een video in een beeldsequentie is dat je zeer gedetailleerde informatie krijgt over elk videoframe. Hierdoor kunnen color grading teams hun werk precies en efficiënt doen. Speciale effectenteams kunnen verfijndere scènecompositing uitvoeren.

beeldsequentie van een basketbalspeler

Het blijkt dat MASV geen probleem had met beeldsequenties specifiek.

Dit was een probleem bij het overzetten van vele, vele kleine bestanden, ongeacht hun formaat of gebruik.

Welke problemen ondervonden onze klanten?

Langzame overdrachten voor beeldsequenties

Klanten die Desktop app versie 2.7.0 en eerder gebruikten, klaagden over langzame overdrachten voor afbeeldingssequenties:

  • Een 4K-video van 10 minuten is ongeveer 200 GB. Met een netwerkservice van 1 Gbps zou het downloaden 20-30 minuten duren.
  • Een equivalente afbeeldingsreeks kan 18.000 afbeeldingsbestanden zijn. Onder dezelfde omstandigheden zou het downloaden 4,5 uur (of meer) in beslag hebben genomen.

Erger nog, klanten verspilden tijd op andere manieren. In één geval probeerde een klant ongeveer 500.000 kleine bestanden over te zetten. Onze Desktop app kon dit niet aan. In feite crashte de component die verantwoordelijk was voor het afhandelen van verzoeken voor overdrachten.

Het goede nieuws is dat deze crash geen invloed had op andere transfers of andere klanten. MASV is gebouwd om veerkrachtig te zijn zodat een enkele mislukte overdracht geen invloed heeft op de overdrachten van anderen.

Ons Support-team heeft dit probleem opgelost door hun overdracht handmatig te splitsen in kleinere overdrachten, de overdrachtsgeschiedenis te wissen en nieuwe, aangepaste builds van de Desktop-app te proberen. Ondertussen werkte ons Engineering-team aan het onderzoeken en oplossen van dit probleem.

Dus, wat is het probleem veroorzaakt door duizenden kleine bestanden?

De wortel(s) van het probleem vinden

We zijn begonnen met het benchmarken van de MASV Desktop app, versies 2.7.0 en eerder, verbonden met een 1Gbps netwerk.

We hebben de tijd die nodig was om 10 GB over te brengen op deze manieren gemeten:

  • Eén bestand van 10 GB
  • Tweeduizend bestanden van 5 MB

Dit zijn de meest dramatische resultaten:

blog-pagina-plaatshouder-afbeelding

Er zijn een paar voor de hand liggende dingen:

  • Voor een enkel bestand van 10 GB is downloaden bijna net zo snel als uploaden. Dit is standaard.
  • Voor 2000 bestanden van 5 MB is uploaden 5 keer langzamer en downloaden 35 keer langzamer!

Uitgave #1: Leesbewerkingen vertragen

Een van de oorzaken van deze vertraging was de manier waarop onze Desktop app downloads opslaat op je computer.

Om een bestand te uploaden naar de MASV-cloud, leest de Desktop-app het bestand slechts één keer. Bij het downloaden van de MASV-cloud schrijft de Desktop app het bestand naar uw opslagruimte - maar het moet ook lees zodat het de integriteit van het overgedragen bestand kan verifiëren.

Onze teams ontdekten een opzettelijke ontwerpbeslissing die de overdracht van veel kleine bestanden onbedoeld vertraagde. Om de tijd die wordt besteed aan lezen tijdens het downloaden te verminderen, heeft de MASV Desktop app vertraagde leesbewerkingen, waarbij prioriteit wordt gegeven aan schrijfbewerkingen. Soms liep deze vertraging op tot 400ms, bijna een halve seconde..

Het grappige is dat MASV Desktop app deze vertraging niet langer nodig had. Het werd overbodig toen we de manier veranderden waarop de Desktop app gedownloade bestanden controleerde. Deze verbetering verborg het feit dat de vertraging nauwelijks merkbaar was voor een paar grote bestanden, een klein deel van de totale overdrachtstijd. Maar, zoals de grafiek hierboven laat zien, liepen die vertragingen dramatisch op voor veel kleine bestanden...

Probleem #2: Trage overdrachtsgeschiedenis

Onze Desktop app heeft een overdrachtgeschiedenis, die het gebruikt om elk bestand bij te houden dat je verstuurt en ontvangt. Deze informatie wordt bijgehouden in een database. De database leek niet traag bij het bijhouden van tientallen en zelfs honderden bestanden. Maar beeldsequenties kunnen honderdduizenden bestanden of meer bevatten.

We hebben de prestaties van deze database volledig gecontroleerd. Daarbij simuleerden we een overdrachtgeschiedenis van 300.000 bestanden, wat niet ongewoon is voor een afbeeldingsreeks. De trage prestaties van de database werden pas duidelijk bij het overzetten van duizenden bestanden.

Probleem #3: Trage verwerking van verzoeken

Onze Desktop app heeft ook een interne component die bestandsaanvragen afhandelt tussen uw computer en de MASV cloud servers. Ook deze component leek niet merkbaar traag bij een relatief klein aantal bestanden. Maar de slechte prestaties werden duidelijk bij de overdracht van duizenden bestanden.

Hoe we de problemen hebben aangepakt

Met een duidelijk idee van wat MASV vertraagde, ging ons technische team aan de slag om het te verbeteren. Deze verbeteringen zijn te vinden in versie 2.7.5 en later:

Verbetering #1: Leesvertraging verwijderen

Ons engineeringteam was blij dat het de verouderde leesvertraging kon verwijderen. Software-ingenieurs beschouwen het als een goede dag wanneer ze hun code zowel kunnen vereenvoudigen als sneller maken.

Verbetering #2: Bestandsgeschiedenis en verwerking van verzoeken opnieuw configureren

Ons team heeft de prestaties van de bestandsdatabase verbeterd en meer capaciteit toegevoegd aan de component voor het verwerken van aanvragen. Beide kunnen nu gemakkelijk honderdduizenden bestanden en meer aan.

Op basis van de audit konden onze engineers nog een paar kleine verbeteringen aanbrengen voor nog meer snelheid en betrouwbaarheid.

Bonusverbetering: Bestandshandgrepen hergebruiken

Het kost een kleine hoeveelheid tijd om te wachten tot het besturingssysteem een bestand heeft geopend en gesloten. Dat loopt op als je met duizenden bestanden werkt. De MASV Desktop app hergebruikt nu bestandsgrepen wanneer dat mogelijk is.

Het resultaat: Onze belofte waarmaken

Onze teams zijn erin geslaagd de problemen op te lossen die van invloed waren op de beeldsequenties. Zeggen dat we blij zijn met de resultaten is een understatement.

Bekijk de resultaten hieronder voor MASV Desktop app 2.7.5. Je zult zien dat uploads nog steeds snel zijn. Downloads zijn praktisch net zo snel, zeker snel genoeg om onze belofte waar te maken.

blog-pagina-plaatshouder-afbeelding

Beeldsequenties overbrengen met ongelofelijke snelheden

We nemen verzoeken van klanten serieus en handelen daar zo snel mogelijk naar. Toen onze klanten klaagden over trage overdrachten met betrekking tot beeldsequenties, hebben onze Engineering en Support teams hard gewerkt om een oplossing te vinden.

We zijn ervan overtuigd dat MASV draagt beeldsequenties over met praktisch dezelfde snelheid als andere bestandengroot of klein.

Als je met beeldsequenties werkt, of je hebt geprobeerd om beeldsequenties over te zetten met MASV en je was niet tevreden, download dan de laatste versie van Desktop app. We willen je de gemakkelijkste, snelste manier blijven bieden om bestanden betrouwbaar en veilig over te zetten.

Nieuw bij MASV?

Probeer de snelste bestandsoverdracht voor media en zware grafische bestanden. Meld u vandaag nog aan.