CodersCommunity / forum.pasja-informatyki.local

Środowisko deweloperskie forum
https://forum.pasja-informatyki.pl
25 stars 7 forks source link

Widget Advent of Code - zbyt duża ilość danych #314

Closed awaluk closed 9 months ago

awaluk commented 1 year ago

Pod koniec tegorocznej edycji Advent of Code wysypał nam się widget, przestał ładować wyniki. Sprawdziłem i okazało się, że JSON z wynikami, który trzymany jest w mechanizmie opcji Q2A (tabela qa_options) stał się zbyt długi i doszedł do limitu kolumny, przez co został obcięty i później podczas odczytu wszystko się wysypywało. Zapewne doszło więcej uczestników niż rok temu i wraz z kolejnymi dniami przestało się mieścić.

Trzeba byłoby przerobić to w jakiś sposób. Nie wiem czy mamy jeszcze jak ograniczyć ilość danych, wydaje się, że tam już jest zbierane tylko to co potrzebne. Nie ma też chyba sensu w nieskończoność powiększać rozmiaru kolumny w całej tabeli jeśli problem jest tylko tutaj. Może trzeba więc przerobić to np. na osobną dedykowaną tabelę, która od razu umożliwiłaby archiwizowanie wyników i była bardziej poręczna niż JSON. Obecnie widget i tak nie działa, bo tegoroczna edycja dobiegła końca, więc jest trochę czasu na poprawkę.

Argeento commented 1 year ago

Jaki jest limit kolumny? Podrzuciłbyś aktualnego JSON-a? Może wystarczy zastosować jakiś optymalniejszy format danych -> limit leadboarda na aoc i tak jest ustawiony na 200 uczestników

awaluk commented 1 year ago

Limit kolumny to 8000 znaków. JSONa zaraz podeślę o ile się sam nie wyczyścił w momencie wyłączenia pluginu. Tyle że teraz mieliśmy na tablicy nawet nie 100 osób, więc nie wiem jak bardzo trzeba byłoby to przeoptymalizować żeby w razie czego weszło jeszcze ponad 2 razy tyle. Jednym z rozwiązań mogłoby być nie uwzględnianie na tablicy tych, którzy mają 0 punktów, bo to wtedy pewnie mocno odchudziłoby całość, ale nie wiem czy tak chcemy zrobić.

Argeento commented 1 year ago

Średnio 40 znaków na osobę... niby da się zrobić

Argeento commented 1 year ago

To tak:

Tegoroczny AoC w tym formacie (z momentu wywalenia się pluginu):

3lqv9528,2us,Łukasz Eckert,
3lqv9528,2u7,rucin93,&
4szto6q,2h5,Argeento,&
4szto6q,2az,Mawrok,
pmn28,1u4,Michal Drewniak,
pmn28,1sc,adrian17,
pmn27,1q5,JMazurkiewicz,&
24vwme,1pw,ikarek-one,&
pmn27,1mt,Adam Salamon,
8jjom,1h1,overcq,&
be24,19o,nidomika,&
3soq,17d,TheLukaszNs,&
be1e,110,Krzysztof Zawadka,krizotto
f6q,zh,ssynowiec,&
f6p,xw,Mikbac,&
528,u5,Jarosław Roszyk,
1oq,qd,Hubert Chęciński,
1oq,ng,13NOONE37,
k8,lo,Vinox,
k8,li,Fiji404,
k8,le,tokox,&
k8,jr,Wojciech Malicki,
28,eo,Rafał Budzis,Bajdzis
1e,99,mjavor,
q,91,Marcin Jasiński,
8,6g,Radosław Kawka,
8,60,Wojciech Krajza,
7,5x,the Bielsky,
5,59,Mikołaj Pątkowski,
2,42,s. Dorota Kowalewska,
2,3c,Innro,
4,2u,Paweł,
2,2s,bantu,
,,B4mbus,&
,,shogunalke,
,,WhiskeyTaster,
,,Klaudia,
...

Jakby się komuś nudziło i chciało to implementować - to pomieścimy kilka razy te 200 osób :P