PDA

Bekijk Volledige Versie : Database clusters



FransVanNispen
04/10/08, 12:55
Voor een project ben ik wat opties aan het bekijken, en zou graag wat feedback hebben van mensen die hier ervaring mee hebben.

Het gaat om een project waar een behoorlijk grote database achter komt en een enorme hoeveelheid bestanden (plaatjes en audio clips).

De bestanden kunnen als files op diverse servers of een SAN worden opgeslagen, maar kunnen ook als blobs in een database worden geplaatst.

Heeft iemand ervaring met de voor en nadelen daarvan?

Een ander punt is de schaalbaarheid van de database. Wij dachten aan MySQL in een master-master setup, waar de masters ook slaves kunnen hebben.

Echter, nu vernam ik dat Postgresql in staat is op eenvoudige wijze te clusteren, en dat je dan niet te maken hebt met de problemen die je bij MySQL tegen komt.

Een probleem is bijv dubbele keys in MySQL, wat wel kan worden afgevangen door de nummering van keys te regelen met een modulus en een offset, maar dat schaalt niet lekker bij uitbreiding.

gjtje
04/10/08, 21:36
Een bestandsysteem is gemaakt om bestanden op te slaan en terug te vinden, blobs zijn lekker makkelijk maar voor volledige snelheid sla je ze direct op schijf op en een referentie naar het bestand in de database.

Voor keys kan je ook kijken naar bijvoorbeeld GUID's die zijn sowieso uniek binnen een netwerk.

maxnet
04/10/08, 23:16
De minste overhead heb je bij bestanden die op de webserver zelf staan.
Een veel opgevraagd bestand zal (door de caching van het OS) in het geheugen blijven, en kan meteen naar de gebruiker worden verstuurd.

Haal je het van een externe databaseserver, dan moet het bestand steeds weer over het interne netwerk heen en heb je de overhead van het DBMS en het script.


PostgreSQL heeft standaard geen ondersteuning voor clustering. Daar heb je diverse add-ons voor. Welke had je in gedachte?

De extensies die asynchroon werken zullen hetzelfde probleem met sequences hebben als MySQL met auto_increments.

Dreas
05/10/08, 14:04
Je zou ook eens kunnen kijken naar Amazon Web Services voor je storage. Dat werkt behoorlijk efficient en is redelijk betaalbaar. Over het algemeen zou ik de setup zo simpel mogelijk proberen te houden .. dat scheelt een hoop gedoe :)