Five cool innovations in Zarafa


Published on

Presentation of Steve Hardy about new cool innovations in Zarafa at Zarafa SummerCamp 2011

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Five cool innovations in Zarafa

  1. 1. N cool innovations<br />Steve Hardy, Zarafa<br />
  2. 2. Zarafa MSR<br />Mail store relocator<br />Used to move store from one system to another<br />Also does real-time sync after the initial copy<br />Sync is bi-directional<br />Server1<br />Server2<br />
  3. 3. MSR copy only possible between two separate Zarafa instances<br />Can be in the same cluster, but not required<br />Destination user should not have a store<br />You can remove it with zarafa-admin –unhook-store<br />Zarafa MSR: how to use<br />
  4. 4. [Connection]<br /># Local server<br />serverpath: file:///var/run/zarafa<br /># Path to the ssl certificate to get admin access on remote server<br />sslkey_file: ssl.cert<br />sslkey_pass: pass<br />[Servers]<br />server_alias1: https://server1:237/zarafa<br />[Mapping]<br />user1: https://server2:237/zarafa<br />user2: %(server_alias1)s<br />Zarafa MSR: configuration file<br />
  5. 5. MSR will keep stores in sync after the initial copy<br />Allows user to keep working<br />Administrator can switch user to other node<br />At next login, the user will have been migrated<br />No profile re-creating needed<br />Zarafa MSR: sync after copy<br />
  6. 6. MSR also does bidirectional sync<br />This allows general replication of two stores<br />Can be used within a cluster or outside a cluster<br />Uses<br />Create a shared, replicated store across different zarafa instances<br />Replicate the public store to other Zarafa nodes<br />Create replicated stores for geographic separation<br />Zarafa MSR: a totally different use<br />
  7. 7. Separate package for windows<br />Fixes opening other calendars<br />Fixes private items<br />Still to come<br />Addressbook fixes<br />Conversation view<br />Outlook 2010<br />
  8. 8. Zarafa python tools<br />Zarafa-rrd<br />Creates and updates statistics<br />Uses standard ‘rrdtools’ package<br />Makes nice graphs<br />
  9. 9. Zarafa python tools<br />Zarafa-cachestat<br />Shows cache statistics<br />No longer available from SIGUSR1<br />(by the way SIGUSR2 was already removed in Zarafa 7.0, please use zarafa-admin –clear-cache)<br /> uquota ( 0/ 0) (N/A)<br /> index1 ( 3/ 3) (100%)<br /> obj ( 8/ 27) (29%)<br /> abinfo ( 0/ 0) (N/A)<br /> userid ( 0/ 0) (N/A)<br /> quota ( 0/ 0) (N/A)<br /> server ( 0/ 0) (N/A)<br /> cell ( 0/ 0) (N/A)<br /> index2 ( 2/ 6) (33%)<br /> extern ( 0/ 0) (N/A)<br /> acl ( 0/ 0) (N/A)<br /> store ( 9/ 22) (40%)<br />
  10. 10. Zarafa-vmstat<br />Shows ‘realtime’ information on your server<br />Will be shipped for 7.0.1<br />Zarafa python tools<br />
  11. 11. Main problem:<br />N concurrent users<br />Each user has one ‘push’ connection<br />The push connection is an always-on TCP connection<br />The connection is handled by Apache (PHP)<br />Apache runs a process for each connection<br />N = 1 million<br />1 million Apache processes needed<br />Z-Push: a large-scale implementation<br />
  12. 12. Solution: use Apache only for control data<br />Apache handles normal z-push connections<br />Specialized native c++ component handles push connections<br />Tested with up to 300000 concurrent TCP connections on a single host<br />HTTP request<br />Proxy<br />PHP/<br />Apache<br />C++<br />Push<br />App<br />
  13. 13. Some things to think about<br />Only about 60000 available TCP ports<br />If you want more, you need to have multiple IP’s<br />Useful to do with load balancer<br />HTTP request<br />Proxy<br />PHP/<br />Apache<br />C++<br />Push<br />App<br />
  14. 14. Project status<br />Not currently released<br />If you want to use it, please contact us<br />