Frank Glencairn hat geschrieben: ↑So 28 Jan, 2018 11:15
Ich versteh immer noch nicht wo dein Problem mit der Datenbank in der Praxis ist.
datenbanken per se zu verdammen und abzulehnen macht sicher keinen sinn. ich kann gut verstehen, dass sie im resolve genutzt werden, und man mittlerweile eben auch dazu übergegangen ist, sie als einziges mittel der längerfristigen datenverwaltung einzusetzten bzw. die parallele möglichkeit serialisierte XML-projektverwaltungsfiles im dateisystem abzulegen neuerdings nicht mehr zur verfügung steht.
auch die konkret verwendeten datenbanken --
postgresql in den größern setups, wo auch kollaborationsfähigkeiten geboten werden, und
sqlite als einfache lösung, die ohne großen aufwand als eingebette datenbank lokal genutzt werden kann -- finde ich beide gut und ausgereift. es handelt sich dabei ja auch in beiden fällen um sehr bekannte open source projekte, die lange jahre der entwicklung und der laufenden verbesserung hinter sich haben.
wenn man das ganze also wirklich ernsthaft hinterfragen will, kann es dabei nur um die frage gehen, wie weit die datenstrukturen in diesen zusammenhang auch jenseits des genutzten anwendungsprogramms eingesehen, genutzt und ggf. überprüft, modifiziert und von außen repartiert werden können -- evtl. aber auch um die frage, welche probleme sich vor allem im zusammenhang mit
schleichenden fehlern bzw. sehr schwer und oft viel zu spät entdeckten inkonsistenzen in datenbanken ergeben können?
dieses problem mit den
schleichenden fehlern mag zwar auf den ersten blick völlig an den haaren herbeigezogen erscheinen, tritt aber bei sehr komplexen datenstrukturen bzw. relation zwischen ihnen in der praxis leider doch immer wieder in erscheinung. auch wenn die programmierer und natürlich ihr bestes tun, um derartiges zu vermeiden, gibt's manchmal doch situationen, wo einem nichts anders über bleibt, als in der zeit zurückzugehen und auf eine ältere form des projekt zurückzugreifen. das geht im einfachsten fall mit sicherheitskopien des speicherabbilds bzw. datenbank-dumps aber z.t. auch mit rollback-befehlen direkt auf datenbankebene, mit denen man frühere zustände in einer weise wiederherstellen kann, die einen konsistenten zustand repräsentieren -- was ja nicht unbedingt der fall sein muss, wenn z.b. alleine mit apples time machine od. ähnlichen filesystem-
snapshot-mechanismen nur jene files, die die datenbanken nutzen im laufenden betrieb sichert.
mir persönlich ist dies problem vor allem deshalb so vertraut, weil ich lange jahre große internet server strukturen betreut habe, wo ja fast regelmäßig irgendwelche schwachstellen in veralteten wordpress-plugins u.ä. von außen ausgenutzt werden, um maschinen bzw. einzelne anwendungsinstanzen zu
'kompromitieren' -- also irgendwelche ganz unscheinbare änderungen vorzunehmen, die auf den ersten blick kaum erkennbar sind --, die dann meistens auch eine weile nicht benutzt werden, um dann plötzlich für irgendwelche wirklich problematischen angriffe genutzt werden. derartige schleichende bedrohungen sind ganz schwer in den griff zu bekommen, weil es eben so schwierig ist, den kompromitierungszeitpunkt nachträglich herauszufinden und mit backups od. rollback-mechnaismen wenigstens wieder zum damaligen zustand zurückzukehren bzw. betroffen daten zu retten.
aber dieses szenario ist natürlich nicht so ohne weiteres auf resolve anzuwenden, weil man dort ja kaum derartige angriffsflächen für bösartige störungen von außen bietet. aber trotzdem: auf den ersten blick unerkennbare fehler, die erst später ganz fatale folgen nach sich ziehen, stellen sich einfach auch in gut funktionierenden systemen mmer wieder ein, wenn sie nur ausreichend komplex sind.
eine anders beispiel, das man hier vielleicht einbringen könnte, um möglichst konstruktive lösungen im umgang mit solchen fragen zu veranschaulichen, sind große softwareentwicklungsprojekte, wo sich ja auch regelmäßig das problem stellt, dass irgendwelche winzigen änderungen, die irgendwann einmal von einem mitarbeiter in den sourcecode eingepflegt wurden, sich nachträglich als fehlerhaft herausstellen bzw. im ersten schritt einmal einfach nur störungen (regressions) auftreten, deren ursache nicht wirklich klar erkennbar ist. das passiert ausgesprochen oft, auch wenn sich alle entwickler noch so sehr bemühen, fehler zu vermeiden und neu hinzukommenden code vor dem einpflegen gegenseitig zu überprüfen. in diesen fällen arbeitete man dann oft mit speziellen techniken, die an hand eines kleinen testprogramms den versionsverlauf des progrogrammcodes zeitlich zurückgehen, um schritt für schritt jenen änderung zu finden, wo sich das problem zum ersten mal zeigt.
sorry, wenn ich hier so weit aushole, und vielleicht für dich gar nicht mehr erkennbar ist, wie derartiges auf schnitt- od. color grading programme vernünftig umgelegt werden könnte?
was ich damit herauszuheben versuche, ist die wichtigkeit, den zeitlichen änderungsverlauf sinnvoll zu erfassen und nachträglich greifbar zu machen. genau das also, was versionsverwaltungssysteme, aber z.t. durchaus auch div. datenbanklösungen, wunderbar erlauben, was auch in viele kollaborativen arbeitszusammenhängen mittlerweile geradezu unverzichtbar geworden ist.
ich würde in der frage so weit gehen, dass ich sogar eine schnitt- od. gradinglösung, die hier weniger auf möglichst schnelle zugriffe setzt, sondern statt dessen z.b.
git für eine vernünftige versionsverwaltung, verteilte zusammenarbeit im team und begleitende dokumentation der projektdaten nutzt, bevorzugen würde.
realistischer weise ist man hier ohnehin nur mit derart kleinen anfallenden datenmengen konfrontiert, dass entsprechende serialisierte XML u. YAML-repräsentation im filesystem durchaus genügen, um eine vernünftige verarbeitungsgeschwindigkeit zu gewährleisten. die meisten derartigen lösungen -- auch richtig große -- nutzten ja auch in wahrheit nichts anderes, während jene lösungen, die schon lange um datenbanken herum zentriert sind (ich denke z.b. an lightworks), doch immer wieder von diesen schwer aufzulösenden inkonsistenzen in der datenbank bzw. korrupter projektverwaltung geplagt sind.
trotzdem -- diese bedenken richten sich nicht so sehr alleine gegen die verwendung von datenbanken, sondern vielmehr ganz allgemein gegen intransparente und nach außen hin undokumentierte projektverwaltungen.
ich kann mir gut vorstellen, dass solche bedenken für viele endanwender völlig unverständlich sind bzw. die meisten damit zufrieden sind, wenn sich alleine die entwickler der entsprechenden software um solche dinge kümmern. dem kann man nur entgegenhalten, wie viel nutzen und möglichkeiten sich daraus ergeben, wenn derartige dinge offener und mit nicht monopolistisch orientierten proprietären ansätzen bewerkstelligt werden.
natürlich bin ich mit dieser sichtweise und entsprechender neugierde nicht ganz allein. immer wieder stößt man auf andere kollegen, die zumindest ihr bestes tun, im sich auch im falle vom resolve auf umwegen bzw. über mühsames reverse engineering einblick in die entsprechenden verwaltungsstrukturen zu verschaffen (siehe z.b.
http://www.liftgammagain.com/forum/inde ... rams.8740/).
BMDs politik in dieser frage ist trotzdem erschreckend stur und kompromisslos. sinnvolle werkzeuge von drittanbieter, wie z.b. plurar eyes, aber auch einfachere praktische scripts, wie man sie im konforming-umfeld gelegentlich benötigt, können unter diesen einschränkungen einfach nicht vernünftig umgesetzt werden. das schafft unbefriedigende abhängigkeiten von einer einzigen paternalistischen instanz, von der man sich ohne wenn und aber abhängig macht. ich persönlich ziehe es einfach vor, über diese dinge auch unabhängig von irgendwelchen groben störungen und problemen, wo man dann wirklich ansteht und in seiner praktischen arbeit behindert wird, kritisch nachzudenken und für verbesserungen des gegebenen einzutreten.