SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a 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
 

Semelhante a 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
 

Mais 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
 

Mais 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
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

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