Your SlideShare is downloading. ×
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Crea il TUO database con LevelDB e Node.js

2,960

Published on

Avete mai pensato di scrivere un vostro database? Un Key/Value store, o un database documentale? Oppure un Graph DB? O magari volete un database che si sincronizzi fra Browser e Server in modo …

Avete mai pensato di scrivere un vostro database? Un Key/Value store, o un database documentale? Oppure un Graph DB? O magari volete un database che si sincronizzi fra Browser e Server in modo trasparente? Nodebase è il movimento che fa per voi!
Un gruppo di mad scientist nella comunità Node.js hanno preso l'ultraveloce LevelDB e hanno sviluppato decine di piccole librerie che consentono di aggiungerci tutte le funzionalità di cui avete bisogno, dalla replicazione all'indicizzazione: stiamo parlando di LevelUp!

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,960
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
13
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Problemi con il Database? @matteocollina http://500px.com/photo/27874937
  • 2. Chiami un consulente? http://500px.com/photo/22823315
  • 3. Costruisci il TUO database con
  • 4. Costruisci il TUO database con Level*
  • 5. * Not a Database Storia
  • 6. Storia dei DB • 1960s: Dai nastri ai dischi per raggiungere accesso condiviso e interattività • Late 1960s: Navigational Databases, links • Early 1970s: Modello relazionale, content • Late 1970s: SQL • Early 1980s: Un database sul mio Desktop • Late 1980s: Object Oriented Database • 2000s: velocità e scalabilità, NoSQL • Early 2010s: non perdiamo una bella astrazione, NewSQLs
  • 7. La tirannia delle belle astrazioni
  • 8. Che cos’è un DB?
  • 9. Uno strumento per interagire con dati strutturati, all’esterno del core della nostra Applicazione
  • 10. Core DB features • Persistenza • Prestazione • Semplificazione dell’accesso ai dati complessi
  • 11. • Small Core, vibrant community • Extreme modularity • Reimplement everything in Javascript
  • 12. Il Node.js dei DB? • Small Core: LevelUp - http://npm.im/levelup • TUTTO è un modulo, scaricabile da NPM • Sperimentazione di molti aspetti sia della teorica che della pratica dei database e dei sistemi distribuiti • Soluzioni specifiche
  • 13. http://500px.com/photo/50810860
  • 14. LevelDB • Open-source, embedded key/value store di Google • Chiavi ordinate • Valori compressi da Snappy • Operazioni basilari: Get(), Put(), Del() • Batch() Atomica • Iterazioni bi-direzionali
  • 15. LevelDB
  • 16. LevelUP • Ispirato da LevelDB • Supportato da un a key/value store per dati arbitrari, ordinati per chiave • put(), get(), del() • Scritture atomiche via batch() • ReadStream: l’ingrediente segreto • WriteStream: per comodità • Encoding: UTF-8, HEX, Binary, JSON, Typewise, your encoding.
  • 17. ReadStream • La primitiva essenziale per tutte le feature più complesse, ad esempio LevelGraph la usa per realizzare i JOIN. • E’ la primitiva fondamentale per accedere ai dati ordinati. • E’ possibile limitare il range tramite start e end
  • 18. ReadStream db.createReadStream({ start: 'Bol', end: 'Bolxff' }) .on('data', function (entry) { console.log(entry.key) }) ! // → Bologna // → Bolzano
  • 19. Key Structure • L’ordinamento e il recupero delle chiavi richiede un key design • Le chiavi sono un descrittore gerarchico del contenuto: 'countries~Ireland' 'countries~Italy' ... 'towns~Italy~Bologna' 'towns~Italy~Bolzano' ... 'streets~Italy~Bologna~Via Indipendenza' 'streets~Italy~Bologna~Via Rizzoli'
  • 20. http://npm.im/levelmeup
  • 21. levelmeup @ nodeconf.eu
  • 22. BDFL: @rvagg
  • 23. Level* Committers
  • 24. RocksDB • Rilasciato Open Source il 14 Novembre 2013. • Il 14 Novembre 2013 è già disponibile il “driver” per LevelUp, http://npm.im/rocksdb • RocksDB è un fork di LevelDB per gestire terabyte di dati
  • 25. @matteocollina
  • 26. LevelGraph
  • 27. LevelGraph db.join([{ subject: db.v(“a"), predicate: “friend",object: db.v(“x") }, { subject: db.v(“x"), predicate: “friend", object: db.v(“y") }], function(err, results) { // this will print all the 'friend of a friend triples..' });
  • 28. - Francesco Fullone - Enrico Zimuel - Federico Galassi - Matteo Collina - JavaScript best practices http://www.jsbestpractices.it/
  • 29. @matteocollina @rvagg

×