SlideShare a Scribd company logo
1 of 53
# 
1 
Michael Shields 
Server Performance Engineer
# 
2 
Developed and supported software since 1977, specializing in 
server optimization for software products including Perforce, 
Sybase and Ingres. Hobbies include 
on the human psyche.
# 
3 
• Lockless Reads 
• Edge/Commit Servers 
• Clustering
# 
4
# 
5 
• Goal: Efficiently utilize machine resources 
• Particularly CPU cores 
• Reduce likelihood blocked on metadata locks 
• Lockless Reads != Dirty Reads 
• Returned data is consistent 
• btree and layers above ensure consistency 
• e.g. maxCommitChange, client entity locks
# 
6 
• Example: p4 sync //<depot-path>/...@<change> 
--- db.counters 
--- locks read/write 0/0 rows get+pos+scan put+del 1+0+0 0+0 
--- db.have 
--- locks read/write 0/3 rows get+pos+scan put+del 0+1+1 201+0 
--- db.rev 
--- locks read/write 0/0 rows get+pos+scan put+del 0+1+202 0+0 
--- db.working 
--- locks read/write 0/0 rows get+pos+scan put+del 0+1+1 0+0
# 
7 
• Example: p4 sync //<depot-path>/...@<change> 
--- /write /0 rows +pos+scan put+del +0+0 0+0 
--- db.have 
--- locks read/write 0/3 rows get+pos+scan put+del 0+1+1 201+0 
--- /write /0 rows get+ + put+del 0+ + 0+0 
--- db.working 
--- locks read/write 0/0 rows get+pos+scan put+del 0+1+1 0+0 
• Lockless scan of db.rev (uses maxCommitChange)
# 
8 
• Example: p4 sync //<depot-path>/...@<change> 
--- db.counters 
--- locks read/write 0/0 rows get+pos+scan put+del 1+0+0 0+0 
--- /write /3 rows get+ + put+del 0+ + 201+0 
--- db.rev 
--- locks read/write 0/0 rows get+pos+scan put+del 0+1+202 0+0 
--- /write /0 rows get+ + put+del 0+ + 0+0 
• Lockless scan of db.rev (uses maxCommitChange) 
• Lockless scan of db.have (uses client entity lock)
# 
9 
• Example: p4 sync //<depot-path>/...@<change> 
--- db.counters 
--- locks read/write 0/0 rows get+pos+scan put+del 1+0+0 0+0 
--- read/ 0/ rows get+pos+scan +del 0+1+1 +0 
--- db.rev 
--- locks read/write 0/0 rows get+pos+scan put+del 0+1+202 0+0 
--- db.working 
--- locks read/write 0/0 rows get+pos+scan put+del 0+1+1 0+0 
• Lockless scan of db.rev (uses maxCommitChange) 
• Lockless scan of db.have (uses client entity lock) 
• db.have update exclusive lock easier to acquire
# 
10 
• db.peeking=2 
• Significant concurrency improvements 
• Shared locks not taken for some large reads, e.g. integrate 
• db.peeking=3 
• Lockless db.rev scan 
• Instead of db.revhx and db.revdx scans with shared locks 
• Can require more resources 
• Not all commands and arguments can be lockless
# 
11 
• btree layer implementation (Patent Pending) 
• Structural changes requiring checkpoint replay 
• Maximum table size is now 64 zettabytes 
• Additional potential invalidation of process-level caches 
• Data scans can tolerate writes 
• Additional complexities
# 
12 
• Executes commands “typical” of a “developer” 
• sync, fstat, edit, change, submit, integrate, resolve, etc. 
• Concurrent execution of many “developer” roles 
• Random paths, files per task, and delays 
• Shorter average delay simulates many more users 
• 256@15sec might approximate 10,000@10min 
• 512@15sec ~20,000@10min, YMMV
# 
13
# 
14
# 
15
# 
16
# 
17
# 
18
# 
19
# 
20
# 
21
# 
22
# 
23 
• EA 
• VMware 
• Not track=1 
• track=1 required for best analysis
# 
24
# 
25
# 
26
# 
27
# 
28
# 
29 
• Goal: Improve remote user experience 
• Client commands handled by local edge 
• Helps enable larger remote presence 
• Network load to Commit Server likely reduced 
• Network latency to Commit Server less of an impact 
• acb simulation 
• 128 “developer” roles, average delay of 15 seconds 
• 128@15sec might approximate 5,000@10min
# 
30
# 
31
# 
32
# 
33
# 
34
# 
35
# 
36 
• Goals 
• Improve scalability 
• Automated failover 
• Leverages Edge/Commit infrastructure 
• Workspace server/depot master (and depot standby!) 
• Shared archive an integral component 
• Users connect to broker acting as a router 
• Forwards to selected workspace server
# 
37 
Shared 
Archive 
High-bandwidth Network 
Clients 
Clients 
Clients 
Clients 
Corporate Network
# 
38 
Shared 
Archive 
High-bandwidth Network 
Clients 
Clients 
Clients 
Clients 
Corporate Network 
Depot 
Master 
Workspace 
Server 
Workspace 
Server 
Depot 
Standby Workspace 
Server
# 
39 
Shared 
Archive 
High-bandwidth Network 
Clients 
Clients 
Clients 
Clients 
Server Clustering 
Corporate Network 
Depot 
Master 
Workspace 
Workspace 
Server 
Depot 
Standby Workspace 
Server 
Router 
Clustering 
Router
# 
40 
Shared 
Archive 
High-bandwidth Network 
Clients 
Clients 
Clients 
Clients 
Server Clustering 
Corporate Network 
Depot 
Master 
Depot 
Standby 
Workspace 
Workspace 
Server 
Workspace 
Server 
Low-Latency Network 
Router 
Clustering 
Router
# 
41 
Shared 
Archive 
High-bandwidth Network 
Clients 
Clients 
Clients 
Clients 
Server Clustering 
Corporate Network 
Depot 
Master 
Depot 
Standby 
Workspace 
Workspace 
Server 
Workspace 
Server 
Low-Latency Network 
Router 
Clustering 
Router 
High-bandwidth Network
# 
42 
• acb simulation 
• Average delay reduced to five seconds (from 15) 
• 512@5sec might approximate 60,000@10min 
• Simulation stressed 
• 2x workspace servers: 2x more “developers” 
• Only 14% longer run time when stressed
# 
43
# 
44
# 
45
# 
46 
• Doubling workspace servers again 
• Cheated by deploying two on each machine 
• For large deployments, one per machine is best practice 
• Average delay further reduced to three seconds 
• 512@3sec might approximate 100,000@10min 
• 100,000 simulated “developer” roles!
# 
47
# 
48
# 
49
# 
50
# 
51 
• Lockless Reads 
• Get there now if you’re not already 
• Edge/Commit Servers 
• Deploy edge servers across latency 
• Clustering 
• Scale to even larger number of users
# 
52
# 
53 
Michael Shields 
mshields@perforce.com 
@p4mshields

More Related Content

What's hot

Apache Traffic Server
Apache Traffic ServerApache Traffic Server
Apache Traffic Serversupertom
 
Journey to Stability: Petabyte Ceph Cluster in OpenStack Cloud
Journey to Stability: Petabyte Ceph Cluster in OpenStack CloudJourney to Stability: Petabyte Ceph Cluster in OpenStack Cloud
Journey to Stability: Petabyte Ceph Cluster in OpenStack CloudPatrick McGarry
 
Using ТРСС to study Firebird performance
Using ТРСС to study Firebird performanceUsing ТРСС to study Firebird performance
Using ТРСС to study Firebird performanceMind The Firebird
 
hbaseconasia2017: Large scale data near-line loading method and architecture
hbaseconasia2017: Large scale data near-line loading method and architecturehbaseconasia2017: Large scale data near-line loading method and architecture
hbaseconasia2017: Large scale data near-line loading method and architectureHBaseCon
 
Ceph Day San Jose - HA NAS with CephFS
Ceph Day San Jose - HA NAS with CephFSCeph Day San Jose - HA NAS with CephFS
Ceph Day San Jose - HA NAS with CephFSCeph Community
 
Counting image views using redis cluster
Counting image views using redis clusterCounting image views using redis cluster
Counting image views using redis clusterRedis Labs
 
Linux Block Cache Practice on Ceph BlueStore - Junxin Zhang
Linux Block Cache Practice on Ceph BlueStore - Junxin ZhangLinux Block Cache Practice on Ceph BlueStore - Junxin Zhang
Linux Block Cache Practice on Ceph BlueStore - Junxin ZhangCeph Community
 
