Tin

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

1 comments

Comments 1 - 1 of 1 previous next Post a comment

Post a comment
Embed Video
Edit your comment Cancel

9 Favorites

Tin - Presentation Transcript

  1. Tin /taɪn/ A database engine so tiny, its name had to be shortened
  2. I’m Tim
  3. I’m Tim Nice to meet you
  4. Because Geeks have girlfriends too!
  5. </shameless-self-plug>
  6. THIS IS SLIDE 1
  7. THIS IS Hi. SLIDE 1
  8. THIS Hat-tip to @steadicat IS Hi. SLIDE 1
  9. Sequential Data (1D)
  10. i.e.
  11. i.e. stocks
  12. i.e. stocks bank trans.
  13. i.e. stocks bank trans. sensor data
  14. i.e. stocks bank trans. sensor data twitter feeds
  15. i.e. stocks bank trans. sensor data twitter feeds facebook walls
  16. SSD DO NOT WANT I CAN HAZ HDD?
  17. The Origins
  18. Once upon a time, ... at a major stock exchange
  19. Oracle & SQL Server to the limit
  20. Oracle & SQL Server to the limit m/ m/
  21. And even then ...
  22. So…
  23. Disk is cheap .
  24. . CPU & RAM are costly
  25. ( drumroll… )
  26. Text & Filesystem
  27. Where did the hunch come ? from
  28. Industrial Research (elsewhere) —› Stock data in glorified CSVs + Arrays of text files
  29. Text & Filesystem
  30. 1. Output to CSV 0932, GOOG, 750, 698
  31. 1. Output to CSV 0932, GOOG, 750, 698 2. Upload to S3 s3cmd.rb put GOOG-20091029.txt
  32. 1. Output to CSV 0932, GOOG, 750, 698 2. Upload to S3 s3cmd.rb put GOOG-20091029.txt 3. Serve over HTTP http://stocks.com/GOOG-20091029.txt
  33. 4. ??? [client: discard lines, replay log, etc.]
  34. 4. ??? [client: discard lines, replay log, etc.] 5. Profit! Pay your AWS charge. Compare with Oracle costs. Laugh while you count your bills.
  35. WARNING WARNING WARNING
  36. This is
  37. This is STUPID.
  38. The rest: A little less so.
  39. The rest: A little less so. But still…
  40. So why am I here ?
  41. Is anybody else doing this?
  42. The Specifics
  43. MAIN CONCEPTS SHARDING TRIAGE MODE OFFSETTING PSEUDO-INDEXES REDUNDANCY LOG REPLAY
  44. . Sharding
  45. ADBE.txt 0939, ADBE, 130, 120 0932, GOOG, 750, 670 0933, AMZN, 240, 230 AMZN.txt 0939, ADBE, 130, 120 0933, AMZN, 240, 230 0943, GOOG, 749, 677 GOOG.txt 0932, GOOG, 750, 670 0943, GOOG, 749, 677
  46. ADBE-093X.txt 0939, ADBE, 130, 120 0932, GOOG, 750, 670 0933, AMZN, 240, 230 AMZN-093X.txt 0939, ADBE, 130, 120 0933, AMZN, 240, 230 0943, GOOG, 749, 677 GOOG-093X.txt 0932, GOOG, 750, 670 GOOG-094X.txt 0943, GOOG, 750, 670
  47. Two Laws Directories are for deletion Too large a file hinders redundancy
  48. . Queries
  49. Skip the middleman .
  50. Skip the middleman . REST is the interface
  51. Standard URLs http://stocks.com/GOOG/2009/10/29/094X.txt Shortcuts http://stocks.com/GOOG/today(.txt) http://stocks.com/GOOG/last(.txt) Ranges http://stocks.com/GOOG/???????
  52. Use HTTP Headers HTTP/1.1 206 Partial content Date: Wed, 15 Nov 1995 06:25:24 GMT Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT Content-Range: bytes 21010-47021/47022 Content-Length: 26012 Content-Type: image/gif Necessitates ASCII or UTF-16 + Padding
  53. rfc 2616 section 3.12 —› Content-Range
  54. Create your own Units range-unit = day | hour | record
  55. Handling Query Strings
  56. twitter.com/timanglade?type=reply&to=barood twitter.com/timanglade?to=barood&type=reply —› 301 redirect twitter.com/timanglade/cdf83ef5422c3146ebb14dac0aa84f69.txt
  57. . Cache everything
  58. Say hello to my little friend the #
  59. . Triage mode
  60. twitter.com/timanglade#20091029-1520 —› Serve with 302 redirect twitter.com/timanglade-20091029.txt Let the client parse.
  61. . Offsetting
  62. People tend to… request even times twitter.com/timanglade_0900-0930.txt vs. stocks.com/GOOG/…_0900-0930.txt vs. stocks.com/GOOG/…_0850-0920.txt
  63. . Ops
  64. ! REST is not plug & play
  65. XML Parsing Anyone ?
  66. what I did initially - origin: "sonde 001" ! value: <%= sum = 0 ! ! ! ! collection.each {|t| sum += t["reading"].to_i} ! ! sum/collection.size %> <% collection.each do |temp| %> - origin: "sonde 001" ! location: <%= temp["place"] %> value: <%= (temp["reading"].to_i - 32)/1.8.floor %> ! <% end %>
  67. —› bx
  68. current state of research different syntaxes have been proposed inversion formulae: write once, works both wats
  69. The road ahead
  70. MORE L enses
  71. C MORE ode
  72. QA & (hopefully)
  73. ail.com e@ gm ad gl de an la im ng t a im glade /t an om tim r.c in/ de t tte m/ wi .co a ng la in .com/ ed ok tim l ink ebo fac
  74. Tin
  75. A database engine so tiny, its name had to be shortened

+ Tim AngladeTim Anglade, 3 weeks ago

custom

629 views, 9 favs, 1 embeds more stats

The slides for my presentation at no:sql(east) in A more

More info about this document

© All Rights Reserved

Go to text version

  • Total Views 629
    • 625 on SlideShare
    • 4 from embeds
  • Comments 1
  • Favorites 9
  • Downloads 12
Most viewed embeds
  • 4 views on http://1502811688.nvmodules.netvibes.com

more

All embeds
  • 4 views on http://1502811688.nvmodules.netvibes.com

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories