rafinos Δημοσ. 19 Ιουλίου 2016 Δημοσ. 19 Ιουλίου 2016 Παιδιά σε περίπτωση χρήσης της simplexml αν επεξεργάζονται το xml αρχείο παραπάνω από ένα άτομα, τι επιπτώσεις υπάρχουν στην αποθήκευση; Οι αλλαγές αυτού που το αποθηκεύσει τελευταίος επικαλύπτουν τα προηγούμενα; Ή κρατιούνται και οι αλλαγές του πρώτου χρήστη; Σε περίπτωση αποθήκευσης ταυτόχρονα (εντάξει πολύ σπάνιο) τι γίνεται;
defacer Δημοσ. 20 Ιουλίου 2016 Δημοσ. 20 Ιουλίου 2016 Τι σημασία έχει αν χρησιμοποιείς simplexml ή ταχυδρομικά περιστέρια; Κάπου σε ένα filesystem υπάρχει ένα αρχείο, και κάποιος κάποια στιγμή κάνει κλήσεις στο λειτουργικό για να γράψει τα περιεχόμενά του. Αυτό που θα συμβεί είναι ότι ο τελευταίος κερδίζει. "Ταυτόχρονα" δεν υπάρχει σ' αυτή την περίπτωση, ο ένας από τους δυο θα φτάσει πρώτος και ο άλλος θα πάρει error. 1
rafinos Δημοσ. 20 Ιουλίου 2016 Μέλος Δημοσ. 20 Ιουλίου 2016 Δεν με ενοχλεί το error. Απλά θέλω να αποθηκεύονται τα πάντα και να μην χάνετε τίποτα (ή ότι σβήνεται νωρίτερα μην επανέρχεται αργότερα σε περίπτωση που κάποιος άλλος το είχε φορτωμένο στη μνήμη για επεξεργασία). Όλα αυτά τα ρωτάω γιατί τρέχω μια πλατφόρμα με κάτι ψηφοφορίες σε php και αποθηκεύω τα δεδομένα σε xml (σε κλειστό κύκλο ανθρώπων).
rafinos Δημοσ. 21 Ιουλίου 2016 Μέλος Δημοσ. 21 Ιουλίου 2016 Αυτό που είστε τόσο έξυπνοι μερικοί... Λες να μην έψαξα στο google; Δεν είμαι μια μέρα στο φόρουμ! Απλά μάλλον κάτι έγραφα λάθος ή δεν υπάρχει κάτι σχετικό (που μου φαίνεται περίεργο να μην υπάρχει).
tsofras Δημοσ. 21 Ιουλίου 2016 Δημοσ. 21 Ιουλίου 2016 Μια παρατήρηση ως άσχετος με php αλλά γνώστης java, θα σε βόλευε κάποιου τύπου synchronization για όταν γράφεται το αρχείο? Βρήκα μια μέθοδο flock() με μια γρήγορη αναζήτηση. Δεν ξέρω αν είναι αυτό που θέλεις απλά είπα μήπως βοηθήσω κάπου
rafinos Δημοσ. 21 Ιουλίου 2016 Μέλος Δημοσ. 21 Ιουλίου 2016 Γνωρίζω την flock απλά η flock λειτουργεί κάπως διαφορετικά. Πρέπει να ανοιχτεί το αρχείο ως "file" και όχι συγκεκριμένα ως xml. Επίσης, σε κάποιες περιπτώσεις φορτώνω όλο το αρχείο στην php και κάνω αλλαγές μέσω αυτής (που σημαίνει ότι έχει αποδεσμευτεί το αρχείο) και μετά ξαναφορτώνονται όλα αυτά στο αρχείο (π.χ. αλλάζω την αλφαβητική σειρά... σε αυτή την περίπτωση αν κάποιος προσθέσει κάτι μέχρι να γίνει το εν λόγω edit τότε αυτό θα εξαφανιστεί με το που στείλει ο πρώτος τα sorted childs... ).
dominotrix Δημοσ. 21 Ιουλίου 2016 Δημοσ. 21 Ιουλίου 2016 Δεν εχω πραγματικα ιδεα απο xml, αλλα θεωρητικα, δε θα πρεπει οταν ενας χρηστεις ανοιγει το αρχειο για επεξεργασια, να γινετε ελεγχος αν το αρχειο ειναι ανοιχτο απο καποιον αλλον χρηστη εκεινη τη στιγμη; Και ισως να τον αποτρεψει απο το να ανοιξει.
defacer Δημοσ. 21 Ιουλίου 2016 Δημοσ. 21 Ιουλίου 2016 Απλά θέλω να αποθηκεύονται τα πάντα και να μην χάνετε τίποτα (ή ότι σβήνεται νωρίτερα μην επανέρχεται αργότερα σε περίπτωση που κάποιος άλλος το είχε φορτωμένο στη μνήμη για επεξεργασία). Έχεις χρησιμοποιήσει ποτέ κάποιο σύστημα source control? Αυτό που λες, στη γενική του περίπτωση και χωρίς να μπουν τεχνητοί περιορισμοί στη χρήση (πχ "δε μπορείς να ανοίξεις αυτό το αρχείο, το έχει άλλος ανοιχτό") απλά δεν γίνεται αυτόματα. Οπότε πρέπει να ξεκαθαρίσεις τι περιορισμοί είναι αποδεκτοί.
rafinos Δημοσ. 21 Ιουλίου 2016 Μέλος Δημοσ. 21 Ιουλίου 2016 Να πω την αλήθεια ο όρος που χρησιμοποίησες παραπάνω δεν μου λέει κάτι (source control). Ίσως θεωρείται κάτι τέτοιο το LOCK_EX στο file_put_contents.
παπι Δημοσ. 21 Ιουλίου 2016 Δημοσ. 21 Ιουλίου 2016 Στο filesystem τα αρχεια ειναι streams. Δεν υπαρχει "επεξεργασια". Εαν εχεις ενα αρχειο 1gb και θες να αλλαξεις ενα μπιτ, τοτε θα ανεβασεις το αεχειο στη ραμ, θα αλλαξεις το μπιτ, θα διαγραψεις το παλιο αρχειο και τελος θα θα φτιαξεις νεο αρχειο με τα δεδομενα που εχεις στη ραμ. Δηλαδη ουσιαστικα αυτο που λες για πολλαπλη επεξεργασια, δεν υπαρχει. Δες καλυτερα αυτο που λεει ο def για source control
Επισκέπτης Δημοσ. 21 Ιουλίου 2016 Δημοσ. 21 Ιουλίου 2016 Όλα αυτά τα ρωτάω γιατί τρέχω μια πλατφόρμα με κάτι ψηφοφορίες σε php και αποθηκεύω τα δεδομένα σε xml (σε κλειστό κύκλο ανθρώπων). Ε εδώ είναι το πρόβλημα σου. Σώστα σε μια βάση να μην έχεις concurrency προβλήματα. Σχεδιαστικά είναι λάθος αυτό που κάνεις.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα