Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Gentle Overview To Maglev

A Gentle Overview To Maglev

D3630c5a12aa3e85748670729444d5a9?s=128

Jonathan Wallace

August 08, 2012
Tweet

Transcript

  1. A Gentle Overview To Maglev 1 Thursday, August 9, 12

  2. 2 Thursday, August 9, 12

  3. 3 Thursday, August 9, 12

  4. Get to know me! - software developer (Ruby, Rails, C,

    etc) - http://highgroove.com - jonathan.wallace@gmail.com - @jonathanwallace - WE’RE HIRING!! 4 Thursday, August 9, 12 background, schooling, etc
  5. Way back in 2008... http://canrailsscale.com/ 5 Thursday, August 9, 12

  6. 6 Thursday, August 9, 12

  7. 7 Thursday, August 9, 12

  8. 8 Thursday, August 9, 12

  9. What is Maglev? maglev is a ruby implementation running on

    a smalltalk VM 9 Thursday, August 9, 12
  10. What is a Smalltalk VM? “smalltalk” and “VM” 10 Thursday,

    August 9, 12 let’s unpack that question. two terms. “smalltalk” and “VM”
  11. What is Smalltalk? an object oriented programming language that inspired

    RUBY! 11 Thursday, August 9, 12
  12. What is a VM? “Virtual Machine” 12 Thursday, August 9,

    12
  13. Are these VMs? 13 Thursday, August 9, 12

  14. Are these VMs? 14 Thursday, August 9, 12

  15. Wait, I didn’t see Maglev there! 15 Thursday, August 9,

    12
  16. “You are correct, sir!” 16 Thursday, August 9, 12 Correct,

    there are two types of VMs these days “VM” term has been overloaded System Virtual machines
  17. What we’re talking about is Process Virtual Machines. 17 Thursday,

    August 9, 12 “write once, run anywhere”
  18. 18 Thursday, August 9, 12

  19. 19 Thursday, August 9, 12 uses Common Language Runtime

  20. What is a Ruby implementation? let’s talk through it 20

    Thursday, August 9, 12
  21. You may have heard of.. MRI (1.8), YARV (1.9), JRuby,

    Maglev, Rubinius 21 Thursday, August 9, 12
  22. What’s so cool about each of them? 22 Thursday, August

    9, 12
  23. JRUBY - use of the java ecosystem, native threading model

    23 Thursday, August 9, 12
  24. MRI, YARV - most common, C-based implementation 24 Thursday, August

    9, 12
  25. Rubinius - ruby in ruby, meta-cool 25 Thursday, August 9,

    12 with some C++ in there
  26. What is Maglev? maglev is a ruby implementation running on

    a smalltalk VM 26 Thursday, August 9, 12 everybody got it? good!
  27. But wait! There’s more.. 27 Thursday, August 9, 12 what

    is the VM? can we get some details? the VM is called Gemstone
  28. What is GemStone? 28 Thursday, August 9, 12

  29. 29 Thursday, August 9, 12 distributed shared cache, fully ACID

    transactions, enterprise NoSQL data management capabilities, multiuser, multimachine, garbage collection
  30. How does GemStone work? there are a few pieces to

    the puzzle 30 Thursday, August 9, 12
  31. 31 Thursday, August 9, 12 here we have the running

    ruby process. this would be your irb session what’s up with that arrow? what fills up the object space?
  32. 32 Thursday, August 9, 12 on the right, that’s the

    repository. the default ruby repository is just a large file on disk. it contains all of the (persistent) objects, classes and methods know to the system at VM startup
  33. 33 Thursday, August 9, 12 but something lives in the

    middle. This is the called the Stone process
  34. 34 Thursday, August 9, 12 what are those called?

  35. 35 Thursday, August 9, 12

  36. “Is That All There Is?” 36 Thursday, August 9, 12

  37. Is that all there is? PJ harvey photo? 37 Thursday,

    August 9, 12 no, of course not. there’s tons of hidden knobs to twiddle, transaction log files, shared page cache, garbage collection, gem notification and communication
  38. EXAMPLES 38 Thursday, August 9, 12

  39. 39 Thursday, August 9, 12

  40. 40 Thursday, August 9, 12

  41. 41 Thursday, August 9, 12

  42. 42 Thursday, August 9, 12

  43. 43 Thursday, August 9, 12

  44. 44 Thursday, August 9, 12

  45. 45 Thursday, August 9, 12

  46. 46 Thursday, August 9, 12

  47. 47 Thursday, August 9, 12

  48. When would I use Maglev? 48 Thursday, August 9, 12

    the question you’ve all been asking yourself
  49. 49 Thursday, August 9, 12

  50. - SSL partially implemented - simple rails apps “run” -

    nokogiri supported? 50 Thursday, August 9, 12
  51. QUESTIONS? 51 Thursday, August 9, 12

  52. References - http://maglev.github.com/ - http://maglevity.wordpress.com/2009/12/03/vms- repository-maglev/ - http://community.gemstone.com/download/ attachments/6816350/GS64-ProgGuide-3.0.pdf? version=1

    52 Thursday, August 9, 12