Hoho, Transaktions-API in Windows Vista!



  • Also das ist ja schon mal was echt feines. Die Idee ist doch sicherlich auch nicht neu, man braucht ja auch in jedem Dateisystem zumindest Dateiweise ein Transaktions-Konzept, um den Index zu schützen. Was mich mal interessieren würde: Warum hat das bis jetzt kein Betriebssystem aufgegriffen? Es gibt seit Jahrzehnten Datenbanken, auch Open-source 😉 mit Transaktionen, ist es irgendwie wesentlich schwieriger, sowas für das Dateisystem ordentlich anzubieten?

    Für die, die nicht wissen, worum es geht: Man kann in Windows Vista Änderungen am Dateisystem und in der Registry in eine Transaktion zusammenfassen und atomar ausführen oder zurückrollen. Das ist wohl vor allem bei Updates ziemlich praktisch, weil es dann nicht passieren kann, dass eine Date gepatched ist, die andere nicht und rückgängig machen klappt jetzt irgendwie nicht mehr...



  • Mittels Transaktionen wird doch Journaling unter Linux realisiert. Ich weiß nur nicht, ob man da ein Rollback machen kann 😉



  • Gibt es doch schon Teilweise bei XP, da kann man auch auf gewisse Einstellungen vor einem Update zurücksetzen.
    Was sicherlich das Problem ist, dass du die Änderungen alle Speichern musst, und damit deine Platte zumüllst.

    Es gibt im pbrigen auch Modelle das Dateisystem über ne Datenbank laufen zu lassen. wäre nicht schlecht, weil man dann Datein nach mehr Werten als nur Verzeichnis und Name vergleichen kann. Allerdings leidet darunter die Leistung des Systems.

    Das beste Rollback ist eh ein Backup :p



  • kingruedi schrieb:

    Mittels Transaktionen wird doch Journaling unter Linux realisiert. Ich weiß nur nicht, ob man da ein Rollback machen kann 😉

    reden wir vom gleichen? von transaktionen?

    ich verstehe darunter:

    transaction start
    if(emerge gcc)
      transaction commit
    else
      transaction rollback
    

    alle änderungen während emerge gcc sind flüchtig, wie auf ramdisk, aber wenn das script dann transaction commit aufruft, werden alle änderungen gleichzeitig und auf einen schlag (atomar) verwirklicht (nichtflüchtig gemacht). also transaktionen auf userebene, wo man sie braucht. oder gibts dazu schnittstellen im journalling filesystem?



  • Ganz mieses Beispiel, emerge benutzt eine Sandbox, das ist sowieso (quasi) atomar :p
    Für ganze Anwendungen gibts das AFAIK nicht (außer solche Notlösungen wie halt eine Sandbox). Aber die meisten modernen Dateisysteme (ReiserFS im Speziellen) machen das auf Dateiebene von sich aus.
    Deine Auffassung von Transaktionen auf normalen Dateisystemen zu implementieren ist IMHO kaum möglich, besser geeignet dafür wäre eine Log-Structured-FS, was das quasi von sich aus macht.



  • Außer ReiserFS ist mir kein Linux-Dateisystem bekannt, welches atomare Transaktionen ermöglicht. Mit Transaktionen meine ich das zusammenfassen von mehreren voneinander unabhängigen Aktionen in einen atomaren Block. So wie bei Datenbanken, oder wie bei dem neuen Windows Filesystem.
    Ext3 - oder davon abgesehen alle anderen Journalling FS auch - schreiben die durchzuführenden Änderungen zuerst in ein Journal (daher der Name 😉 und dann auf die Platte. Das ermöglicht es, kaputte Aktionen zurückzufahren. Aber nicht manuell und auch nicht im Sinne von Datenbanken.

    volkard: Transaktionen auf Userebene können in Reiser über diverse Programme erledigt werden. Ich kenne die Programmierschnittstelle dazu allerdings nicht..

    Übrigens: http://www.pro-linux.de/news/2006/10062.html



  • Wurde WinFS nicht fallengelassen?!



  • .filmor schrieb:

    Wurde WinFS nicht fallengelassen?!

    Ja.
    Offiziell heißt das, man würde das Wissen und das Know-How welches man während der Entwicklung gesammelt hat, in die zukünftige Entwicklung von ADO .NET, also SQLServer, einfließen lassen.
    Jedoch wäre Microsoft nicht Microsoft wenn es nach jeder Versionsumstellung nicht Änderungen in den grundlegenden Technologien geben würde - so wie es in dem NTFS System durch das Hinzufügen von Transaktionen wohl geschehen ist.



  • Headhunter schrieb:

    Jedoch wäre Microsoft nicht Microsoft wenn es nach jeder Versionsumstellung nicht Änderungen in den grundlegenden Technologien geben würde

    Deshalb unterstützt ja auch Vista noch Windows 3.1 API Funktionen ...
    Wo steht überhaupt was über dieses Transaktionssystem? Eine wirklich tiefgreifende Änderung am Dateisystem ist es wohl eh nicht, eher ein Aufsatz darauf.



  • .filmor schrieb:

    Deshalb unterstützt ja auch Vista noch Windows 3.1 API Funktionen ...

    Jedes Windows hat bisher auch APIs von, halt dich fest, Windows 1.0 unterstützt. Abwärtskompatibilität war eine der größten Stärken (und oft auch Schwächen) von Microsoft.
    Aber wo siehst du darin einen Widerspruch zu "Änderungen in den grundlegenden Technologien"? Oder bist du der Überzeugung, dass es seit Windows 1.0 keine grundlegenden Änderungen mehr gab?



  • Die API ist ja erstmal nur ein Interface. Wenn Vista noch die Win3.1-API unterstützt, muß das nicht zwangsweise heißen, das auch noch Win3.1-Code implementiert ist. Es ist nur das Interface, die Implementierung sehen wir ja erstmal nicht.



  • .filmor schrieb:

    Ganz mieses Beispiel, emerge benutzt eine Sandbox, das ist sowieso (quasi) atomar :p

    unfug. am ende wird ne minute lang ins system reinkopiert und ich hab immer ne heidenangst, daß in so einer minute mal jemand übers kabel stolpert.



  • volkard schrieb:

    .filmor schrieb:

    Ganz mieses Beispiel, emerge benutzt eine Sandbox, das ist sowieso (quasi) atomar :p

    unfug. am ende wird ne minute lang ins system reinkopiert und ich hab immer ne heidenangst, daß in so einer minute mal jemand übers kabel stolpert.

    Hihi 🙂
    Wenn das nächste mal einer stolpert kannst du mit dem "ebuild" Kommando auch gezielt einzelne Schritte der Installation wiederholen.. z.B. "install".

    Zum Thema Abwärtskompaktibilität empfehle ich einfach mal die Textdatei über stabile APIs (und warum diese Blödsinn sind) im Kernelverzeichnis zu lesen.



  • Das Transaktions-API hat nichts mit dem neuen Dateisystem zu tun (das es erstmal nicht geben wird). Ich weiß auch nicht, ob das jetzt genau vom Dateisystem-Treiber oder an anderer Stelle im Kernel implementiert wird.

    Hier ist noch ein Link:
    http://msdn.microsoft.com/msdnmag/issues/06/07/BeyondWinFX/default.aspx

    @Headhunter: Sowas geht also mit ReiserFS?

    begin transaction

    copy file a
    move file b
    delete file c

    commit / rollback

    dat wusste ich auch noch nicht. 👍



  • Ich auch nicht. Wenn ichs gewusst hätte, dann hätte ich /var/db noch 😉



  • rofl.


Log in to reply