1IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Scalable and RestFul Web Apps
At the xroads of ...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Speaker Context
Marc Portier, ±14 years of Java,...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Looking for You!
• User, Contributor of
our Open...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
The Wonderful
Web Machine
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Amazing Web
Supercalifragilisticexpialidocious !...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
How does it keep up?
• Diversity / Compatibility...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
In woodworking it's important
to work with the g...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Meeting high expectations
• Current web-experien...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Riding the
Web Project Wave
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
kauriproject.org
• Resource Oriented WebDevelopm...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Heritage
Kauri
• Maven
• jQuery
• Spring Framewo...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Core Concepts
• modules,
– java/rest servi...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Reuse Paradox
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Perfection is achieved,
not when there is
nothin...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Plugable Systems
• Interfaces
• Implementations
...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Challenges
• Jar Dependency Management
– Maven P...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Component Model: Modules
• Unit of reuse
•...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Runtime System
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Attitude
• No Servlet container
– (Althoug...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Module vs. war
• war != jar
– Different layout
–...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Routing and Representations
• MVC-Split (I...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Routing Samples
• Groovy router
• JaxRS
builder....
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Pages & Prototyping
• Combination of
– Ins...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Web Development Process
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Prototyping
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Continuous Prototyping
• -p prototype mode
– Pos...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Templating
• XML (tag) Based
– Conditional...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Template Inheritance
<?xml version="1.0" e...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Template Data-Loading
{
“name”: “Marc Port...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Forms
• Browser-based Data Value Interacti...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Forms Sample
var fconf = {
createURI: "${p...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Form Controls
• Simple
– Basic data-types
...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
More Kauri
• I18n support
• XML & HTML loading (...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Future Kauri
• State management through temporar...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Kauri Goals
How
• All team members
• All project...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Observing the Obvious
• REST-full stateless
appr...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Scalable Store and
Search
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
lilyproject.org
• Scalable Store AND Search
– Ma...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Scale on all ends
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Lily Core Concepts
● Storage
● Hbase
● repositor...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Repository Model
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Mixins
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Sample Schema (json)
namespaces: {
/* Declaratio...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Flexible content model
• generic enough to accom...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Lily Versioning
`
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Indexer
1. denormalize
2. multi-version
3. incre...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Lily and HBase
• adds high-level content model
–...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Lily and SOLR
• provides flexible mapping betwee...
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Lily Roadmap
IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org
Time to take a ReST
Questions?
Upcoming SlideShare
Loading in …5
×

Devoxx 2010 | Tools In Action : Kauri and Lily

1,811 views

Published on

Introduction to our web-scale tools for "rest-full app development" and "bigdata store and search" (lily)

Slides presented at devoxx-2010
http://devoxx.com/display/Devoxx2K10/Scalable+and+RESTful+web+applications++at+the+crossroads+of+Kauri+and+Lily

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,811
On SlideShare
0
From Embeds
0
Number of Embeds
149
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Devoxx 2010 | Tools In Action : Kauri and Lily

  1. 1. 1IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Scalable and RestFul Web Apps At the xroads of Kauri and Lily &
  2. 2. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Speaker Context Marc Portier, ±14 years of Java, XML based web development. Co-founder of Outerthought. • Outerthought? – Innovative Content Management system that follows ReST principles: “DaisyCMS” – New ReST supporting development framework: “Kauri project” – Scalable Search and Store: “Lily Project”
  3. 3. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Looking for You! • User, Contributor of our Open Source Projects • Teacher, University, School • Student • Talented worker – Job openings!
  4. 4. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org The Wonderful Web Machine
  5. 5. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Amazing Web Supercalifragilisticexpialidocious ! FRANTIC COMPLEX UNMANAGEABLE CHAOTIC Heterogenous Layered Decentralized Elegant Just Works Extensible Simple Usable Functional Entertaining Scalable
  6. 6. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org How does it keep up? • Diversity / Compatibility • Amount of Servers • Amount of Users • Amount of resources • Response Times / Latency Wouldn't you want to do that too?
  7. 7. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org In woodworking it's important to work with the grain of the wood. The Web, too, has a grain, and a RESTful web service is one that works with it. - Leonard Richardson and Sam Ruby RestFull Web Services
  8. 8. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Meeting high expectations • Current web-experiences are spoiling us – Google Maps – Mash-ups – Atom – Amazon S3 • It all looks so simple (and mostly works) • General customer feeling: “How hard could it be?””
  9. 9. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Riding the Web Project Wave
  10. 10. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org kauriproject.org • Resource Oriented WebDevelopment PlatForm • Spans WebServices (headless) • and WebApplications (human consumer) • Leverages modern and popular techniques and systems (+Jax-RS ) • Currently 0.4-RC2 – ( 0.4 upcoming )
  11. 11. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Heritage Kauri • Maven • jQuery • Spring Framework • Restlet Outerthought • Apache Cocoon • XReporter • DaisyCms ➢ Build & Deploy ➢ Front-end Lib ➢ Dependency Injection ➢ REST API ➢ XML, URI Maps ➢ Statemanagement ➢ Runtime, RIA, ...
  12. 12. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Core Concepts • modules, – java/rest services, – service containers, – service wiring, • prototyping, • RIA, • techniques • routing, pages, • templates
  13. 13. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Reuse Paradox
  14. 14. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Perfection is achieved, not when there is nothing more to add, but when there is nothing more to remove. - Antoine de Saint-Exupery
  15. 15. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Plugable Systems • Interfaces • Implementations • Wiring
  16. 16. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Challenges • Jar Dependency Management – Maven POM >> Deployment Descriptoor – Runtime Shielding • Java interface aspect (obvious) • REST interface aspect – RestService Notion (instantly web-distributed) – URI-Templating: /service/{rsrc_id}/aspect/{subresource}.json – Wiring + internal protocol: service:/
  17. 17. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Component Model: Modules • Unit of reuse • Maven managed JAR • Service Interfaces – Java aspect – REST aspect • Maps to One Spring Container • Has own classloading scope
  18. 18. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Runtime System
  19. 19. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Attitude • No Servlet container – (Although Kauri Apps can be deployed to...) – Servlets miss out on REST and IO threading • Own Application Container – Spring Based • Enhanced with own injection directives • Wrapped in managed classloading hierarchy • Allows wiring between modules – Maven Repository Based – Required support for the REST aspect – Advanced configuration
  20. 20. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Module vs. war • war != jar – Different layout – =deployment unit != reuse/component unit – Too high level for dependency shielding • Deployment Strategy: – conf/kauri/wiring.xml: deployment descriptor – Reuse maven repository layout – Different targets: • Standalone, rpm, war,...
  21. 21. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Routing and Representations • MVC-Split (Inspiration: Spring webmvc) • Routing – Groovy syntax support (builder @ init time) – Request time: Java performance – JaxRS support • Separate Representation Builder – Similar groovy syntax (again builder) – Produces Representation – Handle (presentation of) error conditions centrally
  22. 22. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Routing Samples • Groovy router • JaxRS builder.router { directory(uri: "/resources", root: "module:/resources/") resource(uri: "/persons/{id}.html", ofClass: "com.foobar.Person") } @Path("/persons/{id}.html") public class PersonResource { @GET @Produces("text/html") public KauriRepresentation getPerson( @PathParam("id") String idParam) { .... } }
  23. 23. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Pages & Prototyping • Combination of – Instant reload: module-source from FS vs. jar – Intuitive FS based router • pages/person/{id}.html.xml – Advanced templates – Simple mock-dataservice • Entity modelling through sample json files • Loaded in the templates via service:/ • Easily re-wired to JPA based implementation.
  24. 24. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Web Development Process
  25. 25. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Prototyping
  26. 26. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Continuous Prototyping • -p prototype mode – Possibility to blend and match production stuff with new try-out stuff • Pages router – Invite in design-aware HTML/CSS/JS client hacker with feeling for programming & FS based toolchain • -s module-source.properties – fast roundtrip mode directly mounted in the source
  27. 27. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Templating • XML (tag) Based – Conditionals, repeat, ... – Security – protect, • ${placeholder} replacement – through el or groovy – + Specific functions (i18n, config, publicUri, ...) • + Add your own • Noteworthy – Page inheritance – Local service loading
  28. 28. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Template Inheritance <?xml version="1.0" encoding="UTF-8"?> <html xmlns:t="http://kauriproject.org/template" t:inherit="module:/templates/layout/layout.xml"> <t:block name="title">My page</t:block> <t:block name="main">My interesting content</t:block> </html> <?xml version="1.0"?> <html xmlns:t="http://kauriproject.org/template"> <head> <title> <t:block name="title">The title</t:block> </title> </head> <body> <t:block name="main">Main content</t:block> </body> </html> < base “layout.xml” usage > “mypage.xml”
  29. 29. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Template Data-Loading { “name”: “Marc Portier”, “city”: “Bredene”, ... } <?xml version="1.0"?> <html xmlns:t="http://kauriproject.org/template"> <t:variable name="person" src="service:/data/persons/${request.attributes.id}" overwrite="false" accept="application/json"/> <body> <h1>Person: ${person.name}</h1> <p>City: ${person.city}</p> </body> </html> Template : “persons/{id}.html.xml” URI : “/persons/mpo.html” Data : “mock/persons/mpo.json”
  30. 30. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Forms • Browser-based Data Value Interaction System • RIA approach • jQuery Based – UI effects & Controls • Adds – Standard rest-full ajax logic – Validation (local and remote) – Formatting
  31. 31. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Forms Sample var fconf = { createURI: "${publicUri('service:/data/contact/')}", type: { members: { name: "string", email: { base: "string", "+validators": { isEmail: {} }, label: "e-mail" }, birthday: { base: "date", yearRange: "-100:+0", label: "What is your date of birth?" }, } }}; Json Form-config: HTML: <form id=”myform” />
  32. 32. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Form Controls • Simple – Basic data-types – Classic validations – HTML basics • Aggregates – Collection – Composite – Choice • + Add your own • Specific – GoogleMaps-Location – Ajax based file-upload – ...
  33. 33. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org More Kauri • I18n support • XML & HTML loading (and cleaning) • Unified Configuration • Unified Security – Spring Security (ACEGI) – Support for various mehanisms • Basic, digest, https, form, ... • Belgian e-ID • Database resources (JPA) • ...
  34. 34. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Future Kauri • State management through temporary resources • More Advanced controls • Functional Modules
  35. 35. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Kauri Goals How • All team members • All project stages • Efficiency – Prototype as a design mode – Enhance, not throw away What • ROA & RIA • Modules • Templates • Data Interaction
  36. 36. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Observing the Obvious • REST-full stateless approach in web- access layer pretends “Ready for scale out” • Shifting the problem towards “Storage” • ie. Indexed Storage
  37. 37. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Scalable Store and Search
  38. 38. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org lilyproject.org • Scalable Store AND Search – Massively distributed searchable data store • Blended HBASE with SOLR (shard), adding – Schema with support for • versioning, varianting and Blob handling – 2ndary indices – Rowlog/Queue for sync & async updates – M/R batch re-indexing • 0.2 since October 2010, 1.0 expected March 2011
  39. 39. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Scale on all ends
  40. 40. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Lily Core Concepts ● Storage ● Hbase ● repository model ● versioning, varianting, mixins ● Indexing ● Mapping ● Search ● SOLR
  41. 41. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Repository Model
  42. 42. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Mixins
  43. 43. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Sample Schema (json) namespaces: { /* Declaration of namespace prefixes. */ "org.lilyproject.bookssample": "b", "org.lilyproject.vtag": "vtag" }, fieldTypes: [ { name: "b$title", valueType: { primitive: "STRING" }, scope: "versioned" }, { name: "b$pages", valueType: { primitive: "INTEGER" }, scope: "versioned" }, { name: "b$language", valueType: { primitive: "STRING" }, scope: "versioned" }, { name: "b$authors", valueType: { primitive: "LINK", multiValue: true }, scope: "versioned" }, { name: "b$name", valueType: { primitive: "STRING" }, scope: "versioned" }, { name: "b$bio", valueType: { primitive: "STRING" }, scope: "versioned" }, { name: "vtag$last", valueType: { primitive: "LONG" }, scope: "non_versioned" } ], recordTypes: [ { name: "b$Book", fields: [ {name: "b$title", mandatory: true }, {name: "b$pages", mandatory: false }, {name: "b$language", mandatory: false }, {name: "b$authors", mandatory: false }, {name: "vtag$last", mandatory: false } ] }, ...
  44. 44. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Flexible content model • generic enough to accomodate many popular content schemas – HTML5, CMIS, RDF, NewsML, Dublin Core, … – academically verified (UGent MMLab / IBBT) • developer convenience – higher level constructs – schema reuse – versioning, linking, ...
  45. 45. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Lily Versioning `
  46. 46. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Indexer 1. denormalize 2. multi-version 3. incremental 4. batch 5. extraction 6. sharded
  47. 47. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Lily and HBase • adds high-level content model – data types – versioning – blob storage on HDFS • focus on sparse (efficient) storage • RowLog for synchronous cross-table updates and async message queues
  48. 48. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Lily and SOLR • provides flexible mapping between HBase content model and SOLR index fields • interactive and batch (M/R) index maintenance • sharding • use(s) SOLR as-is: loose, flexible, extensible coupling • search access via SOLR (HTTP) API
  49. 49. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Lily Roadmap
  50. 50. IIC » TECHNOLOGIEPARK 3 » B-9052 ZWIJNAARDE (GENT) » www.outerthought.org Time to take a ReST Questions?

×