Autor Zpráva
Yuhů
Profil
Možná víte, že jsme změnili hosting, protože Xhost skončil. Nyní jsme u Nethostu. Při převodu se ukázalo, že tato diskuse je náročnější na provoz, než jsem si myslel. Nethost na to vcelku pochopitelně reaguje tím, že chce nějaké řešení nebo zvýšení ceny. Momentálně to vychází asi na 12 tisíc za rok, což mi přijde hodně, ale horší je, že ani to by nezaručilo bezproblémový chod ve špičce. Problémem jsou údajně dotazy do databáze.

Takže stojím před úkolem nějak dotazy do databáze optimalizovat. Když už to budu dělat, tak by se asi velmi hodilo přejít na aktuální verzi miniBB, totiž na verzi 2.0.3, protože ta optimalizaci selektů řeší. Teprve pokud to nebude stačit, šel bych do další optimalizace.

Jenomže s přechodem na novou verzi je spousta práce. Nešly by totiž použít současné šablony ani upravené vlastnosti (dost věcí jsme si doskryptovali, je tu velmi dobrý vlastní antispam). Převod databáze s 280 tisíci příspěvky do jiného formátu je taky slušné kafe. Takže se mi do toho moc nechce.

Takže řeším jednu otázku. Myslím, že by v praxi bylo lepší současnou diskusi "uzavřít", nainstalovat vedle ní novou verzi, převést do ní uživatele -- nikoli příspěvky -- a začít načisto. Tím pádem by se nemusela převádět databáze a nová databáze by fungovala mnohem rychleji.

Co si o tom prosím myslíte?
YoSarin
Profil
Mno, převod celé DB je asi opravdu nereálný, co zkusit převést třeba jen příspěvky třeba 2 dny zpátky (po delší době to stejně většinou umře). Ale pokud by se i to ukázalo jako datově neúnosné, tak asi není jiný výběr než začít nanečisto.
Ale rozhodně by to chtělo převést alespoň ty FAQ z každého tématu...
tiso
Profil
Yuhů
1. Som za uzavretie starej diskusie
2. Navrhol by som previesť len aktívnych užívateľov (s posledným prihlásením najneskôr pred mesiacom, polrokom).
3. Chcelo by to rozšíriť FAQ a sprísniť podmienky na pridávanie príspevkov ktoré sú vyriešené vo FAQ či mazanie tých porušujúcich pravidlá.

Čo mi tu chýba:
-alt pri obrázkoch zo sekciou kam patrí príspevok (občas som pripojený na net cez mobil a kým sa nezobrazí obrázok neviem kam príspevok patrí)
-indikácia nových príspevkov (ako to je na www.jaknaweb.com), je mi však jasné že by to bolo náročné na výkon.
-možnosť odlíšiť anonymných užívateľov - hodila by sa IP

O aký časový horizont sa jedná? Som dosť zaneprázdnený momentálne, ale rád by som s niečím pomohol. Len nie moderovanie, lebo by som to tu príliš riedil...
Alphard
Profil
v této diskusi je již vyřešeno mnoho zajímavých věcí a některé (často nezajímavé nebo zcela základní) i vícekrát, kdyby se to tak někomu chtělo přebrat ;-)
Peca
Profil
"uzavřít" znamená, že se všechny příspěvky natvrdo smažou, nebou budou aspoň někde přístupné readonly? Bylo by dobré, pokud by se na ně dalo odkazovat.
Když jsme u toho, neuvažuje se o možnosti dát ke stažení celou databázi příspěvků v nějakém formátu?
ronnie
Profil
Naopak myslím, že diskusi není třeba uzavírat. Jen bych tady přidal nějaký lepší zvýrazňovač kódu, číst php skripty je občas děs.

Tahle diskuse se dá velmi snadno optimalizovat. Stačilo by jen vytvořit jednu tabulku, kde by se aktualizovalo posledních 30 příspěvků, které se zobrazují na úvodu. A nezobrazoval by se počet zobrazení, pouze odpovědi. Výpis by pak byl rychlejší, protože by se prohledávala jedna tabulka s 30 záznamy.

Perfektní by byla taková diskuse se Smarty, které při zapnutém cachování vytváří statické soubory, které se mění pouze se změnou databáze (= vložením nového příspěvku). Pokud na diskusi příjde 30 návštěvníků za minutu a jen si prohlíží témata a nic nevkládají, pak nemusíš databázi volat třeba celou minutu a vracíš jim jen statické soubory. Cachovat diskusi klasicky přes HTTP asi nepůjde, protože velké množství komentujících jen příjde a podívá se na aktuální témata a vrátí se zase za několik minut, kdy už změna proběhne.

Pokud bys měl zájem, můžeme se na spolupráci (samozřejmě zadarmo) domluvit. Budu za pár dní dělat podobnou diskusi pro stránky, kde se očekává velké množství příspěvků a není problém diskusi předělat tak, aby byla použitelná na místo miniBB.
tiso
Profil
ronnie
dobré nápady... Neviem ale ako by si ošetril situácie ako pridanie príspevku do staršej témy a zmazanie tohto príspevku...
Yuhů
Profil
Alphard: přebrat? Ne, neplánuju diskusi někomu "předat" :-)


Peca: uzavřít znamená nechat diskusi přístupnou jako archiv, možná readonly, možná i s možností dále přispívat, ale nikoli propagovaně, takže by se stará verze postupně utlumila. A nová verze by jela nad menší/optimalizovanější/rychlejší databázi.


ronnie: díky za nabídku pomoci, ale zatím neplánuju z miniBB přecházet na cokoli jiného. Jsem s ní velmi spokojený. Její skrypty totiž v pozadí dělají obrovskou spoustu práce, ono se to nezdá. Můžu ti ale poslat stávající kódy a ty se podíváš, jestli bys ji uměl vylepšit ohledně zvýrazňování php kódu. Zrušení počtu příspěvků je rozumný nápad, ale víc to zatěžuje hledání posledního přispívajícího.
flz
Profil
rad sa budem podielat na vytvarani FAQ pre sekciu flash :)
Yuhů
Profil
> rad sa budem podielat na vytvarani FAQ pre sekciu flash :)

raději vymysli, jak se bude organizovat její psaní. Už jsem slyšel mockrát slovo wiki, ale nenašel jsem žádný soft (ani jsem si jej nedokázal nechat placeně naprogramovat), který by pro to byl adekvátní. Jiné nápady?
ronnie
Profil
Yuhuu, přesně tak, mám s tim zkušenosti, popíšu ti, jak lze minibb jednoduše optimalizovat:

No postup by byl takový:

Vytvoří se vlastní tabulka, kde bude ID, název, počet reakcí, jméno posledního reagujícího a datum. Tím sice dojde ke zdovojení dat v databázi, ale hlavní příspěvky se vypíšou jednoduchým dotazem SELECT * FROM tabulka ORDER BY date. Výpis je tedy max. rychlý. Počet zhlédnutí je tam úplně na nic, jen zbytečně zatěžuje databázi aktualizací při každém nahlédnutí.

Pak při vkládání by se příspěvek zapsal klasicky do databáze a zároveň do nové tabulky, což není problém. Vlastně by se jen jeden záznam přemazal.

Pro administrátory by se ještě doplnilo řešení pro dva případy: změna titulku a smazání tématu (= TRUNCATE novou tabulku). Zrychlení by bylo značné a nebylo by ani moc pracné.
Alphard
Profil
Yuhů
přebrat? Ne, neplánuju diskusi někomu "předat"
tím přebrat jsem myslel obsahově promazat tak, aby při stejné kvalitě byly menší nároky na výkon (je zde mnoho víceméně stejných příspěvků)
ronnie
Profil
Mohli bychom přidat rovnou Texy! s FSHL, což vytváří pěkně obarvený kód.
Yuhů
Profil
> tím přebrat jsem myslel obsahově promazat

aha. No, neumím si racionálně představit nikoho, kdo bude přebírat 42 tisíc témat a posuzovat, zda stojí nebo nestojí za smazání.

> Mohli bychom přidat rovnou Texy! s FSHL, což vytváří pěkně obarvený kód.

pošlu ti zdrojáky, zapracuj to do nich. Chceš?
Peca
Profil
ronnie
Pokud to dobře chápu, tak volba "Třídit podle nových odpovědí" by se asi zrušila? Ne že by mně to nějak vadilo... Nebo by se to dalo řešit obdobným způsobem pomocí nové tabulky.
djlj
Profil
Yuhů
A používá MiniBB indexy u tabulek? Pokud ne, jejich vhodné přidání by mohlo načítání z databáze znatelně zrychlit.
Yuhů
Profil
> Vytvoří se vlastní tabulka, kde bude ID, název, počet reakcí, jméno posledního reagujícího a datum.
> Tím sice dojde ke zdovojení dat v databázi, ale hlavní příspěvky se vypíšou jednoduchým dotazem SELECT * FROM tabulka ORDER BY date.

no jo, ale ono už to tak je. Vypsání hlavní stránky je, jak se na to teď koukám, jeden select z tabulky témat. Není o nic těžší než to, co navrhuješ ty. S tím rozdílem, že z té tvé tabulky by se musely záznamy nějak mazat.

Takže hláška "jednoduše optimalizovat" mi přijde zbytečně optimistická.
Yuhů
Profil
indexy tam jsou, po poslední optimalizaci (díky adminovi serveru) i vícesloupcové, přes všechny pole častých dotazů
ronnie
Profil
Peca: přesně tak, asi bychom hlasovali, zda tuto volbu zanechat. Já ji nepoužívám, nakonec mi příjde i poměrně nepraktická, ale to je můj názer. Nicméně přesně jak píšeš, pokud by byl zájem, šlo by to vyřešit tak, jak píšeš.

Yuhuu pošli mi zdrojáky na adresu jakub.mrozek@gmail.com a já se podívám, co by šlo udělat. Nasadili bychom tedy texy s FSHL pokud nemá nikdo nic proti. Můžu zařídít i hosting pro testování, v tom by problém nebyl.

Teď jedu na víkend za přítelkyní, podíval bych se na to začátkem týdne v pondělí nebo útery, otesovali bychom to na hostingu a pak to převedli na tento stávající.
ronnie
Profil
Yuhuu: ok, myslel jsem, že se prohlédává celá databáze a je to nějaký složitější SELECT. Přímo MIniBB neznám.

Tak alespoň nasadit Texy:)
Yuhů
Profil
ronnie, ale jestli by ses na to díval jenom kvůli Texy a FSHL, tak to nemá cenu. To nemá žádnou prioritu.
ronnie
Profil
Šlo by ještě zrušit to zhlédnutí...pak už mě nenapadá, jak diskusi ještě zrychlit a zachovat MiniBB. Tedy pak by ještě šlo cachovat stránky přes mod_rewrite. Tak tuším funguje web o Pear na pear.php.net. V principu to funguje tak, že se vytváří statické soubory a přes mod_rewrite se pak testuje, zda existují.
Kajman_
Profil *
Bude o tolik víc práce převést tuhle db do novějšího minibb? Aspoň by se zjistilo, jestli je to fakt optimalizované a nebude se muset stejný problém řešit za dva roky.

btw: Je db na novém stroji rovnou v latin2, aby se nic nepřevádělo - tam pak je potřeba výkon citelný? On se dá snad nastavit i nějaký charset, že se mysql nemá snažit převádět a rovnou to ignorovat.
Yuhů
Profil
> Bude o tolik víc práce převést tuhle db do novějšího minibb?

Přechod na miniBB 2.0.3 si představuju takto:

* prostudovat dokumentaci
* překonvertit databázi podle instrukcí (co jsem koukal, tak se snad akorát přidávají sloupce, možná by to šlo udělat rovnou na ostré)
* zkusit, jestli na tom zatím jede stará verze (měla by, snad) Pokud nepojede, tak konvertovat zpět a jít na to jinak.
* rozbalit 2. verzi miniBB do jiného adresáře
* nastavit konfiguraci pro 2. verzi (přístupy do databáze, názvy sloupců v databázi)
* nakopírovat českou jazykovou verzi
* zkusit, jestli 2. verze funguje (stále mluvím o instalaci v nějakém jiném adresáři). Počítám, že tam budou trable, ale mohla by.
* nakopírovat z první verze stopslova, soubory s pravidly a další statické soubory,
* nakopírovat konfiguraci témat,
* nakopírovat konfiguraci adminů. Pokaždé zkusit, jestli to funguje.
* nakopírovat do 2. verze staré šablony. Naše staré šablony obsahují některé důležité vychytávky (méně tlačítek, javascriptové kontroly, hledání apod.) a jsou příjemně jednodušší než nová verze.
* zkusit, jestli šablony fungují, tedy jednu po druhé projít, případně opravit.
* prohlédnout stávající zdrojáky staré verze a přepsat do nové verze všechno, co jsme si dopsali sami. Minimálně mě napadá
- můj antispam
- tag pro předformátovaný text
- a možná další věci, o kterých vůbec nevím.
* doinstalovat momentálně používaná rozšíření (myslím, že v administrační části něco takového je)
* testovat, testovat, testovat.
* případně spustit přehozením souborů z testovacího adresáře do hlavního

* teprve potom řešit případné nasazení mod_rewrite

Počítám, že v každém kroku se může něco podělat. Tož tak. Práce na full time týden :-)

Co jsem tak koukal do zdrojáků verze 2.0.3, tak jsou podobně příšerné jako verze 1.6, na které jsme začínali. Moc mě to netěší, ale podle nové struktury databáze se mi zdá, že přeci jen ty selecty pro hlavní stránku a stránky sekcí mohou být o poznání jednodušší.

(Latin2 je nastaveno všude, nic se evidentně nekonvertí.)
DoubleThink
Profil *
Navrhol by som previesť len aktívnych užívateľov
Informace o aktivitě uživatele (tím myslím všeobecné, ne jenom zápis) se neukládá. Nejdou spolehlivě rozlišit aktivní a mrtvé účty. Kromě toho, tato tabulka se na zátěži prakticky nepodílí.

Tedy pak by ještě šlo cachovat stránky přes mod_rewrite
Nevím, jestli má cenu cacheovat něco, co se skoro každou minutu mění.

Mohli bychom přidat rovnou Texy! s FSHL, což vytváří pěkně obarvený kód.
No, tedy bez Texy bych se rozhodně obešel. Do této diskuse se nehodí, je moc komplexní.
Se zvýraznění PHP syntaxe souhlasím - na její implementaci se už chystám delší dobu. IMHO úplně postačí PHP funkce highlight_string()
krteczek
Profil
Yuhů: nestálo by za to pouvažovazt nad jiným hostingem? 503 tu naskakuje příliš často než aby se dalo mluvit o náhodě.
Dají se někde získat informace o denní, týdenní, měsíční zátěži (trafic, průměrný počet uživatelů ve špičce/mimo špičku, další věci)?
krteczek
souki
Profil
krteczek
Opravdu? Mě se zdá že to delší dobu funguje v pohodě. A to tady vysedávám většinu dne a na diskusi koukám cca každých 5 minut (závislost.. ale můžu s tím kdykoliv přestat :) ) Ale je pravda, že občas na pár vteřin zatuhne
Petr Tichý
Profil
souki
Též jsem závislý :o(

Jinak si myslím, že je to unesitelné. Občas skočí problémy na serveru, občas se zasekne loading, ale vcelku je to dobré.
Dero
Profil
Moji závislost maskují povinnosti moderátora. :o)

Jinak problémy pozoruji jen zřídka.
Yuhů
Profil
Potřebuju volný týden na optimalizaci. Už jsme s Doublethinkem rozjeli testovací web mimo, teď postupně procházím staré a nové šablony a zjišťuju, co bude potřeba změnit. Chtěl bych to dodělat do léta. Fakt mě to nebaví, ale tahle verze fóra není stavěná pro množství příspěvků, které se zde objevuje, masakruje to databázi. Hosting je dobrej, jinde by to asi lehlo úplně.
Toto téma je uzamčeno. Odpověď nelze zaslat.