SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Plone on RelStorage
Calvin Hendryx-Parker
PLONE CONFERENCE 2010
Saturday, October 30, 2010
PLONE CONFERENCE 2010Overview
• How does Zope store data
• Why RelStorage?
• How to implement RelStorage
• Some reasons not to use RelStorage
Saturday, October 30, 2010
PLONE CONFERENCE 2010Zope Storage
Methods
Saturday, October 30, 2010
PLONE CONFERENCE 2010What is the ZODB?
• Object oriented database
• Used by Zope to hold everything from content
to scripts, to service configurations
Saturday, October 30, 2010
PLONE CONFERENCE 2010What is Filestorage?
• The default backend for Zope/ZEO
• var/filestorage/Data.fs
• Does an in-memory index at startup
• Data appends to the end
• Back-up utility is Repozo
Saturday, October 30, 2010
PLONE CONFERENCE 2010What is RelStorage?
• Drop in replacement
• Replaces ZEO
• Eliminates Data.fs
• Stores pickles
• Is still ZODB
• Uses relational
databases
Saturday, October 30, 2010
PLONE CONFERENCE 2010Why Change?
Saturday, October 30, 2010
PLONE CONFERENCE 2010Advantages of
RelStorage
• Existing infrastructure
• Existing expertise
• Wide range of management tools
• High availability, high performance clusters
• No in-memory index at startup
• Scales well as your database grows
• High Concurrency
Saturday, October 30, 2010
PLONE CONFERENCE 2010Real World
• Major Health System Site
• Java portion of site locked up
• Restarted Serivce with Little Impact
Saturday, October 30, 2010
PLONE CONFERENCE 2010Databases Supported
• MySQL 5.0.32 or better
• MySQLdb >= 1.2.2
• PostgreSQL 8.1 or
better
• psycopg2
• Oracle 10g
• cx_Oracle
Saturday, October 30, 2010
PLONE CONFERENCE 2010How Do I Install It?
• For MySQL add the
following to buildout.cfg:
eggs =
RelStorage
MySQL-Python
fake-eggs =
ZODB3 = 3.7.1
[instance]
type mysql
db plone
user plone
host localhost
password terriblepassword
Saturday, October 30, 2010
PLONE CONFERENCE 2010How Do I Install It?
• For PostgreSQL add the
following to buildout.cfg:
eggs =
RelStorage
fake-eggs =
ZODB3 = 3.7.1
psycopg2
[instance]
type postgresql
dbname plone
user plone
host localhost
password terriblepassword
Saturday, October 30, 2010
PLONE CONFERENCE 2010Options
• blob-dir
• shared-blob-dir
• keep-history
• replica-conf
• pack-gc
• pack-dry-run
• cache-servers
Saturday, October 30, 2010
PLONE CONFERENCE 2010Available Tools
• zodbconvert
• Converts from filestorage to {mysql/pgsql/oracle}
• Convert from {mysql/pgsql/oracle} to filestorage
• Convert from one Database to another
(ie: mysql to oracle)
• zodbpack
• Allows concurrent connections
• Use from cron
Saturday, October 30, 2010
PLONE CONFERENCE 2010zodbconvert.conf
<filestorage source>
path /opt/default/zinstance/var/
filestorage/Data.fs
</filestorage>
<relstorage destination>
<mysql>
db plone
user plone
passwd terriblepassword
</mysql>
</relstorage>
Converting from filestorage to MySQL
Saturday, October 30, 2010
PLONE CONFERENCE 2010Running zodbconvert
$ sudo /opt/mysql/zinstance/bin/zodbconvert --clear
zodbconvert.conf
Storages opened successfully.
All transactions copied successfully.
Saturday, October 30, 2010
PLONE CONFERENCE 2010What’s the Catch?
Saturday, October 30, 2010
PLONE CONFERENCE 2010There Are Pitfalls
• Added complexity
• Additional server load
• Additional memory utilization
• The database is full of pickles, not plain text
• Your database still needs to be packed
Saturday, October 30, 2010
PLONE CONFERENCE 2010What We Talked
About
• Zope storage engines: ZEO and RelStorage
• Why you might choose RelStorage
• How to install RelStorage
• Tools for RelStorage
• Why you might not use RelStorage
Saturday, October 30, 2010
PLONE CONFERENCE 2010Links
• http://pypi.python.org/pypi/RelStorage
• http://shane.willowrise.com/archives/relstorage-1-4-0b1-and-zodbshootout
Saturday, October 30, 2010
PLONE CONFERENCE 2010Credits:
• http://www.flickr.com/photos/kaplanbr/
2465380377/
• http://www.flickr.com/photos/
shuttercat7/416008944/
• http://www.flickr.com/photos/juniorvelo/
3267647833/
• http://www.flickr.com/photos/
arthurjohnpicton/4383221264/
• http://www.flickr.com/photos/generated/
3249283352/
Saturday, October 30, 2010
Check out
sixfeetup.com/demos
Saturday, October 30, 2010

Contenu connexe

Similaire à Plone on RelStorage

Pse2010 rel storage
Pse2010 rel storagePse2010 rel storage
Pse2010 rel storage
Lars Noldan
 
Jeff mc cune sf 2010
Jeff mc cune sf 2010Jeff mc cune sf 2010
Jeff mc cune sf 2010
Puppet
 
Sneak Peek of Nuxeo 5.4
Sneak Peek of Nuxeo 5.4Sneak Peek of Nuxeo 5.4
Sneak Peek of Nuxeo 5.4
Nuxeo
 

Similaire à Plone on RelStorage (20)

Pse2010 rel storage
Pse2010 rel storagePse2010 rel storage
Pse2010 rel storage
 
Laying Pipe with Transmogrifier
Laying Pipe with TransmogrifierLaying Pipe with Transmogrifier
Laying Pipe with Transmogrifier
 
"How Mozilla Uses Selenium"
"How Mozilla Uses Selenium""How Mozilla Uses Selenium"
"How Mozilla Uses Selenium"
 
Meet Couch DB
Meet Couch DBMeet Couch DB
Meet Couch DB
 
Buildout for the Future
Buildout for the FutureBuildout for the Future
Buildout for the Future
 
Buildout future
Buildout futureBuildout future
Buildout future
 
Gerenciamento Servidores com o Spacewalk
Gerenciamento Servidores com o SpacewalkGerenciamento Servidores com o Spacewalk
Gerenciamento Servidores com o Spacewalk
 
Jeff mc cune sf 2010
Jeff mc cune sf 2010Jeff mc cune sf 2010
Jeff mc cune sf 2010
 
Puppet Camp Chicago 2014: Keynote
Puppet Camp Chicago 2014: KeynotePuppet Camp Chicago 2014: Keynote
Puppet Camp Chicago 2014: Keynote
 
Data Loading for Ext GWT
Data Loading for Ext GWTData Loading for Ext GWT
Data Loading for Ext GWT
 
Puppet Camp New York Keynote
Puppet Camp New York KeynotePuppet Camp New York Keynote
Puppet Camp New York Keynote
 
Puppet Camp Tokyo 2014: Keynote
Puppet Camp Tokyo 2014: KeynotePuppet Camp Tokyo 2014: Keynote
Puppet Camp Tokyo 2014: Keynote
 
Puppet Camp DC 2014: Keynote
Puppet Camp DC 2014: KeynotePuppet Camp DC 2014: Keynote
Puppet Camp DC 2014: Keynote
 
Continuous Integration Testing for Plone Using Hudson
Continuous Integration Testing for Plone Using HudsonContinuous Integration Testing for Plone Using Hudson
Continuous Integration Testing for Plone Using Hudson
 
mogpres
mogpresmogpres
mogpres
 
Resumable File Upload API using GridFS and TUS
Resumable File Upload API using GridFS and TUSResumable File Upload API using GridFS and TUS
Resumable File Upload API using GridFS and TUS
 
Sneak Peek of Nuxeo 5.4
Sneak Peek of Nuxeo 5.4Sneak Peek of Nuxeo 5.4
Sneak Peek of Nuxeo 5.4
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in python
 
Pg nordic-day-2014-2 tb-enough
Pg nordic-day-2014-2 tb-enoughPg nordic-day-2014-2 tb-enough
Pg nordic-day-2014-2 tb-enough
 
Automation using-phing
Automation using-phingAutomation using-phing
Automation using-phing
 

Plus de Calvin Hendryx-Parker

Social Networking Tools Session Three
Social Networking Tools Session ThreeSocial Networking Tools Session Three
Social Networking Tools Session Three
Calvin Hendryx-Parker
 

Plus de Calvin Hendryx-Parker (8)

Plone and Drupal -- CMS Coexistance in Higher Education
Plone and Drupal -- CMS Coexistance in Higher EducationPlone and Drupal -- CMS Coexistance in Higher Education
Plone and Drupal -- CMS Coexistance in Higher Education
 
Plone roadmap
Plone roadmapPlone roadmap
Plone roadmap
 
How to seal the deal
How to seal the dealHow to seal the deal
How to seal the deal
 
2010 py ohio supervisor talk
2010 py ohio supervisor talk2010 py ohio supervisor talk
2010 py ohio supervisor talk
 
Social Networking Tools Session Three
Social Networking Tools Session ThreeSocial Networking Tools Session Three
Social Networking Tools Session Three
 
Social Networking Tools Session One
Social Networking Tools   Session OneSocial Networking Tools   Session One
Social Networking Tools Session One
 
Social Networking Tools Session Two
Social Networking Tools   Session TwoSocial Networking Tools   Session Two
Social Networking Tools Session Two
 
Plone's Anatomy
Plone's AnatomyPlone's Anatomy
Plone's Anatomy
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Dernier (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

Plone on RelStorage

  • 1. Plone on RelStorage Calvin Hendryx-Parker PLONE CONFERENCE 2010 Saturday, October 30, 2010
  • 2. PLONE CONFERENCE 2010Overview • How does Zope store data • Why RelStorage? • How to implement RelStorage • Some reasons not to use RelStorage Saturday, October 30, 2010
  • 3. PLONE CONFERENCE 2010Zope Storage Methods Saturday, October 30, 2010
  • 4. PLONE CONFERENCE 2010What is the ZODB? • Object oriented database • Used by Zope to hold everything from content to scripts, to service configurations Saturday, October 30, 2010
  • 5. PLONE CONFERENCE 2010What is Filestorage? • The default backend for Zope/ZEO • var/filestorage/Data.fs • Does an in-memory index at startup • Data appends to the end • Back-up utility is Repozo Saturday, October 30, 2010
  • 6. PLONE CONFERENCE 2010What is RelStorage? • Drop in replacement • Replaces ZEO • Eliminates Data.fs • Stores pickles • Is still ZODB • Uses relational databases Saturday, October 30, 2010
  • 7. PLONE CONFERENCE 2010Why Change? Saturday, October 30, 2010
  • 8. PLONE CONFERENCE 2010Advantages of RelStorage • Existing infrastructure • Existing expertise • Wide range of management tools • High availability, high performance clusters • No in-memory index at startup • Scales well as your database grows • High Concurrency Saturday, October 30, 2010
  • 9. PLONE CONFERENCE 2010Real World • Major Health System Site • Java portion of site locked up • Restarted Serivce with Little Impact Saturday, October 30, 2010
  • 10. PLONE CONFERENCE 2010Databases Supported • MySQL 5.0.32 or better • MySQLdb >= 1.2.2 • PostgreSQL 8.1 or better • psycopg2 • Oracle 10g • cx_Oracle Saturday, October 30, 2010
  • 11. PLONE CONFERENCE 2010How Do I Install It? • For MySQL add the following to buildout.cfg: eggs = RelStorage MySQL-Python fake-eggs = ZODB3 = 3.7.1 [instance] type mysql db plone user plone host localhost password terriblepassword Saturday, October 30, 2010
  • 12. PLONE CONFERENCE 2010How Do I Install It? • For PostgreSQL add the following to buildout.cfg: eggs = RelStorage fake-eggs = ZODB3 = 3.7.1 psycopg2 [instance] type postgresql dbname plone user plone host localhost password terriblepassword Saturday, October 30, 2010
  • 13. PLONE CONFERENCE 2010Options • blob-dir • shared-blob-dir • keep-history • replica-conf • pack-gc • pack-dry-run • cache-servers Saturday, October 30, 2010
  • 14. PLONE CONFERENCE 2010Available Tools • zodbconvert • Converts from filestorage to {mysql/pgsql/oracle} • Convert from {mysql/pgsql/oracle} to filestorage • Convert from one Database to another (ie: mysql to oracle) • zodbpack • Allows concurrent connections • Use from cron Saturday, October 30, 2010
  • 15. PLONE CONFERENCE 2010zodbconvert.conf <filestorage source> path /opt/default/zinstance/var/ filestorage/Data.fs </filestorage> <relstorage destination> <mysql> db plone user plone passwd terriblepassword </mysql> </relstorage> Converting from filestorage to MySQL Saturday, October 30, 2010
  • 16. PLONE CONFERENCE 2010Running zodbconvert $ sudo /opt/mysql/zinstance/bin/zodbconvert --clear zodbconvert.conf Storages opened successfully. All transactions copied successfully. Saturday, October 30, 2010
  • 17. PLONE CONFERENCE 2010What’s the Catch? Saturday, October 30, 2010
  • 18. PLONE CONFERENCE 2010There Are Pitfalls • Added complexity • Additional server load • Additional memory utilization • The database is full of pickles, not plain text • Your database still needs to be packed Saturday, October 30, 2010
  • 19. PLONE CONFERENCE 2010What We Talked About • Zope storage engines: ZEO and RelStorage • Why you might choose RelStorage • How to install RelStorage • Tools for RelStorage • Why you might not use RelStorage Saturday, October 30, 2010
  • 20. PLONE CONFERENCE 2010Links • http://pypi.python.org/pypi/RelStorage • http://shane.willowrise.com/archives/relstorage-1-4-0b1-and-zodbshootout Saturday, October 30, 2010
  • 21. PLONE CONFERENCE 2010Credits: • http://www.flickr.com/photos/kaplanbr/ 2465380377/ • http://www.flickr.com/photos/ shuttercat7/416008944/ • http://www.flickr.com/photos/juniorvelo/ 3267647833/ • http://www.flickr.com/photos/ arthurjohnpicton/4383221264/ • http://www.flickr.com/photos/generated/ 3249283352/ Saturday, October 30, 2010