Przejdź do treści
KAMOUniverse

Changelog

Co nowego.

Każde ulepszenie platformy, jak to wysyła.

  1. · AIService

    Punkt w YugabyteDB i użyj PostgreSQLDialect

    CockroachDB został zastąpiony przez YugabyteDB. Ciągi połączeń przesuwają się z Co karaluchdb-publikowany:26257 do yb-tserver-service:5433, dialekt hibernacji Od PostgreSQLDialect.

  2. · KlusterServices

    Unique_rowid() shim i niepubliczne schematy w YugabyteDB

    Shim jest sekwencją rozstawioną na maksimum produkcji plus margines. Nat wt. w tym w, potyczce, w tym, w tym, że pot w tym, w tym, w tym, w tym, w tym, w tym, w tym, w tym, w tym, w tym, w tym, poty o tym Nasienie ma dwa wymagania, a nie jeden: musi przekraczać wszelkie istniejące id lub Pierwsza wkładka po przecięciu zderza się i musi przekraczać 2 3-5, ponieważ i dziesięciny Ponad to serializuj jako ciągi, a kontrakty API już je zakładają. Zweryfikowane: zwroty > 2-53 i > produkcja max, 1000 połączeń wyróżnia się, oraz "INT8 DEFAULT unique_rowid()" działa dosłownie jako domyślna kolumna - która jest punkt, ponieważ pozwala on na wszystkie kolumny 520Kstrowanie w donotmodyfikacji Wspólna biblioteka pozostaje bajt-bajtowa bez zmian. Również tworzy pięć niepublicznych schematów. Hibernacja nie tworzy schem, o ile hbm2ddl.create_names-true, które KamoInitializerService Nie ustawia się, więc bez tych tych tych samych 34 stołów zaginie ponownie.

  3. · KlusterServices

    Unique_rowid() shim i niepubliczne schematy w YugabyteDB

    Shim jest sekwencją rozstawioną na maksimum produkcji plus margines. Nat wt. w tym w, potyczce, w tym, w tym, że pot w tym, w tym, w tym, w tym, w tym, w tym, w tym, w tym, w tym, w tym, w tym, poty o tym Nasienie ma dwa wymagania, a nie jeden: musi przekraczać wszelkie istniejące id lub Pierwsza wkładka po przecięciu zderza się i musi przekraczać 2 3-5, ponieważ i dziesięciny Ponad to serializuj jako ciągi, a kontrakty API już je zakładają. Zweryfikowane: zwroty > 2-53 i > produkcja max, 1000 połączeń wyróżnia się, oraz "INT8 DEFAULT unique_rowid()" działa dosłownie jako domyślna kolumna - która jest punkt, ponieważ pozwala on na wszystkie kolumny 520Kstrowanie w donotmodyfikacji Wspólna biblioteka pozostaje bajt-bajtowa bez zmian. Również tworzy pięć niepublicznych schematów. Hibernacja nie tworzy schem, o ile hbm2ddl.create_names-true, które KamoInitializerService Nie ustawia się, więc bez tych tych tych samych 34 stołów zaginie ponownie.

  4. · KlusterServices

    Wdrażanie YugabyteDB 2026.1.0.1 wraz z CockroachDB

    Oba silniki są teraz sterowane obok k1m1; CockroachDB jest nietknięty i Pozostaje ścieżka cocofnięcia. Trzy rzeczy, które nie były oczywiste: - Wersja wykresu Helm nie jest tagiem Docker. Wykres 2026.1.0 mapy do aplikacji Najnowsza wersja 2026.1.0.0-b118, więc ’image: yugabytedb/yuggabyte:2026.1.0’ jest ImagePullBackOff. Przypięty do 2026.1.0.1-b1, najnowszy patch stabilny 2026.1. - hostNetwork umieszcza kapsuły na prawdziwych interfejsach k1m1, gdzie dwa Yugabyte Domyślne są już pobierane: 9000 przez MinIO i 9100 przez node_exporter. Natchrze i ws. w tym pongocjowani Tserver webserver przenosi się do 9010, a jego RPC do 9110. Obie usługi hostujące Zweryfikowany nienaruszony później. - TLS nie jest opcjonalny. Wszystkie 31 ciągów połączeń konsumenckich Sslmode-require, więc YSQL bez szyfrowania odmówiłby każdemu klientowi Przecięcia. Certs są tworzone z zespołu, z pseudonimem karaluchdb-publicznym Nazwa na liście SAN, ponieważ konsumenci nadal używają go przez przecięcie. Celowo nie są podłączone do CI: dodanie stopni wdrażania etapów .forgejo/, które wyzwala pełną pogodę, która odwraca żylny dryf.

  5. · KlusterServices

    Wdrażanie YugabyteDB 2026.1.0.1 wraz z CockroachDB

    Oba silniki są teraz sterowane obok k1m1; CockroachDB jest nietknięty i Pozostaje ścieżka cocofnięcia. Trzy rzeczy, które nie były oczywiste: - Wersja wykresu Helm nie jest tagiem Docker. Wykres 2026.1.0 mapy do aplikacji Najnowsza wersja 2026.1.0.0-b118, więc ’image: yugabytedb/yuggabyte:2026.1.0’ jest ImagePullBackOff. Przypięty do 2026.1.0.1-b1, najnowszy patch stabilny 2026.1. - hostNetwork umieszcza kapsuły na prawdziwych interfejsach k1m1, gdzie dwa Yugabyte Domyślne są już pobierane: 9000 przez MinIO i 9100 przez node_exporter. Natchrze i ws. w tym pongocjowani Tserver webserver przenosi się do 9010, a jego RPC do 9110. Obie usługi hostujące Zweryfikowany nienaruszony później. - TLS nie jest opcjonalny. Wszystkie 31 ciągów połączeń konsumenckich Sslmode-require, więc YSQL bez szyfrowania odmówiłby każdemu klientowi Przecięcia. Certs są tworzone z zespołu, z pseudonimem karaluchdb-publicznym Nazwa na liście SAN, ponieważ konsumenci nadal używają go przez przecięcie. Celowo nie są podłączone do CI: dodanie stopni wdrażania etapów .forgejo/, które wyzwala pełną pogodę, która odwraca żylny dryf.

  6. · kamo-internal

    Podziel dziennik dostępu i zasady jego wykrywania na podta-taby

    Zasady, które decydują o tym, co zostanie oznaczone, to akordeon poniżej siatki – Domyślnie zawaliła się, więc konfiguracja była czymś, o czym trzeba było wiedzieć I rozbudowując go walczył z siatką dla tej samej szyby. Są to dwa poglądy Jeden temat, a każdy chce całej wysokości. Podtaszywy przełączają się teraz między nimi, dopasowując schemat Tabs w następnej karcie OAuth2 Drzwi już używają. Zakładka zasad istnieje tylko dla gospodarstwa członka MANAGE_DETECTION_RULES, a aktywny widok jest uzyskiwany, a nie poprawiany przez efekt: kontrolujRight odpowiada na false, dopóki useUserInfo ustali, co oznacza W przeciwnym razie pozostaw członka stojącego na karcie, która następnie znika. Zasady są Posłano o wejściu do zakładki, ponieważ na poszerzeniu akordeonu, i Panel nie ma własnego nagłówka teraz, gdy zakładka go nazywa. Zamienia również ikonę przycisku edycji: był to Plus, podpisem "Edytuadzie reguły".

  7. · kamo-internal

    Strzałka z powrotem do domu na głównych nagłówkach przestrzeni roboczej

    Przechowuje strzałkę z ustawieniami w pozostałej części aplikacji: Konta, leady, Handel, Marketing (wszystkie cztery zakładki, poprzez wspólny układ), Baza wiedzy, HR, Sieć, Menedżer dokumentów, Kalendarz, Kontakty i notatki. Przycisk przenosi się z komponentów/ustawek do komponentów/BackToHomeButton Teraz, gdy jest to chromowany w całym aplikacji, a nie ustawienia chromowane. Marketing i HR posiadają jednego gradientowego bohatera dla każdej karty pod nimi, więc strzała ląduje w ich Układ i każda zakładka dziedziczy go. Handel i notatki renderują swój nagłówek z jednorazowego użytku Komponent (PipelineView, NotesHeader), czyli tam, gdzie strzałka trafia dla tych dwóch.

  8. · kamo-internal

    Panele wyjaśniające na każdym łącz barze administratora

    Ktoś, kto stworzył swoją organizację dziesięć minut temu, spotyka dziewięć linków, które Nie ma sposobu, aby czytać. Uniemożliwianie lub skupienie się teraz rozwija panel, który odpowiada, W kolejności: co to za ekran, trzy rzeczy, które możesz tam zrobić i gdzie znaleźć Ponownie przechodzi przez Ustawienia, gdy pasek nie jest już nowy. Panel rozciąga się z zespołu, a nie unosi się w pobliżu - rośnie W dół od krawędzi zespołu z pieczęcią przyspaną do jego wejścia i wpisu Jest oświetlony, gdy jest na zewnątrz, więc obaj czytają jako jeden obiekt. Treści osiedlają się w a Za tym krótkim zawracam. Zmniejszony ruch utrzymuje crossfade i upuszcza Podróże; zmniejszona przejrzystość upuszcza rozmycie. Dwa szczegóły zdobywają swoje miejsce. Bloki i kły są krótkie na pasku, ale panel Nagłówki ich prawdziwych nazw, bloków dostępu i dzienniki dostępu systemu, ponieważ To jest to, na co ktoś będzie później polował w Ustawieniach. I każdy panel zamyka się ze szlakiem z powrotem na ekran, więc nauka go raz robi skrót Opcjonalnie, a nie nośność. Otwiera się na zawisło po uderzeniu, natychmiast, gdy jakikolwiek panel jest już wyjściowy, i Natychmiast na skupienie klawiatury; Ucieczka zamyka go. Wskazówka dotykowa nigdy go nie otwiera - Dotknięcie jest tylko łącznikiem, bez panelu lewego za nim.

  9. · kamo-internal

    Zacisna poprzeczka administratora - organt, krótkie nazwy audytu, brak luki

    Trzy zmiany w sposobie odczytu baru w dziewięciu linkach: Wpis członków zespołu nosi teraz własną etykietę mnogiej org z Behavior & Etykietowanie, więc org, który nazywa ich oficerami pożyczkowymi, ma tu oficerów pożyczkół. To jest Ten jeden wpis bez klucza etykiety - nazwa jest org, a nie tłumaczenie. Bloki dostępu i dzienniki dostępu do systemu skracają bloki i dzienniki pod własnym względem bloków Klucze zamiast menu ustawień. Zreanowanie wspólnych kluczy byłoby przemianowane na te zakładki wszędzie, gdzie się pojawiają; w tej grupie, obok tych ikon, "dostęp" połowa każdej nazwy nie robiła żadnej pracy. Różnica między wpisami znika, więc każda wyściółka jest separacją a pola unosi się, spotykają się z krawędzią do krawędzi – pasek zamiast rzędu żetonów.

  10. · kamo-internal

    Strzałka z powrotem do domu po lewej stronie każdego ustawienia tytułu strony

    Strony ustawień nie miały wyjścia do wyrzutni bez szyny nav. Ustawienia opcjonalneView backHf teraz nie domyślnie jest domem i renderuje bezwarunkowo, więc 20 stron zbudowanych na nim wybiera Strzałka strzałka za darmo; sześć stron, które rysują własny nagłówek, otrzymuje tę samą linię kontrolną. Redaktorzy Nested (rynki, produkty, plany, dostawca poczty e-mail, webhooks, szablony warunków, agent studio) już niosą bułkę z powrotem do swojego rodzica i są pozostawione same sobie, podobnie jak Ołów, której strzałka celowo powraca do /leads.

  11. · kamo-internal

    Reszta niezbędnej konfiguracji na pasku administratora

    Role bezpieczeństwa, działy i tytuły pracy dołączają do grupy konfiguracji, po lewej stronie Para audytu. Są to trzy karty Essential Setup, których brakowało w barze — Behavior & Labeling niósł ten temat sam, więc jeden ekran Administrator docierał stąd, ten, który jest jego pierwszą kartą. Każdy z nich ponownie wykorzywi i etykietuje klucz, który już daje lądowanie ustawień, oraz Wszystkie trzy są objęte istniejącą bramą CONFIGURE_SYSTEM.

  12. · kamo-internal

    Bloki dostępu w pasku administratora, audyt łączy do krawędzi tras

    Bloki dostępu i dzienniki dostępu systemu to dwa ekrany na pasku, które odpowiadają "kto się dostał, a kto nie", zamiast niczego konfigurować, więc grupują się Połącz się i przejedź krawędzią pasa, z dala od konfiguracji Linki. Autoline-start margin robi to - nie ma elementu dystansu, a para Po prostu podążaj za resztą, gdy rząd owija się na wąskim widoku. Oba są już objęte bramą MANAGE_ACCESS_RULES oraz Access Bloki ponownie stosuje ikonę i klawiaturę, którą już daje lądowanie ustawień.

  13. · kamo-internal

    Nazwij i edytuj książki adresowe i odbuduj stronę wokół nich

    Dodanie książki POSTed hard-code nazwa zastępczy bez monitu i nic Gdzieś w dowolnym miejscu można zmienić nazwę – więc każda książka org była nazywana tą samą rzeczą, Na stałe. Książki i grupy są teraz tworzone i edytowane przez okno dialogowe z Nazwa, opis i akcent, zmiana nazwy i wymiedzenie z menu wiersza. Grupy nigdy nie zostały w ogóle pobrane: pasek boczny renderowany z listy, która tylko się rosła Kiedy go stworzyłeś, więc grupa zniknęła na przeładowaniu. Kontakty były buczane na Książka i połączył się w przeglądarce, więc "Wszystkie kontakty" pokazały tylko książki, które miałeś Odwiedzione i sortowanie walczyły z pamięcią podręczną. Obaj pochodzą teraz ze służby, z zakres (książka, grupa, zapytanie), jazda jedną zamówiona, liczona prośba. Reszta strony podąża za idiomem konsoli, z której korzysta reszta aplikacji: - Sidebar: książki z ich liczbą kontaktów, grupy zagnieżdżone liczbami członków, ajgi wierszowe dla zmiany nazwy / dodaj grupę / eksport / delete - Lista: wyszukiwanie i zamawianie po stronie serwera, wybór wyboru wszystkich i przesunięć, Nieskończony przewijanie, szkielety, szyna A–Z i puste stany, które różnią się dla "Bez kontaktów" i "nic nie meczy" - Pasek wyboru: przesuń, dodaj do grupy, eksportuj, usuń. Skrzynki kontrolne na miarę Byli tam wszyscy razem, nie mając nic do wywołania - Panel szczegółowy: wszystko w pliku, każdy przedmiot kopiowany i wykonalny, i jeden Udostępniony edytor z dialogiem tworzenia, dzięki czemu obaj nie mogą dryfować - Import informuje o tym, co pominął, więc częściowy import nie wygląda jak strata Kontemplikacje proxy zamieniły co 204 w 500 – zgłoszono skuteczne usunięcie Niewydolność – ponieważ przeanalizowała puste ciało jako JSON. Bez opcji na poziomie org w nowej książce: ListBooks zwraca każdą książkę w org Niezależnie od właściciela, więc oferowanie wyboru obiecałoby prywatność ścieżki czytania Nie jest to narzędzie.

  14. · EmailService

    Wytrwaj i służ całemu kontaktowi, a nie tylko jego nazwa

    Warstwa REST bezpośrednio serializowała podmioty JPA. Kontakt nie ma mapowania do E-maile, telefony, adresy, organizacje, adresy URL, komunikaty i relacje — te Są oddzielnymi stołami - więc żadna z nich nigdy nie była w odpowiedzi, a Jackson po cichu Upuścił to wszystko po drodze. Utwórz okno dialogowe zgromadzone siedem sekcji i Nie upierał się. Książki i grupy wróciły z ich leniwymi skojarzeniami Jako null, dlatego pasek boczny nie mógł przypisać grupy do książki. Pod tym, stworzenie kontaktu nie mogło w ogóle odnieść sukcesu: KONTAKT.OWNER_ID jest NOT NULL i nic nie ustawiło go z interfejsu użytkownika, od importu vCard, lub z CardDAV PUT. Import przechowywał tylko surową kartę i pozostawił FORMATTED_NAME null, który Kolumna odrzuca; wyeksportuj tę samą surową kartę z powrotem, więc wszystko stworzone w UI eksportował pustkę. - - kształty drutu, z Liczy potrzeby paska bocznego i sumy potrzeb pagera - ContactDetailStore: ładunki wsadowe i zastępuje siedem stołów satelitarnych i Członkostwo w grupie; usunięcie kontaktu nie osiodzą już ich - ContactQueryStore: liczenie, zamówiona/filtrowana/paged org-wide listing, a także Wyszukiwanie, które pasuje również do części nazw, numerów telefonów i organizacji - ContactVCardMapper: import i eksport przechodzą przez jedno pole mapowanie, więc Kontakt przeżywa podróż w obie strony. Poniedziałek jest napisany jako PartialDate – rozdzielenie go Do jednej chwili przesuniętego dnia dla czytelników w innej strefie czasowej - updateBook stosuje tylko przesłane pola: zmiana nazwy książki używanej do jej wyczyszczenia Opis i kolor, a wrzuć na NOT NULL isVisible - usuń kaskady książki; domyślność org jest odrzucana, a nie łamie Kontrola ograniczenia każdej książki na poziomie orgi zależy od - masowe usuwanie/ruch/ruchowe punkty końcowe grupy — pola wyboru listy nie miały nic do wywołania Tworzenie książek zawsze ustawia właściciela i ignoruje zadowoloną przez klienta isOrgDefault: Książka bez właściciela jest legalna tylko jako domyślność org, a druga domyślna Odejdź znaleźć OrgDefault wybór arbitralnie.

  15. · kamo-internal

    Bar przy kartach startowych

    Pięć ekranów administrator org otwiera się stale - członkowie zespołu, zachowanie i Etykietowanie, statystyki i koszty, aplikacje i funkcje, dzienniki dostępu do systemu — każdy lub trzy Kliknięcia w głębokim menu ustawień już dziś. Dostają jeden rząd na szczycie Wyrzutnia, poniżej masztu i nad kartami. Każdy wpis ponownie wykorzystuje ikonę, a klucz etykiety jej miejsce już wprowadza Ustawienia lądowania, więc ten sam ekran odczytuje to samo, gdziekolwiek jest oferowany. Zespół jest nagradzemowy NavTop/NavPri org z białymi linkami, co czyni Czyta się jako chrom, a nie szósta karta. Widoczność jest rolą Administratora (Full Access), wyrażoną w jedyny sposób Sesja to ujawnia: trzy prawa, które odgrywa rola i brak roli stockowej poniżej Tak jest. Wszystkie trzy są wymagane i są dokładnie tym, co jest pięć miejsc docelowych. Brama na sobie, więc bar nigdy nie oferuje linku, który odmówiłby członka.

  16. · BillingService

    Odczytowanie użytkowania z jednego deduplicated pass

    Podąża za zmianą biblioteki współdzielonej do jednego ładowania na inny plik na Organizacja. Zarówno podsumowanie, jak i codzienny autor snapshotu robią pojedynczą Obrazowanie przechodzi i odczytuje każdą z niego domenę, zamiast ponownie biegać tak samo Grupowanie raz na domenę — osiemnaście domen oznaczało to samo zapytanie osiemnaście razy. Za jedną stronę ładunek.

  17. · kamo-shared-library

    Policz każdy plik raz na organizację, nie raz na upload

    Rachunek był na rekord imgs, więc organizacja, która wrzuciła ten sam plik pięć Czasy były obciążane pięć razy. Zasada właściciela to jedna opłata za odrębny plik Według organizacji: Kamo nadal przechowuje plik raz w systemie, każda organizacja Trzymanie go jest nadal liczone, a ponowne załadowanie czegoś, co już masz, nie jest Nowy ładunek. Dane dotyczące obrazowania pochodzą teraz z jednej przepustki na organizację, która załamuje rekordy Do różnych plików. Zmierzony w produkcji dla KamoCRM: 52 rekordy na żywo stają się 28 Pliki do ładowania, 6,886,309,250 bajtów, stając się 5,441,174,177. Plik przechowywany w ramach dwóch skojarzeń jest liczony w dokładnie jednym – najniższym. Związek pojawia się pod, ponieważ liczenie go w obu to zaliczyłoby dwa razy. Dwa pliki produkcyjne są w tej pozycji, a z tą regułą kategorie Podziel pliki organizacji i sumę dokładnie do jej całości. Kluczowe liczby okresowe dotyczące tego, kiedy organizacja FIRST posiadała plik, więc ponowne przesłanie Coś, co już miał, nie jest nowym zarzutem w późniejszym okresie. Wygenerowane Podglądy są tel. liczono według tego samego powodu i niszczenia jednej kopii pliku Trzymany pięć razy niczego nie uwalnia. ObrazowanieUsage() służy prądowi, dożywotnio i dodawanego z pojedynczego przejścia, ponieważ Każda domena obrazowania potrzebuje tej samej grupy i przetwarzania jej na domenę Kwerter kweruły kilkanaście razy na jedno podsumowanie.

  18. · kamo-internal

    Pomiń przesłanie, gdy platforma ma już plik

    Wysłanie tego samego filmu do trzech osób oznaczało trzy pełne przesłania. Dedup je zawalił Do jednego przechowywanego obiektu, ale tylko raz każdy transfer się zakończył - więc oszczędność była Przechowywanie, nigdy czas członka ani przepustowość. Kompozytor pyta teraz, zanim już przysłaje. Najpierw sonda wielkości, ponieważ identyczna treść Musi mieć identyczną liczbę bajtów: wyklucza to dopasowanie dla prawie każdego naprawdę nowego Plik na koszt jednego małego żądania, więc haszowanie jest opłacane tylko wtedy, gdy może zapłacić Odpad. Tylko wtedy BLAKE3 i SHA3-256 są obliczane i oferowane na serwerze, który Załącza przechowywane treści bezpośrednio. Brak przepadek przechodzi do normalnego przesyłania. Strumienie zhańbiające. Istniejący pomocnicy dzwonią do pliku.arrayBuffer() raz na hash, więc plik Dwukrotnie mieszka w pamięci – dobrze za dokument, śmiertelnie za film z 3 GiB. Thezy, w tym, w pot wt., w pot wt., w tym, że Nowy przechodzi plik w 4 miB, karmiąc obiema masztami, więc pamięć szczytowa jest jedna chunk w dowolnym rozmiarze i daje między kawałkami, ponieważ SHA3-256 jest czystym JavaScript i Inaczej zamroziłoby kompozytora na minuty. Dedup to optymalizacja i nigdy brama: jakakolwiek awaria w sondzie, haszowaniu lub Link wraca do przesyłania, co zawsze jest poprawne. Panel wymienia pauzę Nie czyta się tego jako stoisko.

  19. · MediaService

    Załadkaj już sklepiony plik bez ponownego przesłania jej

    Przesunięcie wideo o pojemności 2 GB do trzech współpracowników kosztowało trzy pełne przesłane. Przechowywanie Odzwiatał je do jednego obiektu, ale dopiero po zakończeniu każdego transferu Wyrzucony — członek zapłacił za każdy byt, trzy razy, aby wyprodukować kopię Platforma już miała. Dwa punkty końcowe rozliczyły go przed ruchem bajtów. /apunkty/prowizuj odpowiedzi, czy Plik o tej wielkości może w ogóle istnieć, który jest tani i pozwala klientowi pominąć haszowanie Za prawie każdy naprawdę nowy plik. / załącznikachments/link przyjmuje hashehe klienta Obliczenie się i gdy zdecydują się na przechowywanie treści, tworzy załącznik W wprost; 404 oznacza "nigdy nie widziałem, prześlij" i jest zwykłą odpowiedzią, a nie zwykłą odpowiedzią. Porażka. Filet jest roszczeniem, a nie zezwoleniem: zawsze rozwiązują one tylko w odniesieniu do treści Już przechowywane w ramach własnego zakresu dedup rozmówcy i oba punkty końcowe wymagają sesji Członkostwo jak każda inna droga przywiązania. Przesłanie i link współdzielić jeden budynek rzędowy Droga do celu – czy bajty podróżowały, czy zostały rozpoznane, przywiązanie, które Ziemia w rozmowie musi być nie do odróżnienia.

  20. · kamo-internal

    Pokaż wygenerowane przechowywanie podglądu jako własną linię

    Wigaździe i zdjęcia podglądu teraz liczą się do całości organizacji, więc Klient powinien być w stanie zobaczyć, ile kosztuje, zamiast znaleźć go złożonego w - Kolejny numer. Podpowiedź mówi, czym są i że wielostronicowy dokument Produkuje jeden podgląd na stronę, więc liczba jest do wytłumaczenia, a nie Tajemnicza.

  21. · SecurityService

    Pomiar miniatur i śladów generowanych z każdego pliku

    Klucze obiektowe są adresowane jako treści - więc segment przed pierwszym podkreśleniem identyfikuje plik, przyszedł pochodnia Od tego. Rozmiary są sumowane na ImgDat - jeden zestaw fizyczny na plik deduplikowany - i Liczenie przypisuje je poprzez każdy zapis imgadaw wskazujący na to. Jest to jedyny sposób odpowiedzi na pytanie. img_dats.THUMB_FILE_SIZE posiada Pojedyncza wartość dla tego, co może być dziesiątkami miniaturek strony, została zapełniona dla 5 z nich 84 rzędy w produkcji i nigdy nie zakrywały się w ogóle obiektów gąsienicowych – razem Zaniżanie rzeczywistego przechowywania pochodni o około 37%. Legacy obiekty brelokowane przez numeryczny id poprzedzający adresowanie treści, nie pasują do żadnego pliku, I są liczone dla nikogo; liczenie jest rejestrowane, a nie przekazywane w Cisza.

  22. · InitializerService

    Schemat dla zmierzonej miniatury i przechowywania torów

    Zapisy img_dat_derywacje, na przechowywany plik, rzeczywisty rozmiar bytetu wszystkiego Kamo z niego wygenerował. Zastępuje img_dats.THUMB_FILE_SIZE jako źródło dla Liczba ta: ta kolumna zawiera jedną wartość dla tego, co może być dziesiątkami stron Miniatki i były wypełnione na 5 z 84 rzędów w produkcji. Biegnij przeciwko produkcji 2026-08-09; tabela i indeks zweryfikowane.

  23. · kamo-shared-library

    Bill wygenerował miniatury do organizacji

    Thumbnails i ścieżki kanałowe są przyczyną przesyłania danych organizacji, Tak więc na polecenie właściciela liczą teraz do całkowitej liczby tej organizacji. Zamiast być wchłoniętym przez Kamo. GENERATED_PREVIEWS jest domeną rozliczeniową. Zmierzone w sklepie obiektowym, a nie z img_dats.THUMB_FILE_SIZE. Ta kolumna Posiada pojedynczą wartość za to, co może być dziesiątkami miniaturek strony (imgDatId_thumb_p0..pN) i w produkcji był zamieszkany dla 5 z 84 rzędów — Zaniżanie rzeczywistej pamięci pochodnej o około 37% i pominięcie obiektów śledzące Całkowicie. img_dat_derywacje zapisują to, co faktycznie odczytuje zamiatanie. Uznanie jest na rekord posiadania, ta sama reguła co sam plik: fakturowanie Dołącza imgs do img_dat_derivatives, więc dwie organizacje posiadające jeden plik to Każdy z nich rozliczany za jego podgląd i deduplikację pozostaje oszczędnością Kamo, a nie - Klient jest. Podgląd dat danych z okresu przez przesłanie, które je spowodowało, więc Podgląd pojawia się w tym samym okresie, co jego plik, a nie za każdym razem, gdy trwała zamiatanie. Pochodna raportu platformyBytes czyta teraz to samo mierzone źródło, więc Przerwa dezaktywowanie, jakie koszty przetwarzania obrazu. Schemat zweryfikowany w produkcji przed tym lądowaniem: img_dat_derywiatura istnieje Po biegu KI.

  24. · kamo-internal

    Pozwól, aby członek trzymał materiał wideo lub audio, a nie tylko go odtwarzać

    Gracz odpowiada na jedną intencję. Poszukiwania pliku na dysku jest inne, a Filmy i audio były dwoma rodzajami załączników bez możliwości, aby to zrobić - dokument ma Chwilowo przycisk do pobrania przez cały czas, a obraz ma jeden w swoim lightboxie. Chromowe zaburyki pobieranie w menu przepełnienia elementu wideo; Firefox i Safari nie oferują jednego W ogóle, więc afordancja musi być nasza, aby być niezawodnym. Obaj mają teraz linię podpisu nazewnicę o jego rozmiarze i przycisku pobierania, Używając tego samego atrybutu href + download, którego używa już chip dokumentu. Upuszcza również rozmiar zawsze-KB na chipie dokumentu. To przestało skalować ten moment Załączniki mogą być gigabajtami: plik 2 GB z napisem "2130125 KB". Teraz używa tego samego FormatBytes, kompozytor pokazuje dla tego pliku przed wysłaniem.

  25. · kamo-internal

    Pokaż branding i przechowywanie dokumentów dokumentujących

    Oba są napisane prosto do sklepu obiektowego bez żadnego rozmiaru zapisanego w Baza danych, więc czytają jako zero, dopóki zamiatacz ich nie mierzy. Teraz mają swoje Własne linie.

  26. · SecurityService

    Mierzenie brandingu i przechowywania dokumentów dokumentujących

    Są to jedyne dwie rzeczy, które są sklepami organizacyjnymi, które nie mają rozmiaru W dowolnym miejscu w bazie danych — aktywa brandingowe trafiają bezpośrednio do wiadra publicznego W ramach prefiksu domeny organizacji, docs workspace pod id - tak Obaj czytają jako zero, dopóki coś nie przeczyta sklepu. Uznanie sięga wstecz, prefiks do organizacji. Deriving każdej organizacji Prefiksy i skanowanie tych po cichu pomijałoby wszystko, co jest przechowywane pod prefiksem Nikt nie pomyślał, aby wyprowadzić; zamiast tego każdy prefiks najwyższego poziomu jest odwzorowywany z powrotem Widget, udostępniaj, domyślnie, plus wszystko luźne w korzeniu wiadra) ląduje w "nie" Całkowity klient. Członkowie/podwody są wykluczeni celowo. Awatarowie żyją pod stałą, Niezależny od organizacji przedrostek według projektu i liczenie dziedzictwa per-domain Kopie obciążyłyby jedną organizację za plik użytkownika innej organizacji Własne. Punkt końcowy spustu podąża za LosInternalApplyController: porównanie w czasie stałym Na tajemnicę gromady, zawodzie zamkniętej, gdy jest nieskonfigurowany.

  27. · InitializerService

    Schemat do pomiaru składowania tylko w sklepie obiektowym

    object_storage_days rejestruje, co zamiata odczytuje z MinIO dla obu Rzeczy, które nie mają rozmiaru w bazie danych: aktywa brandingowe i dokumenty Przestrzeń pracy. Wciśnione przez ostatni dzień, więc okno rozliczeniowe dokładnie sumuje. Biegnij przeciwko produkcji 2026-08-08; zweryfikowane tabele i indeksy.

  28. · kamo-shared-library

    Licz do branding i przechowywanie dokumentów dokumentowych

    Prawie wszystko, co organizacja przechowuje, rejestruje swój własny rozmiar gdzieś – a Implis row, kb_media row, pomiar skrzynki pocztowej. Dwie rzeczy nie robią. Branding Zasoby (logos, favicons, obrazy tła, motyw CSS i konfiskata) są pisane Prosto do publicznego wiadra pod prefiksem domeny organizacji i Przestrzeń pracy docs jest zapisana pod id. Ani nie zostawia niczego w bazie danych Mówiąc, jak duży jest, więc oba są czytane jako zero. object_storage_days przechowuje to, co zamiata z powrotem ze sklepu z obiektem, Wykupiony przez dzień zmodyfikowany, więc arbitralne okno rozliczeniowe sumuje się dokładnie tak? Poza zaokrąglaniem do całych miesięcy. - wielkość dostaw i ostatnia modyfikowana, deduped Kluczem w węzły. Replikacja strony umieszcza ten sam obiekt na kilku węzłach, i Liczenie go po węźlem na węzie pomnołoby rachunek organizacji przez wielkość Klaster. BRANDING celowo wyklucza członków/podstaw. Akwatary członkowskie żyją pod a Stały, niezależny od organizacji prefiks według projektu — użytkownik może należeć do kilku Organizacje, więc awatar nie jest własnością żadnego z nich – i Kopie per-domena są dziedzictwem. Liczenie ich obciążyłoby jedną organizację za Złóż plik, którego właścicielem jest inny użytkownik organizacji. Schemat zweryfikowany w produkcji przed wylądowaniem: object_storage_days istnieje Z jego wyjątkowości ograniczeniem po biegu KI.

  29. · kamo-internal

    Pokaż przechowywanie załączników wiadomości tekstowych

    MMS załączniki na żywo w bazie danych jako dane: URI zamiast jako pliki, Tak więc nie mieli rekordu wielkości i nigdy nie byli liczeni. Teraz mają swoją własną linię.

  30. · kamo-shared-library

    Licz załączniki wiadomości tekstowych

    Zamocowania MMS są przechowywane i nie były liczone. Nie są też tym, co oni Wygląda na to: VoipMessageService koduje załącznik jako dane: URI i pisze Wliczył się w VOIP_MESSAGES.ATTACHMENT_URL, dzięki czemu nigdy nie stają się obiektami MinIO i nie ma pliku do statystyka — pomiar jest przechowywaną długością znaku, Za pośrednictwem rozmowy jest org. Base64 działa około jednej trzeciej większego niż bajty, które koduje, i że napompowany Forma jest naprawdę tym, co zajmuje bazę danych, więc to jest to, co jest liczone.

Twój wszechświat czeka.

Rozpocznij bezpłatnie w kilka minut.Dodaj produkty, kiedy tylko będziesz gotowy — bez migracji, bez nowych logowań.

Bezpłatne na zawsze — nie wymaga karty kredytowej