Wyzwanie 2: jak poradzić sobie z porównywaniem ogromnych zbiorów danych?
Gdy udało się już zdefiniować „podobieństwo”, pojawiło się kolejne, czysto inżynierskie wyzwanie: jak sprawnie porównywać zdjęcia w bibliotece liczącej miliony plików, nie spowalniając przy tym całego NAS-a?
Gdyby każde nowe zdjęcie było porównywane ze wszystkimi istniejącymi w bazie przy użyciu „wizualnych odcisków”, system bardzo szybko przestałby działać wydajnie. Dlatego zaprojektowaliśmy wielopoziomowy mechanizm podziału zadań i optymalizacji.
Na początek ograniczyliśmy „pole widzenia” algorytmu. Zauważyliśmy, że większość podobnych zdjęć, takich jak serie zdjęć seryjnych czy różne wersje edycji, powstaje w krótkim odstępie czasu. W związku z tym przyjęliśmy zasadę, że zarówno nowe zdjęcie, jak i zadania porządkowania w tle, są porównywane tylko z fotografiami wykonanymi w oknie czasowym 24 godzin, czyli plus minus 12 godzin.
Ten prosty zabieg pozwala radykalnie zawęzić zakres porównań i od początku eliminuje ogromną liczbę zbędnych operacji.
Następnie wykorzystaliśmy pełen potencjał całego ekosystemu. W aplikacji mobilnej, podczas przesyłania zdjęć z telefonu, obliczenia PDQ są wykonywane lokalnie, jeszcze przed wysłaniem pliku na NAS. Oznacza to, że najbardziej wymagający etap przetwarzania odbywa się na urządzeniu użytkownika, a serwer NAS zajmuje się już tylko odbiorem danych i porównywaniem odcisków w bazie.
Na końcu zadbaliśmy o integrację z systemowym harmonogramem DSM. Dzięki temu zadania porównywania i grupowania zdjęć nie działają w oderwaniu od reszty systemu, lecz są częścią wspólnego mechanizmu zarządzania zasobami.
Takie podejście pozwala uniknąć sytuacji, w której operacje fotograficzne regularnie wybudzają dyski z uśpienia, co ma bezpośredni wpływ na energooszczędność całego NAS-a.
Dodatkowo system współdzieli zasoby z innymi procesami, takimi jak harmonogramy pobierania w Download Station czy zadania kopii zapasowych w Hyper Backup. W praktyce oznacza to, że porządkowanie zdjęć odbywa się wtedy, gdy system ma na to najlepsze warunki, bez konkurowania o zasoby z innymi operacjami w tle.
Efekt jest prosty: większa stabilność, przewidywalne działanie i brak sytuacji, w której kilka ciężkich zadań próbuje jednocześnie „przepchnąć się przez wąskie gardło” systemu.
Podsumowanie: inteligentne wsparcie, decyzja należy do Ciebie
Funkcja „Stack Similar Photos” w Synology Photos została zbudowana wokół jednej, kluczowej idei: technologia ma być sprawnym asystentem, a nie zastępować użytkownika w podejmowaniu decyzji.
Włożyliśmy dużo pracy w zwiększenie precyzji algorytmu, usprawnienie porównań na dużą skalę oraz zapewnienie, że cały proces nie obciąża wydajności NAS-a. Równocześnie oddaliśmy użytkownikom pełną swobodę działania — od wyboru zdjęcia wiodącego w grupie, przez szybkie rozłączanie stosów, aż po możliwość usunięcia dowolnego zdjęcia z utworzonej grupy.
Wierzymy, że najlepsza automatyzacja polega na tym, że wykonuje żmudną pracę wstępną, a potem oddaje użytkownikowi to, co w organizacji najważniejsze — kontrolę i końcową decyzję.
Mamy nadzieję, że przeglądając uporządkowaną oś czasu swoich zdjęć, poczujesz właśnie tę „odpowiednią precyzję działania”, którą starannie zaprojektowaliśmy.