hbaseconasia2017: hbase-2.0.0
hbaseconasia2017: hbase-2.0.0hbaseconasia2017: hbase-2.0.0
hbaseconasia2017: hbase-2.0.0HBaseCon
 
Basic and Advanced Analysis of Ceph Volume Backend Driver in Cinder - John Haan
Basic and Advanced Analysis of Ceph Volume Backend Driver in Cinder - John HaanBasic and Advanced Analysis of Ceph Volume Backend Driver in Cinder - John Haan
Basic and Advanced Analysis of Ceph Volume Backend Driver in Cinder - John HaanCeph Community
 
Leveraging Structured Data To Reduce Disk, IO & Network Bandwidth
Leveraging Structured Data To Reduce Disk, IO & Network BandwidthLeveraging Structured Data To Reduce Disk, IO & Network Bandwidth
Leveraging Structured Data To Reduce Disk, IO & Network BandwidthPerforce
 
Ceph Performance Profiling and Reporting
Ceph Performance Profiling and ReportingCeph Performance Profiling and Reporting
Ceph Performance Profiling and ReportingCeph Community
 
High Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance TuningHigh Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance TuningAlbert Chen
 
RedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedis Labs
 
Redis on NVMe SSD - Zvika Guz, Samsung
 Redis on NVMe SSD - Zvika Guz, Samsung Redis on NVMe SSD - Zvika Guz, Samsung
Redis on NVMe SSD - Zvika Guz, SamsungRedis Labs
 
LAB - Perforce Large Scale & Multi-Site Implementations
LAB - Perforce Large Scale & Multi-Site ImplementationsLAB - Perforce Large Scale & Multi-Site Implementations
LAB - Perforce Large Scale & Multi-Site ImplementationsPerforce
 
Ceph QoS: How to support QoS in distributed storage system - Taewoong Kim
Ceph QoS: How to support QoS in distributed storage system - Taewoong KimCeph QoS: How to support QoS in distributed storage system - Taewoong Kim
Ceph QoS: How to support QoS in distributed storage system - Taewoong KimCeph Community
 
RGW Beyond Cloud: Live Video Storage with Ceph - Shengjing Zhu, Yiming Xie
RGW Beyond Cloud: Live Video Storage with Ceph - Shengjing Zhu, Yiming XieRGW Beyond Cloud: Live Video Storage with Ceph - Shengjing Zhu, Yiming Xie
RGW Beyond Cloud: Live Video Storage with Ceph - Shengjing Zhu, Yiming XieCeph Community
 
Globo.com & Varnish
Globo.com & VarnishGlobo.com & Varnish
Globo.com & Varnishlokama
 

What's hot (20)

Apache Traffic Server
Apache Traffic ServerApache Traffic Server
Apache Traffic Server
 
Journey to Stability: Petabyte Ceph Cluster in OpenStack Cloud
Journey to Stability: Petabyte Ceph Cluster in OpenStack CloudJourney to Stability: Petabyte Ceph Cluster in OpenStack Cloud
Journey to Stability: Petabyte Ceph Cluster in OpenStack Cloud
 
Using ТРСС to study Firebird performance
Using ТРСС to study Firebird performanceUsing ТРСС to study Firebird performance
Using ТРСС to study Firebird performance
 
hbaseconasia2017: Large scale data near-line loading method and architecture
hbaseconasia2017: Large scale data near-line loading method and architecturehbaseconasia2017: Large scale data near-line loading method and architecture
hbaseconasia2017: Large scale data near-line loading method and architecture
 
Ceph Day San Jose - HA NAS with CephFS
Ceph Day San Jose - HA NAS with CephFSCeph Day San Jose - HA NAS with CephFS
Ceph Day San Jose - HA NAS with CephFS
 
Oscon 2010 - ATS
Oscon 2010 - ATSOscon 2010 - ATS
Oscon 2010 - ATS
 
Counting image views using redis cluster
Counting image views using redis clusterCounting image views using redis cluster
Counting image views using redis cluster
 
Linux Block Cache Practice on Ceph BlueStore - Junxin Zhang
Linux Block Cache Practice on Ceph BlueStore - Junxin ZhangLinux Block Cache Practice on Ceph BlueStore - Junxin Zhang
Linux Block Cache Practice on Ceph BlueStore - Junxin Zhang
 
hbaseconasia2017: hbase-2.0.0
hbaseconasia2017: hbase-2.0.0hbaseconasia2017: hbase-2.0.0
hbaseconasia2017: hbase-2.0.0
 
Basic and Advanced Analysis of Ceph Volume Backend Driver in Cinder - John Haan
Basic and Advanced Analysis of Ceph Volume Backend Driver in Cinder - John HaanBasic and Advanced Analysis of Ceph Volume Backend Driver in Cinder - John Haan
Basic and Advanced Analysis of Ceph Volume Backend Driver in Cinder - John Haan
 
Leveraging Structured Data To Reduce Disk, IO & Network Bandwidth
Leveraging Structured Data To Reduce Disk, IO & Network BandwidthLeveraging Structured Data To Reduce Disk, IO & Network Bandwidth
Leveraging Structured Data To Reduce Disk, IO & Network Bandwidth
 
Ceph Performance Profiling and Reporting
Ceph Performance Profiling and ReportingCeph Performance Profiling and Reporting
Ceph Performance Profiling and Reporting
 
High Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance TuningHigh Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance Tuning
 
RedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ TwitterRedisConf17- Using Redis at scale @ Twitter
RedisConf17- Using Redis at scale @ Twitter
 
Redis on NVMe SSD - Zvika Guz, Samsung
 Redis on NVMe SSD - Zvika Guz, Samsung Redis on NVMe SSD - Zvika Guz, Samsung
Redis on NVMe SSD - Zvika Guz, Samsung
 
LAB - Perforce Large Scale & Multi-Site Implementations
LAB - Perforce Large Scale & Multi-Site ImplementationsLAB - Perforce Large Scale & Multi-Site Implementations
LAB - Perforce Large Scale & Multi-Site Implementations
 
Ceph QoS: How to support QoS in distributed storage system - Taewoong Kim
Ceph QoS: How to support QoS in distributed storage system - Taewoong KimCeph QoS: How to support QoS in distributed storage system - Taewoong Kim
Ceph QoS: How to support QoS in distributed storage system - Taewoong Kim
 
Rit 2011 ats
Rit 2011 atsRit 2011 ats
Rit 2011 ats
 
RGW Beyond Cloud: Live Video Storage with Ceph - Shengjing Zhu, Yiming Xie
RGW Beyond Cloud: Live Video Storage with Ceph - Shengjing Zhu, Yiming XieRGW Beyond Cloud: Live Video Storage with Ceph - Shengjing Zhu, Yiming Xie
RGW Beyond Cloud: Live Video Storage with Ceph - Shengjing Zhu, Yiming Xie
 
Globo.com & Varnish
Globo.com & VarnishGlobo.com & Varnish
Globo.com & Varnish
 

Viewers also liked

Subversion to Perforce in 30 minutes
Subversion to Perforce in 30 minutesSubversion to Perforce in 30 minutes
Subversion to Perforce in 30 minutesPerforce
 
UNDERSTANDING FIBER OPTIC PRINCIPLES PP
UNDERSTANDING FIBER OPTIC PRINCIPLES PPUNDERSTANDING FIBER OPTIC PRINCIPLES PP
UNDERSTANDING FIBER OPTIC PRINCIPLES PPAjiboye Zaccheous
 
Performance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWSPerformance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWSMatthias Matook
 
Large Scale Load Testing Amazon.com’s Traffic on AWS (CPN102) | AWS re:Invent...
Large Scale Load Testing Amazon.com’s Traffic on AWS (CPN102) | AWS re:Invent...Large Scale Load Testing Amazon.com’s Traffic on AWS (CPN102) | AWS re:Invent...
Large Scale Load Testing Amazon.com’s Traffic on AWS (CPN102) | AWS re:Invent...Amazon Web Services
 
Perforce Innovations Showcase 
Perforce Innovations Showcase Perforce Innovations Showcase 
Perforce Innovations Showcase Perforce
 
Optical fiber communications
Optical fiber communicationsOptical fiber communications
Optical fiber communicationsRaju vaghela
 

Viewers also liked (7)

Subversion to Perforce in 30 minutes
Subversion to Perforce in 30 minutesSubversion to Perforce in 30 minutes
Subversion to Perforce in 30 minutes
 
UNDERSTANDING FIBER OPTIC PRINCIPLES PP
UNDERSTANDING FIBER OPTIC PRINCIPLES PPUNDERSTANDING FIBER OPTIC PRINCIPLES PP
UNDERSTANDING FIBER OPTIC PRINCIPLES PP
 
Performance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWSPerformance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWS
 
Large Scale Load Testing Amazon.com’s Traffic on AWS (CPN102) | AWS re:Invent...
Large Scale Load Testing Amazon.com’s Traffic on AWS (CPN102) | AWS re:Invent...Large Scale Load Testing Amazon.com’s Traffic on AWS (CPN102) | AWS re:Invent...
Large Scale Load Testing Amazon.com’s Traffic on AWS (CPN102) | AWS re:Invent...
 
Perforce Innovations Showcase 
Perforce Innovations Showcase Perforce Innovations Showcase 
Perforce Innovations Showcase 
 
Optical fiber communications
Optical fiber communicationsOptical fiber communications
Optical fiber communications
 
Retail Management
Retail ManagementRetail Management
Retail Management
 

Similar to Performance & Scalability Improvements in Perforce

Best And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsBest And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsLetsConnect
 
Adm07 The Health Check Extravaganza for IBM Social and Collaboration Environm...
Adm07 The Health Check Extravaganza for IBM Social and Collaboration Environm...Adm07 The Health Check Extravaganza for IBM Social and Collaboration Environm...
Adm07 The Health Check Extravaganza for IBM Social and Collaboration Environm...Kim Greene
 
Wireless Developing Wireless Monitoring and Control devices
Wireless Developing Wireless Monitoring and Control devicesWireless Developing Wireless Monitoring and Control devices
Wireless Developing Wireless Monitoring and Control devicesAidan Venn MSc
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine Yard
 
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 20161049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016panagenda
 
OSDC 2012 | Scaling with MongoDB by Ross Lawley
OSDC 2012 | Scaling with MongoDB by Ross LawleyOSDC 2012 | Scaling with MongoDB by Ross Lawley
OSDC 2012 | Scaling with MongoDB by Ross LawleyNETWAYS
 
Perforce Server: The Next Generation
Perforce Server: The Next GenerationPerforce Server: The Next Generation
Perforce Server: The Next GenerationPerforce
 
MySQL replication best practices 105-232-931
MySQL replication best practices 105-232-931MySQL replication best practices 105-232-931
MySQL replication best practices 105-232-931Baruch Osoveskiy
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and ActivatorKevin Webber
 
The Care + Feeding of a Mongodb Cluster
The Care + Feeding of a Mongodb ClusterThe Care + Feeding of a Mongodb Cluster
The Care + Feeding of a Mongodb ClusterChris Henry
 
Real-time Big Data Analytics Engine using Impala
Real-time Big Data Analytics Engine using ImpalaReal-time Big Data Analytics Engine using Impala
Real-time Big Data Analytics Engine using ImpalaJason Shih
 
Presto At Treasure Data
Presto At Treasure DataPresto At Treasure Data
Presto At Treasure DataTaro L. Saito
 
Performance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons LearnedPerformance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons LearnedTim Callaghan
 
Performance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RACPerformance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RACKristofferson A
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...DataWorks Summit/Hadoop Summit
 
Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutApache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutSander Temme
 

Similar to Performance & Scalability Improvements in Perforce (20)

Best And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsBest And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM Connections
 
Adm07 The Health Check Extravaganza for IBM Social and Collaboration Environm...
Adm07 The Health Check Extravaganza for IBM Social and Collaboration Environm...Adm07 The Health Check Extravaganza for IBM Social and Collaboration Environm...
Adm07 The Health Check Extravaganza for IBM Social and Collaboration Environm...
 
Wireless Developing Wireless Monitoring and Control devices
Wireless Developing Wireless Monitoring and Control devicesWireless Developing Wireless Monitoring and Control devices
Wireless Developing Wireless Monitoring and Control devices
 
Rails Performance
Rails PerformanceRails Performance
Rails Performance
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 20161049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
 
60 Admin Tips
60 Admin Tips60 Admin Tips
60 Admin Tips
 
