Home >Documents >Intravert atx meetup_condensed

Intravert atx meetup_condensed

Date post:15-Jan-2015
Category:
View:678 times
Download:1 times
Share this document with a friend
Description:
What would you get if Cassandra and Vert.x had a baby?
Transcript:
  • 1. Intravert ExperimentalTransport for ApacheCassandraFriday, April 5, 13

2. Hi Folks!Im [email protected], April 5, 13 3. API ManagementAPI AnalyticsAPI ToolsFriday, April 5, 13 4. Vert.x + Cassandra = ?Friday, April 5, 13 5. But first:Architectural stuffFriday, April 5, 13 6. Collapsed for brevity.see slides 6-31 from this presentation:http://www.slideshare.net/zznate/apachecon-cassandra-transportFriday, April 5, 13 7. So there are options,why create somethingnew?Friday, April 5, 13 8. Common clientpatterns emergedFriday, April 5, 13 9. union operationsaggregationsfilteringjoins (round-trip required!)redundant data on insertionFriday, April 5, 13 10. These client patternsare wasteful.Friday, April 5, 13 11. Lots of CPU and memoryburned (server and client)Lots of data on the wirewont be used (ser/deSercost)Friday, April 5, 13 12. One more thing aboutCQL...Friday, April 5, 13 13. If [they] think that CQL is theanswer to usability then I justwon. We at least know whereour problems are.- 10gen exec.Friday, April 5, 13 14. Transports in sumFriday, April 5, 13 15. Thrift:I can has distributedcomputing degreeFriday, April 5, 13 16. CQL:MOAR TOOLz!!!Friday, April 5, 13 17. IMO: In 2013, binaryprotocols withidiomatic clientsmisses the market.Friday, April 5, 13 18. I love writing apps inJava (sometimespython), but...Friday, April 5, 13 19. The most popularapplication frameworkthese days:Friday, April 5, 13 20. The most popularapplication frameworkthese days:HTML5Friday, April 5, 13 21. and thus...IntravertFriday, April 5, 13 22. Any new transport hadto be HTTP basedFriday, April 5, 13 23. Easy to useEasy to secureEasy to compressYou can test with abrowser!Friday, April 5, 13 24. The payload had to beJSON basedFriday, April 5, 13 25. Quick Vert.x summaryFriday, April 5, 13 26. - Event-driven IO (Netty)- Message bus- Runtime load/unload ofmodules- Polyglot support viainvokeDynamic in JDK7 http://vertx.ioFriday, April 5, 13 27. Initial use case:Server side indexingFriday, April 5, 13 28. Easy to construct mostcommon operationsFriday, April 5, 13 29. Simple REST semanticsPOST /myks/mycf/key1{uname:zznate}GET /myks/mycf/key1/uname{zznate}Friday, April 5, 13 30. Command-driven JSONpayloadFriday, April 5, 13 31. Extensible and transparentOrdered operationsNot tied to any predefinednotionsFriday, April 5, 13 32. Benefits of doing thiswith Vert.xFriday, April 5, 13 33. Message bus flexibilityConfigure which modulesto load (read-only nodes!)Hot deploy of fixes and newfeaturesFriday, April 5, 13 34. Cassandra is best-of-breed for a lot of things.So we used it as aframework.Friday, April 5, 13 35. Example IntravertOperationsFriday, April 5, 13 36. Slice:{"id":6,"type":"slice","op":{ "end":"9", "rowkey":"5", "size":4, "start":"1"}}Friday, April 5, 13 37. Set:{"id":2,"type":"SET","op":{ "rowkey":"key1", "uname":"zznate", "email":"[email protected]", "age":37}}Friday, April 5, 13 38. Easy to use CompositesFriday, April 5, 13 39. {"id":1,"type":"SET","op":{ "rowkey":"key1", "COMP_NAME":[ "37", "zznate" ], "value":"key1", }}Friday, April 5, 13 40. One or more commandsper payloadFriday, April 5, 13 41. Friday, April 5, 13 42. Flexible batching- batch reads and writes- different keyspaces insame op- change ks/cf mid-op- streaming (soon)Friday, April 5, 13 43. Server-side FilteringFriday, April 5, 13 44. {"type": "CREATEFILTER","op": {"name": "stouts","spec": "javascript","value": "function(row) { if (row[value] == Breakfast Stout) return row; else return null; }"} }, {"type": "FILTERMODE","op": {"name": "stouts","on": true} }, {"type": "SLICE","op": {"rowkey": "beers","start": "Allagash","end": "Sierra Nevada","size": 9} }Friday, April 5, 13 45. {"exception":null,"exceptionId":null,"opsRes": {"0":"OK","1":"OK","2":"OK","3":"OK","4":"OK","5":"OK","6":[{ "name":"Founders", "value":"Breakfast Stout"}]}}Friday, April 5, 13 46. GetRef:Results of one operation asinput from anotherFriday, April 5, 13 47. { "type": "GET", "op": { "rowkey": "getref_test", "name": "col1" }},{ "type": "SET", "op": { "rowkey": "getref_test", "name": "col3", "value": { "type": "GETREF", "op": {"resultref": 4, "wanted": "value" } } }},{ "type": "GET", "op": { "rowkey": "getref_test", "name": "col3" }}Friday, April 5, 13 48. Triggers- Perform complex multi-stepoperations server side- Examine and change requestobjects- Interface directly with IntraVert- Interface directly with Cassandra(StorageProxy, CFMetaData, etc)Friday, April 5, 13 49. Multi-Processors:Shape results with a unionof operationsFriday, April 5, 13 50. Prepared RequestStatement:Requests saved server side- send only the bindvariablesFriday, April 5, 13 51. CQL support built-in.Friday, April 5, 13 52. Whats missing?Friday, April 5, 13 53. Security (Shiro integrationcoming soon)Distribution semanticsCassandra-RESTHBASE-like scannersFriday, April 5, 13 54. github.com/zznate/intravert-ugFriday, April 5, 13

Popular Tags: