Jak działa kompresja w obiektowej architekturze pamięci

Zespół inżynierów z MIT opracował obiektową hierarchię pamięci, aby efektywniej zarządzać danymi. W artykule analizujemy, jak została skonstruowana.

Jak działa kompresja w obiektowej architekturze pamięci
/ PxHere / PD

Jak wiadomo, wzrost wydajności nowoczesnych procesorów CPU nie wiąże się z odpowiednim spadkiem opóźnienia podczas dostępu do pamięci. Różnice w zmianach wskaźników z roku na rok mogą sięgać nawet 10 razy (PDF, str.3). W efekcie powstaje wąskie gardło, które uniemożliwia pełne wykorzystanie dostępnych zasobów i spowalnia przetwarzanie danych.

Szkody w wydajności powoduje tzw. opóźnienie dekompresji. W niektórych przypadkach na wstępną dekompresję danych może być potrzebnych do 64 cykli procesora.

Dla porównania: dodawanie i mnożenie liczb zmiennoprzecinkowych zajmuje nie więcej niż dziesięć cykli. Problem polega na tym, że pamięć działa z blokami danych o stałej wielkości, a aplikacje operują obiektami, które mogą zawierać różne typy danych i różnić się od siebie rozmiarem. Aby rozwiązać problem, inżynierowie z MIT opracowali obiektową hierarchię pamięci, która optymalizuje przetwarzanie danych.

Jak działa technologia

Podstawą rozwiązania są trzy technologie: Hotpads, Zippads i algorytm kompresji COCO.

Hotpads to zarządzana programowo hierarchia ultraszybkiej pamięci rejestrowej (scratchpad). Te rejestry nazywane są pads i jest ich trzy — od L1 do L3. Przechowują obiekty różnych rozmiarów, metadane i tablice wskaźników.

W zasadzie architektura stanowi system cache'ów, ale dostosowany do pracy z obiektami. Poziom pada, na którym znajduje się obiekt, zależy od częstotliwości jego używania. Jeśli jeden z poziomów jest "przepełniony", system uruchamia mechanizm podobny do "śmieciarzy" w językach Java lub Go. Analizuje, jakie obiekty są używane rzadziej od innych i automatycznie przenosi je między poziomami.

Zippads działa na podstawie Hotpads — archiwizuje i dekompresuje dane, które wchodzą lub wychodzą z dwóch ostatnich poziomów hierarchii — pada L3 i pamięci głównej. W pierwszym i drugim padzie dane są przechowywane w niezmienionej formie.

Jak działa kompresja w obiektowej architekturze pamięci

Zippads kompresuje obiekty, których rozmiar nie przekracza 128 bajtów. Większe obiekty dzielą się na fragmenty, które następnie są umieszczane w różnych lokalizacjach pamięci. Jak piszą deweloperzy, takie podejście zwiększa współczynnik efektywnie wykorzystywanej pamięci.

Do kompresji obiektów zastosowany jest algorytm COCO (Cross-Object COmpression), o którym opowiemy dalej, chociaż system może także pracować z Base-Delta-Immediate lub FPC. Algorytm COCO jest rodzajem kompresji różnicowej (differential compression). Porównuje on obiekty z "bazowymi" i usuwa powtarzające się bity – zobacz schemat poniżej:

Jak działa kompresja w obiektowej architekturze pamięci

Według inżynierów z MIT, ich obiektowo zorientowana hierarchia pamięci jest o 17% bardziej wydajna niż klasyczne metody. Jest znacznie bliższa strukturze nowoczesnych aplikacji, dlatego nowa metoda ma potencjał.

Spodziewane jest, że technologię mogą najpierw zacząć stosować firmy zajmujące się danymi dużymi i algorytmami uczenia maszynowego. Kolejnym potencjalnym kierunkiem są platformy chmurowe. Dostawcy IaaS będą mogli skuteczniej zarządzać wirtualizacją, systemami przechowywania danych i zasobami obliczeniowymi.

Nasze dodatkowe zasoby i źródła:

Jak działa kompresja w obiektowej architekturze pamięci „Jak budujemy IaaS”: materiały o pracy 1cloud

Jak działa kompresja w obiektowej architekturze pamięci Ewolucja architektury chmury 1cloud
Jak działa kompresja w obiektowej architekturze pamięci Usługa pamięci obiektowej w 1cloud

Jak działa kompresja w obiektowej architekturze pamięci Potencjalne ataki na HTTPS i sposoby ochrony przed nimi
Jak działa kompresja w obiektowej architekturze pamięci Jakie są podobieństwa i różnice między podejściami Continuous Delivery i Continuous Integration
Jak działa kompresja w obiektowej architekturze pamięci Jak zabezpieczyć serwer w internecie: doświadczenie 1cloud

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster