Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 127 reacties, 143.190 views •

De engine in de toekomst

Onze site, code en engine kunnen altijd beter. De belangrijkste toepassing die nog niet gerealiseerd was bij de release van Tweakers 7, was de integratie van het forum. We willen namelijk dezelfde techniek gaan gebruiken om lijstjes forumtopics te kunnen presenteren, bijvoorbeeld als tab binnen een merkpagina. Die toont dan alle forumtopics die gekoppeld zijn aan het merk Kingston of producten van dat merk. Bovendien moet de zoektechniek die we voor veel andere onderdelen van de site hebben geïntroduceerd ook voor het forum gebruikt gaan worden. Omdat het hier gaat over tientallen gigabytes aan informatie, hebben we dit niet gelijk geprobeerd te integreren.

Dbadmin disk-grootte voor Topics en Messages

Op deze manier konden we eerst de basisideeën van de techniek goed in de praktijk testen. Bovendien zou het integreren van die functionaliteit onze overstapdatum weer weken of zelfs maanden uitgesteld hebben. Het is natuurlijk jammer voor degenen die al heel lang wachten op een betere zoekmachine in het forum, maar hij is eindelijk in ontwikkeling. Op het moment van schrijven is er zelfs al een goed werkende opzet, die we nu verder uitwerken :)

Forumtab van TPlink voor Tweakers 7

Daarnaast is het de bedoeling dat je de forumtopics ook bij de algemene zoekresultaten gaat vinden. Ook dit is geen triviale uitbreiding; dus ga er maar vanuit dat we de nieuwe forumzoekmachine eerst in gebruik nemen en dat we de geïntegreerde zoekfunctie pas in een latere iteratie uitbreiden.

Verder zullen we natuurlijk nog kijken naar andere onderdelen van de site die hier nog niet in opgenomen zijn en daar wel baat bij hebben. Momenteel vallen onder andere de Meuktracker, onze banensectie en wat andere kleinere delen nog (deels) buiten de boot. Ook die stonden eerder wel op het programma, maar zijn uiteindelijk uitgesteld om het Tweakers 7-project een gezonde einddatum te kunnen geven.


Reacties (127)

Reactiefilter:-11270122+195+220+30
Moderatie-faq Wijzig weergave
Netjes geschreven en goed te begrijpen. Kort gezegd werden jullie door de hoeveelheid data/operaties die moesten worden uitgevoerd, geforceerd om dieper na te denken over de architectuur van de site en hebben jullie gekozen voor een soort api interface. Java is logische keuze,zeker als de voorkant al met php werkt. De architectuur ziet er netjes uit :)

[Reactie gewijzigd door BlackHawkDesign op 16 november 2012 14:33]

Prachtig artikel, goed geschreven en interessant. Bedankt! :-)
Leuk om eens wat meer van de achterkant van tweakers te lezen. Dit soort artikelen mogen vaker van mij voorbij komen
Leuk en goed artikel, wat dieper ingaand op de techniek, dat is toch iets waarmee Tweakers zich kan onderscheiden! Goed dat jullie de ontwikkelingen in de techniek ook op jezelf betrekken, compliment :).
Grappig om te zien wat er allemaal wel niet met tomcat kan. Ik had ooit mijn website in tomcat draaien op een thin client met 100mb ram op damn small linux. En dan zie je nu dat tomcat de engine is van iets als tweakers.net draait. Uiteindelijk ben ik maar over gegaan naar een VPS omdat mijn derby database te zwaar werd om naast tomcat te draaien en ik sql lite niet aan de praat kreeg.

[Reactie gewijzigd door Leejjon op 16 november 2012 15:38]

Moderne tomcat's (5.5+) hebben bij ons altijd goed gedraaid. Overigens wel met een vrij eenvoudige en standaard configuratie. Wellicht heb jij ervaringen met oudere versies of complexere opstellingen... Maar in onze ervaring is het absoluut geen horror.
Ik ben de laatste tijd erg fan van Scala, het heeft de beste tool van java naar mijn mening mee: de JVM :) Java is helaas naar mijn mening te ver onder de rok van oracle geschoven, en ze vernieuwen helaas niet. Scala doet dat wel en op een functioneel programmeerbare manier wat prachtig is (maar wel moeilijk).
Het ontbreekt alleen aan fatsoenlijke bibliotheken voor scala, maar dat zal wel snel gaan veranderen. Verder kan java en scala door elkaar gebruikt worden.

Ik ben verder ook benieuwd naar de mening dat Scala niet verticaal schaalbaar is?
Waar kan ik hier meer over lezen? En ik kan me niet voorstellen dat Java meer verticaal schaalbaar is.
Als je dat er uit leest dan heb je me verkeerd begrepen of ik het verkeerd opgeschreven :P
Mijn punt is juist omgekeerd; je ziet best vaak opmerkingen dat Scala heel sterk in horizontaal schalen is en dat dan beter zou kunnen dan Java.
Maar er is domweg een eindigheid in het aantal resources, of je nou heel veel horizontaal of verticaal doet, je zal ergens in gaan leveren. Hoe meer je je belasting horizontaal uitsmeert, hoe minder je er verticaal van doet (oftewel, response tijden nemen toe), althans, zodra je je resources 100% belast zijn natuurlijk.

Je kan in die gevallen eigenlijk alleen nog maar winst boeken door minder werk per request te doen of door de administratieve overhead te beperken :P
Goed om te zien dat de devs bij tweakers.net het begrip architectuur tenminste begrijpen en toe durven passen - dat gaat veel programmeurs toch echt te ver. Om de frontend met PHP te maken vind ik dan wel weer een spannende keus, ik had dan zelf voor Play framework gekozen met Scala als voertaal om wat meer in het Java platform hoekje te blijven zonder de lasten ervan te ondervinden.
Zowel Play als Scala waren nog niet bekend of stabiel ten tijde dat deze engine opgezet werden. Daarnaast, Scala is leuk maar het heeft twee nogal zwaarwegende nadelen:

* Lange compile-tijd (minuutje voor tien files als je pech hebt)
* Niet snel (single-core; het is horizontaal schaalbaar, maar dat gaat ten koste van snelheid) (afhankelijk van toepassingen)

Begrijp me niet verkeerd, ik ben fan van Scala, maar ik kan goed begrijpen waarom ze die hier niet gebruikt hebben. Daar komt nog bij dat 'hardcore' Scala toch van een iets hoger niveau is dan 'gewoon' Java, denk DSLs en functioneel programmeren en dergelijke. Waar je in java 10 manieren hebt om een probleem op te lossen, heb je in Scala 100 manieren - minstens.

[Reactie gewijzigd door YopY op 19 november 2012 16:52]

Die PHP-frontend was er ruimschoots voor de Java-backend he? Dus dat was niet zozeer een gewaagde keuze, als eentje die al lang en breed gemaakt was. Je moet het meer zien dat we een complexe "ProductService"-klasse, met een uitgebreide verzameling aan ondersteunende klassen, in de PHP-code vervangen hebben door een nieuwe simpele klasse die domweg alle gekozen opties vertaald naar GET-parameters, de boel doorstuurt naar de Java-omgeving en het resultaat afwacht.
Zeker een interessant artikel om te lezen. Wat mij betreft had het zelfs nog wel ietsje technischer gemogen. Des noods onder aparte kopjes, zodat minder geinteresseerde lezers het kunnen skippen. Desalniettemin is het een mooi verslag van de architectuur en overwegingen.
Ik denk dat dit juist is waar de "echte" tweaker van houdt.
De technisch mindere (zoals ik) onder ons heeft genoeg artikelen die we wel super kunnen lezen
Ik wilde net posten dat zelfs minder technisch onderlegden hier met wat rustig lezen uit zouden komen. ;)

Maar ik vraag me af waar het mis gaat als ik naar de blogs ga. Daar moet ik opnieuw inloggen (?) en krijg dan "Ongeldig token" terug, zonder ingelogd te zijn. Als ik terug huppel naar de frontpage werkt alles, en ben ik ingelogd.
Schoonheidsfoutje ergens?
Ik begrijp helemaal dat soms DIY de beste oplossing is :)

Ooit was ik aan het hobbien ( hier niet mee te vergelijken) om een zoekmachine te bouwen, met als speciale eis dat je oneindig (zonder performance verlies) moest kunnen pagineren.

De dataset bevatte ongeveer 4.5 miljoen artikelen (inmiddels >5M)

Zelfs met de Enterprise Editie van SQL Server was het niet te doen, goede full-text engine, maar niet daarvoor. Oracle had misschien gekund omdat deze wel bitmap indexes ondersteund, maar daar had ik geen licenties voor liggen.

Uiteindelijk zelf via GDI+ een zoekengine geschreven.. :P werkt als een trein.

http://search-geenstijl.thruhere.net/
Oracle had misschien gekund omdat deze wel bitmap indexes ondersteund, maar daar had ik geen licenties voor liggen.
Oracle kun je gewoon downloaden en gebruiken om mee te hobbien.

http://www.oracle.com/tec...tion/downloads/index.html

Volgens mij hoef je pas te betalen op het moment dat je het commercieel gaat gebruiken.
Gaat de output van de nieuwe engine ook veranderen? Gaat er bijvoorbeeld gebruik gemaakt worden van http://schema.org/?
Schema.org staat los van de output van de engine. Uiteindelijk kan de data die uit de engine komt worden gebruikt, maar dat kon natuurlijk ook als het direct uit MySQL zou komen. Ook wordt er op Tweakers al gebruik gemaakt van schema.org in oa de pricewatch :)

Op dit item kan niet meer gereageerd worden.



LG G4 Battlefield Hardline Samsung Galaxy S6 Edge Microsoft Windows 10 Samsung Galaxy S6 HTC One (M9) Grand Theft Auto V Apple iPad Air 2

© 1998 - 2015 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True