OSDC 2012 | Scaling with MongoDB by Ross Lawley
OSDC 2012 | Scaling with MongoDB by Ross LawleyOSDC 2012 | Scaling with MongoDB by Ross Lawley
OSDC 2012 | Scaling with MongoDB by Ross Lawley
 
Perforce Server: The Next Generation
Perforce Server: The Next GenerationPerforce Server: The Next Generation
Perforce Server: The Next Generation
 
MySQL replication best practices 105-232-931
MySQL replication best practices 105-232-931MySQL replication best practices 105-232-931
MySQL replication best practices 105-232-931
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
 
Top ten-list
Top ten-listTop ten-list
Top ten-list
 
The Care + Feeding of a Mongodb Cluster
The Care + Feeding of a Mongodb ClusterThe Care + Feeding of a Mongodb Cluster
The Care + Feeding of a Mongodb Cluster
 
MySQL highav Availability
MySQL highav AvailabilityMySQL highav Availability
MySQL highav Availability
 
Real-time Big Data Analytics Engine using Impala
Real-time Big Data Analytics Engine using ImpalaReal-time Big Data Analytics Engine using Impala
Real-time Big Data Analytics Engine using Impala
 
Presto At Treasure Data
Presto At Treasure DataPresto At Treasure Data
Presto At Treasure Data
 
Performance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons LearnedPerformance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons Learned
 
Performance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RACPerformance Scenario: Diagnosing and resolving sudden slow down on two node RAC
Performance Scenario: Diagnosing and resolving sudden slow down on two node RAC
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
 
Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutApache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling Out
 

More from Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsPerforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsPerforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowPerforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldPerforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMPerforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Perforce
 

More from Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

