Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

0

Share

Download to read offline

Performant applications in Plone

Download to read offline

PloneConf 2018 - Tokyo

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Performant applications in Plone

  1. 1. PERFORMANT APPLICATIONS IN PLONE David Bătrânu Eau de Web
  2. 2. CURRENT MINDSET • Structure the application using content types. • Hope it doesn’t need to scale.
  3. 3. BENEFITS • You get a lot of stuff for free. • Full integration with Plone.
  4. 4. DRAWBACKS • You get too much stuff! Whether you want it or not! • Slooooow!
  5. 5. SIMPLE EXAMPLE A table!! • Table(Container) - application instance • TableRow(Item) - application data • Catalog for sorting and filtering
  6. 6. ALTERNATIVE persistent.Persistent
  7. 7. • Most lightweight way to store something in the ZODB • Extremely fast!
  8. 8. SIMPLE EXAMPLE Same presentation table • Table(Container) - application instance • rows = OOBTree() • TableRow(Persistent) - application data • sort and filter for sorting and filtering
  9. 9. ACTUAL USE • DX item containing a few fields, used as data in a table. • Requirements grew from tens of items to hundreds. • Managed in bulk through a custom upload view. • ~1s / item update; ~10m for an average update. • Actually thought about using async jobs!!!
  10. 10. REIMPLEMENTATION • New class extending Persistent • Fields as attributes • Stored in BTrees • <1s to update 10000 items!!
  11. 11. BENEFITS • MUCH faster!! • Reduced stack complexity - no more async. • Reduced resource usage - no more wasted time. • Easier to test. • Non-Plone people can work on it!
  12. 12. DRAWBACKS • No OOB permission checks - have to make sure that returned data should be accessible to the current user. • No content management - have to implement add/edit/delete forms. • No workflows, versioning, content rules, etc.. • Basically, not a content type!
  13. 13. AND THAT’S A GOOD THING • Not all applications should follow this pattern. • In this case, the requirements were better served this way.
  14. 14. Thank you!

PloneConf 2018 - Tokyo

Views

Total views

39

On Slideshare

0

From embeds

0

Number of embeds

14

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×