Probleme mit Dateizugriff???

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit Dateizugriff???

    Meine Frage ist eigentlich ziemlich Allgemein.

    Problem ist, dass ich eine .txt datei habe welche in einer Stunde über 1.000 mal Aufgerufen werden soll.

    Eigentlich wird auf die Textdatei mit einem Script bis zu 1.000 mal zugegriffen. Wahrscheinlich wird die Datei auch mehrere Zugriffe in gleichen Moment aushalten müssen.

    Kann es in dieses Moment zu Performanceverlusten kommen( eventuell kann die Datei nicht geöffnet werden) oder wird diese dann vom Apache gepuffert.

    Oder ist es doch lieber besser eine CVS zu benutzten?

    Danke schon mal im voraus

  • #2
    cvs ist immer noch nur eine datei - daher nicht wirklich besser.
    gepuffert - je nach einstellungen, aber wenn sie auch wieder beschrieben wird - muss sie eh neugelesen werden, oder?

    ansonsten kannst du dir ja noch flock() anschauen...

    ne frage - wenn schon so viele besucher - ist denn das die einzige möglichkeit, daten abzulegen? wäre eine db nicht sinnvoller?

    Kommentar


    • #3
      ja klar. Ich habe es auch gerade auf einer Datenbank. Läuft auch, allerdings arbeitet der SQL-Server schon ziemlich am Limit.

      Ein zweiter Punkt wieso ich es mal mit einer Datei versuchen möchte liegt in der Geschwindigkeit. Es werden nämlich nur 30 Zeilen ausgelesen und in da ist eine Datei wesentlich schneller als eine MySQL-Datenbank.

      Das waren meine ersten gedanken. Mit ist eigentlich jeder Gedanke lieb. Ich sammel erstmal Ideen und dann wird Programmiert.

      Kommentar


      • #4
        naja, 1000 aufrufe inner stunde ist eigentlich noch lange nicht viel...
        wenn's nur eine datei ist, in ein text gespeichert ist und nur von dort aus aufgerufen wird, denke ich, wird's einen tick schneller als eine db sein können. wenn es strukturierte daten sind (und ich denke es sind welche, oder?), mit denen noch etwas gemacht wird, wird eine db aber schneller sein.

        generell behaupte ich, dass eine richtig programmierte anwendung bei 1000 besuchern pro stunde problemlos laufen kann. selbstverständlich kann man aber auch ihre performance mit sachen wie mmcache verbessern.

        werd konkreter, vielleicht geht's dann besser mit dem gedankensammeln, denn der ansatz ist schonmal richtig!

        Kommentar


        • #5
          Es läuft Stündlich ein Cronjob an, welcher die 10 höchst Bewerteten Bilder ausliest und in Datei haut. Natürlich schön mit Tabulator dazwischen

          fwrite($datei, "".$toppics[$i][picid]."\t".$toppics[$i][userid]."\t".$toppics[$i][pic]."\t".$toppics[$i][pro]."\r\n");

          in der Datei stehen jetzt die Datensätze schön untereinander. Möchte jetzt ein User die TOP 10 sehen. Werden somit der Script alle einträge aus dein Datei gelesen und Strukturiert Dargestellt.

          Ausgelesen werden die Datensätze aus der Datei per

          fscanf();

          Meine Bedenke gehen jetzt in die Richtung der Performance.
          - Was passiert wenn der Cronjob gerade eine neue TOP10 erstellt und im gleichem Moment ein User die TOP10 sehen will. Damit hätte ich 1 Schreibprozess und 1 Leseprozess. Eigentlich sind 2 verschiedene Prozesse nur per CSV möglich welches ja genau für diesen Zwerk erfunden worden ist.

          Kommentar


          • #6
            ok - besser.. mein erster eindruck - auf jeden fall eine db benutzen.
            genauer:
            1. cronjob ist bei 1000 besuchern / std nicht immer nötig - oft reicht es, die startseite (oder die, wo alle besucher mind. 1 mal pro besuch auflaufen) mit dem code einer ähnlichen konstruktion versehen:
            Code:
            letzte_aktualisierung_ermitteln(); //ob aus der db oder datei
            if((ZEIT - LETZTE_AKTUALISIERUNG) > 1 STD) {
                aktualisieren();
            }
            oft kommt's auf diese abweichung von wenigen sekunden/minuten nicht an...
            2. generell lässt sich bildergalerie-ranking einfacher aus der db einlesen (die hits werden schon dort gespeichert, fehlt nur noch die sortierung bei der ausgabe)
            3. csv ist nur eine textdatei, afaik gibt es an ihr keine spezielle zugriffspufferung, in einer db dagegen doch.
            4. eine bildergalerie auf der basis von textdateien ist imho zur trägheit und unsicherheit verurteilt.

            Kommentar


            • #7
              deiner meinung nach sollte ich also z.B: ein HTML-Datei generieren und wenn die letzte Aktuallisierung der Datei x Stunden zurückliegt einfach die alte HTML-Datei aktualisieren und mit neuen Inalt bestücken

              Kommentar


              • #8
                nein. eigentlich gar keine datei - ich empfehle ausdrücklich eine db
                wenn schon eine datei sein muss, dann kannst du sie erstellen, wie du willst - ob durch cronjob oder durch den ersten besucher einer neuen vollen stunde, der durch seinen aufruf der startseite die aktualisierung erzwingt, und direkt die frischen ergebnisse bekommt.

                Kommentar


                • #9
                  So kurz vor Weihnachten wird man immer träge

                  meine Hirnanhangsdrüse stellt sich gerade die Frage:

                  Nehmen wir an der User guck sich die TOP10 an. Die Daten wurde aus der Datenbank ausgelesen. Alles ok

                  bis jetzt:

                  Er kommt jetzt am nächsten Tag wieder und möchte natürlich die aktuellen TOP10 sehen. So, nun habe ich aber in dem aktuallisierungsintervall aber gesagt. Die Aktualliesierung soll nur alle 2 Tage stattfinden. Dann muss ich ja wieder aus der Datenbank lesen, weil ich ja z.B: keine Datei erstellt habe wo die alten Datei nochmal stehen.

                  Eigentlich war der Sinn der Datei, dass ich die Anzahl der Datenbankzugriffe runterschraube.

                  Kommentar


                  • #10
                    Original geschrieben von penizillin
                    cvs ist immer noch nur eine datei ...
                    CVS ist überhaupt keine Datei ... sondern ein Concurrent-Versioning-System ... csv ... das könnte 'ne Datei sein ... und die wäre dann auch nur 'ne Datei ...
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      goth hat natürlich recht
                      und ich trete dem club "cvs und csv? hauptsache "c", "s" und "v" in irgendeiner reihenfolge!" bei

                      Kommentar


                      • #12
                        Original geschrieben von goth
                        CVS ist überhaupt keine Datei ... sondern ein Concurrent-Versioning-System ... csv ... das könnte 'ne Datei sein ... und die wäre dann auch nur 'ne Datei ...
                        Das war penizillin und mir auch klar und wieder versucht einer vom Thema abzukommen.

                        Es geht um eine generelle Frage. Was besser ist ein CVS oder eine Datei und diese Frage haben ich nicht generell gestellt sondern nur auf mein Problem...

                        War das erste was mir auch aufgefallen ist und trette dem Club auch bei.

                        CVS, VCS, SCV,...... ist doch alles egal. Dann kann uns ja auch egal sein. Ob es eine Datei ist oder ein CVS
                        Zuletzt geändert von DigitalDoener; 23.12.2004, 17:50.

                        Kommentar

                        Lädt...
                        X