Performance & Scalability Improvements in Perforce

  • 1. # 1 Michael Shields Server Performance Engineer
  • 2. # 2 Developed and supported software since 1977, specializing in server optimization for software products including Perforce, Sybase and Ingres. Hobbies include on the human psyche.
  • 3. # 3 • Lockless Reads • Edge/Commit Servers • Clustering
  • 4. # 4
  • 5. # 5 • Goal: Efficiently utilize machine resources • Particularly CPU cores • Reduce likelihood blocked on metadata locks • Lockless Reads != Dirty Reads • Returned data is consistent • btree and layers above ensure consistency • e.g. maxCommitChange, client entity locks
  • 6. # 6 • Example: p4 sync //<depot-path>/...@<change> --- db.counters --- locks read/write 0/0 rows get+pos+scan put+del 1+0+0 0+0 --- db.have --- locks read/write 0/3 rows get+pos+scan put+del 0+1+1 201+0 --- db.rev --- locks read/write 0/0 rows get+pos+scan put+del 0+1+202 0+0 --- db.working --- locks read/write 0/0 rows get+pos+scan put+del 0+1+1 0+0
  • 7. # 7 • Example: p4 sync //<depot-path>/...@<change> --- /write /0 rows +pos+scan put+del +0+0 0+0 --- db.have --- locks read/write 0/3 rows get+pos+scan put+del 0+1+1 201+0 --- /write /0 rows get+ + put+del 0+ + 0+0 --- db.working --- locks read/write 0/0 rows get+pos+scan put+del 0+1+1 0+0 • Lockless scan of db.rev (uses maxCommitChange)
  • 8. # 8 • Example: p4 sync //<depot-path>/...@<change> --- db.counters --- locks read/write 0/0 rows get+pos+scan put+del 1+0+0 0+0 --- /write /3 rows get+ + put+del 0+ + 201+0 --- db.rev --- locks read/write 0/0 rows get+pos+scan put+del 0+1+202 0+0 --- /write /0 rows get+ + put+del 0+ + 0+0 • Lockless scan of db.rev (uses maxCommitChange) • Lockless scan of db.have (uses client entity lock)
  • 9. # 9 • Example: p4 sync //<depot-path>/...@<change> --- db.counters --- locks read/write 0/0 rows get+pos+scan put+del 1+0+0 0+0 --- read/ 0/ rows get+pos+scan +del 0+1+1 +0 --- db.rev --- locks read/write 0/0 rows get+pos+scan put+del 0+1+202 0+0 --- db.working --- locks read/write 0/0 rows get+pos+scan put+del 0+1+1 0+0 • Lockless scan of db.rev (uses maxCommitChange) • Lockless scan of db.have (uses client entity lock) • db.have update exclusive lock easier to acquire
  • 10. # 10 • db.peeking=2 • Significant concurrency improvements • Shared locks not taken for some large reads, e.g. integrate • db.peeking=3 • Lockless db.rev scan • Instead of db.revhx and db.revdx scans with shared locks • Can require more resources • Not all commands and arguments can be lockless
  • 11. # 11 • btree layer implementation (Patent Pending) • Structural changes requiring checkpoint replay • Maximum table size is now 64 zettabytes • Additional potential invalidation of process-level caches • Data scans can tolerate writes • Additional complexities
  • 12. # 12 • Executes commands “typical” of a “developer” • sync, fstat, edit, change, submit, integrate, resolve, etc. • Concurrent execution of many “developer” roles • Random paths, files per task, and delays • Shorter average delay simulates many more users • 256@15sec might approximate 10,000@10min • 512@15sec ~20,000@10min, YMMV
  • 13. # 13
  • 14. # 14
  • 15. # 15
  • 16. # 16
  • 17. # 17
  • 18. # 18
  • 19. # 19
  • 20. # 20
  • 21. # 21
  • 22. # 22
  • 23. # 23 • EA • VMware • Not track=1 • track=1 required for best analysis
  • 24. # 24
  • 25. # 25
  • 26. # 26
  • 27. # 27
  • 28. # 28
  • 29. # 29 • Goal: Improve remote user experience • Client commands handled by local edge • Helps enable larger remote presence • Network load to Commit Server likely reduced • Network latency to Commit Server less of an impact • acb simulation • 128 “developer” roles, average delay of 15 seconds • 128@15sec might approximate 5,000@10min
  • 30. # 30
  • 31. # 31
  • 32. # 32
  • 33. # 33
  • 34. # 34
  • 35. # 35
  • 36. # 36 • Goals • Improve scalability • Automated failover • Leverages Edge/Commit infrastructure • Workspace server/depot master (and depot standby!) • Shared archive an integral component • Users connect to broker acting as a router • Forwards to selected workspace server
  • 37. # 37 Shared Archive High-bandwidth Network Clients Clients Clients Clients Corporate Network
  • 38. # 38 Shared Archive High-bandwidth Network Clients Clients Clients Clients Corporate Network Depot Master Workspace Server Workspace Server Depot Standby Workspace Server
  • 39. # 39 Shared Archive High-bandwidth Network Clients Clients Clients Clients Server Clustering Corporate Network Depot Master Workspace Workspace Server Depot Standby Workspace Server Router Clustering Router
  • 40. # 40 Shared Archive High-bandwidth Network Clients Clients Clients Clients Server Clustering Corporate Network Depot Master Depot Standby Workspace Workspace Server Workspace Server Low-Latency Network Router Clustering Router
  • 41. # 41 Shared Archive High-bandwidth Network Clients Clients Clients Clients Server Clustering Corporate Network Depot Master Depot Standby Workspace Workspace Server Workspace Server Low-Latency Network Router Clustering Router High-bandwidth Network
  • 42. # 42 • acb simulation • Average delay reduced to five seconds (from 15) • 512@5sec might approximate 60,000@10min • Simulation stressed • 2x workspace servers: 2x more “developers” • Only 14% longer run time when stressed
  • 43. # 43
  • 44. # 44
  • 45. # 45
  • 46. # 46 • Doubling workspace servers again • Cheated by deploying two on each machine • For large deployments, one per machine is best practice • Average delay further reduced to three seconds • 512@3sec might approximate 100,000@10min • 100,000 simulated “developer” roles!
  • 47. # 47
  • 48. # 48
  • 49. # 49
  • 50. # 50
  • 51. # 51 • Lockless Reads • Get there now if you’re not already • Edge/Commit Servers • Deploy edge servers across latency • Clustering • Scale to even larger number of users
  • 52. # 52
  • 53. # 53 Michael Shields mshields@perforce.com @p4mshields

Editor's Notes

  1. Writers in part of the btree don’t affect readers of other parts.
  2. All data is from the active portion of the simulation: all roles have warmed up and are running their tasks (and none have finished).
  3. All data is from the active portion of the simulation: all roles have warmed up and are running their tasks (and none have finished).