Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949
Als je toch voor optie twee zou gaan is het verstandig een script te schrijven, bedoeld als cron-job, die de logica van je database naloopt, en je op inconsistentie wijst voordat de boel al te erg in de soep loopt...
[ Voor 40% gewijzigd door creative8500 op 25-12-2004 00:01 ]
Om er helemaal zeker van te zijn kun je in deze functies dan ook nog wat foutcontrole bouwen die controleert of het nog wel goed gaat.
Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.
Hehe, guess I had that comming.:)creative8500 schreef op vrijdag 24 december 2004 @ 23:59:
Als jij van jezelf weet dat comlexe scripts schrijven je niet foutloos afgaat, zou ik zo realistisch zijn om de eerste te kiezen.Sorry, kon het niet laten
Als je toch voor optie twee zou gaan is het verstandig een script te schrijven, bedoeld als cron-job, die de logica van je database naloopt, en je op inconsistentie wijst voordat de boel al te erg in de soep loopt...
Ik kan beide oplossingen zonder problemen maken, maar de eerste is wel minder werk (en dit is maar een klein onderdeeltje van een grote opdracht).
Ik heb m'n eigen text nog's herlezen, en zal de vraag een beetje herfrasen: Vinden jullie het, performance wise, nodig om van ditsoort files ook gegevens in de DB bij te houden, of vinden jullie het afdoende om de gegevens alleen op de HD op te slaan (waarmee er dus per request de hele dir gescand moet worden)?
Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949
Ik zou geen namen als 53245647645.jpg gebruiken, dat is alleen maar irritant als je handmatig iets moet herstellen in je filesystem.PanMan schreef op vrijdag 24 december 2004 @ 23:11:
1: De file op een filesystem zetten, en het itemnr in de filenaam. Dus iets als 123_foto1.jpg
2: De file in het filesystem zetten, en de info van de file bijhouden in een db. Dus dat ik ze b.v. random namen geef (53245647645.jpg), en in de db opsla dat dat foto.jpg is, die hoort bij item 123.
Verwijderd
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
Wat is dan die performance technische reden?Spider.007 schreef op zaterdag 25 december 2004 @ 14:08:
Volgens mij is een nette oplossing zonder enorme database ook mogelijk; maak een directory /files/ en dan per item een subdirectory waarin je de bestanden plaatstFiles in je database stoppen zou ik vanwege performanceredenen en overzichtelijkheid niet doen
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949
Ik heb zelf nogal wat performanceverlies geconstateerd bij het opslaan van bestanden in een populaire database; nadat ik over ben gegaan naar filenames in de database en files op het fs liep het allemaal een stuk betergorgi_19 schreef op zaterdag 25 december 2004 @ 14:10:
[...]
Wat is dan die performance technische reden?Het lijkt me dat er best (memory) caching modules zijn voor PHP
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
Vandaar ook cachenSpider.007 schreef op zaterdag 25 december 2004 @ 14:13:
[...]
Ik heb zelf nogal wat performanceverlies geconstateerd bij het opslaan van bestanden in een populaire database; nadat ik over ben gegaan naar filenames in de database en files op het fs liep het allemaal een stuk beter
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Dan zou ik toch voor het fs gaan; in plaats van het in het geheugen cachen van je files uit de database. Krijg je waarschijnlijk last van een vol geheugen; of wil je de cache juist weer op filesystem zetten?gorgi_19 schreef op zaterdag 25 december 2004 @ 14:18:
[...]
Vandaar ook cachenIedere keer de boel uit de database trekken is idd enorm traag
Een cache opbouwen in het geheugen is snel; meestal ook sneller dan vanaf het filesystem af halen
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
Ik weet dat MS SQL Server 2000 BLOBs (en dus ook (N)TEXT) opslaat los van de tabel. In elk record zit dan simpelweg een pointer naar de informatie op de speciale 'BLOB'-pages van de SQL Server. Op deze manier zou een dergelijke kolom niet van meer of minder performance-impact moeten zijn dan een INT (of misschien BIGINT).Spider.007 schreef op zaterdag 25 december 2004 @ 14:13:
[...]
Ik heb zelf nogal wat performanceverlies geconstateerd bij het opslaan van bestanden in een populaire database; nadat ik over ben gegaan naar filenames in de database en files op het fs liep het allemaal een stuk beter
En wat ik dan graag doe is de memory caching logica uitbreidden met een diskcache.Spider.007 schreef op zaterdag 25 december 2004 @ 14:22:
Dan zou ik toch voor het fs gaan; in plaats van het in het geheugen cachen van je files uit de database. Krijg je waarschijnlijk last van een vol geheugen; of wil je de cache juist weer op filesystem zetten?
Bijvoorbeeld 1000 laatst opgevraagde objecten onder 25KB in geheugen cachen en 'de rest' in een caching directory op schijf tot een limiet van bijvoorbeeld 1GB. In zo een situatie is het caching mechanisme makkelijk te tweaken naar belasting, hoeven alleen de applicatie en de db in de backup, kunnen mensen je systeem niet vernaggelen door bestanden te wijzigen en kun je heel makkelijk meerdere front-end nodes toevoegen of front-end node 'verplaatsen' of migreren.
Verwijderd
Dan ben je niet handig bezig. Een (degelijke) database heeft standaard caching wat de performance bevorderd. En juist dat was je argument om niet voor een volledige database oplossing te gaan.Spider.007 schreef op zaterdag 25 december 2004 @ 14:22:
Dan zou ik toch voor het fs gaan; in plaats van het in het geheugen cachen van je files uit de database. Krijg je waarschijnlijk last van een vol geheugen; of wil je de cache juist weer op filesystem zetten?
Maar is het echt een goed idee om voor een database te gaan die door middel van caching de prestaties op een gelijk niveau zou brengen met files op het filesysteem? Je gaat toch geen systeem gebruiken waarbij je uitgaat van caching van je applicatie? Je gebruikt toch de snelste/beste oplossing en probeert deze door middel van caching eventueel nog sneller te maken?Verwijderd schreef op zaterdag 25 december 2004 @ 21:45:
[...]
Dan ben je niet handig bezig. Een (degelijke) database heeft standaard caching wat de performance bevorderd. En juist dat was je argument om niet voor een volledige database oplossing te gaan.
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
Verwijderd
Verwijderd
Als we het toch over cachen hebben, deze lijst kan natuurlijk ook gecachet wordenPanMan schreef op zaterdag 25 december 2004 @ 02:03:
of vinden jullie het afdoende om de gegevens alleen op de HD op te slaan (waarmee er dus per request de hele dir gescand moet worden)?
Even zonder gekkigheid:
Het beste is wat mij betreft toch echt het best om de lijst in een database op te slaan. Immers, dan heb je een veel beter overzicht, en is het generenen van informatie gemakkelijker (lijst van alle bestanden die bij een item horen? Halen we uit de database, zonder ook nog 's het filesystem extra aan te moeten spreken). Waarom zou het moeilijk zijn dit synchroon te houden?