NOSQL movement

όλο και πιο συχνά διαβάζω και ακούω για το αντί-SQL κίνημα κάποιων developers που ονομάζεται “NOSQL”. Όσοι έχετε αναπτύξει κάτι σε Google AppEngine ή με την βοήθεια του Amazon SimpleDB, θα είσαστε εξοικειωμένοι με την ιδέα, ακόμη και αν δεν γνωρίζετε τον όρο. Καλό άρθρο: No to SQL? Anti-database movement gains steam. Επίσης: NOSQL debrief.

4 Responses to NOSQL movement

  1. papo says:

    Μεγάλη συζήτηση ανοίγεις. Μια πληγή στον κόσμου του ΙΤ εδώ και χρόνια. Απο τότε που έκανα την εμφάνιση τους οι pure object based βασεις, oi xml based εκδοχές τους, οι file based..και δεν ξέρω εγώ τι.

    Κάθε μια από αυτές είχε μια μερική απάντηση στα προβλήματα και τις ιδιαιτερότητες του relational μοντέλου.Πχ οι object based δίνανε μια απάντηση στο επίπεδου του παραγωγικού design και πιο κοντά στην φιλοσοφία του software developer αλλά δεν μπόρεσαν ποτέ να απαντήσουν σε θέματα όπως ‘η σωστή υλοποίηση τους΄το scaling, κτλ.
    Οι xml αντίστοιχα έγιναν της μόδας την εποχή που όλοι λέγανε ότι ήταν η απόλυτη λύση ‘περιγραφής ΄καταγραφής δεδομένων αλλά τελικά μείναμε εκεί γιατί δεν ήταν και η πιο σωστή λύση για αποθήκευση ούτε και retrieval ;).

    Το relational μοντέλο έχει αρκετές δυσκολίες αλλά όπως λένε και στο άρθρο εκει, είναι πραγματικά δύσκολο να το πετάξουμε απο πάνω μας – γενιές και γενιές developer think relational, έχουμε ήδη φιάξει ενδιάμεσα layers που κάνουν το πόνο μας λίγο πιο μαλακό βλεπε object relationa mapping εργαλεία (υπάρχουν σε Java ..net και αλλού).

    Αυτή την στιγμή σε μεγάλα project υπάρχει περίπτωση να μην δεις ούτε γραμμή pure SQL και να έχει κρυφτεί πίσω απο ORM (εκτός και αν θες να πάρεις το μέγιστο από την βάση σου – σε πολύπλοκες σχεσεις) – ΒΕΒΑΙΑ ειναι ακόμα αναγκαίο ο σύγχρονος developer να έχει στην φαρέτρα του..την λεγόμενη relational γνώση!

    Δεν πιστεύω ότι λύσεις όπως η Hadoop ή απλουστευμένες εκδόσεις του BIg – column based table μπορούν ειναι αξιόλογα εργαλεία στην λύση δύσκολο – περίπλοκων προβλημάτων. Ίσως για απλά πράγματα πράγματι αν μην υπάρχει διαφορά – και εκεί να υπάρχει πρόσφορο έδαφος!

    Προσωπικά θα πήγαινα relational by default και να χρησιμοποιούσα exotic λύσεις όπως η Hadoop μόνο όταν τα requirement μου – κλείδωναν με κάτι δύσκολο!

    Επίσης παιδιά…μια μεγάλη καυτή πατάτα που μας ταλαιπωρεί ..σε μεγάλες εφαρμογές είναι τα transactions , εκεί είναι τα λεφτά εκεί ειναι τα προβλήματα – εκεί βασίζοντε πολλά συστήματα και πολλά λεφτά. Ακόμα γνωστές relational βάσεις έχουν δρόμο να διανύσουν για να μας δώσουν reliable μηχανισμούς.

  2. Panayotis says:

    Οι no-sql τύποι δεν νομίζω ότι συμπαθούν τα ORM :-)

  3. Ωραία συζήτηση έγινε και στο http://news.ycombinator.com/item?id=683807

    Προσωπική άποψη:

    Οτιδήποτε distributed έχει μεγάλο τεχνικό ενδιαφέρον – ειδικά για geeks.

    Στην πράξη όμως, η πλειοψηφία των project μπορεί να εξυπηρετηθεί από όλες τις διαθέσιμες λύσεις, από plain text files μέχρι το BigTable. Για μένα καλύτερη λύση είναι η απλούστερη (=με έτοιμο κώδικα, τεχνογνωσία, καταγεγραμμένα τα προβλήματα κλπ) και αυτή σήμερα τυγχάνει να είναι η relational βάση.

    Τα project που έχουν ειδικές ανάγκες (twitter, flickr, facebook) απαιτούν και ειδικές λύσεις, συνήθως πιο εξωτικές. Σε κάποιες περιπτώσεις η λύση είναι τα distributed storage systems.

    Γενικά η έννοια του “κινήματος” που του έχουν δώσει μου φαίνεται χαζή και ανούσια…

  4. adamo says:

    @papo:
    Principles of Transaction Processing. Βιβλίο που βγήκε πρόσφατα από τις σημειώσεις εδώ: http://www.cs.washington.edu/education/courses/csep545/