![Page 1: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/1.jpg)
Year in Review: Perforce 2014 Product Updates
Charles McLouthDirector of Solutions Engineering
![Page 2: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/2.jpg)
Presented By:
Charlie McLouthDirector of Solutions Engineering
Charlie has over 15 years of
experience with technologies such
as RDBMS, web applications, back
office applications, and web services.
He has held positions ranging from
Developer to Product Manager
before joining Perforce 8 years ago.
![Page 3: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/3.jpg)
Agenda
• Server Optimizations
• Features for End Users
• Collaboration Features with Swarm
![Page 4: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/4.jpg)
SERVER OPTIMIZATIONS
![Page 5: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/5.jpg)
Server Performance and Scalability
• Concurrency Optimizations – aka Lockless
Reads
• Federated Architecture for Distributed Teams
• Clustering for Horizontal Scalability
• Clustering for High Availability
• Sync Performance
SERVER OPTIMIZATIONS
![Page 6: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/6.jpg)
Concurrency – aka Lockless Reads
SERVER OPTIMIZATIONS
Reader
Writer
Database
p4 submit
p4 changes
Lockless Reads
Writer does not block
Reader
✗
![Page 7: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/7.jpg)
VMware
Before After
Total Commands 3,518,462 3,211,786
Total write-wait-time 58,468s
Total read-wait-time 1,033,957s
SERVER OPTIMIZATIONS
VMware with 5,000 users(24 hour period)
3,430s
992s 1000X
17X
![Page 8: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/8.jpg)
VMware – Command Delays
SERVER OPTIMIZATIONS
1,749
00
500
1,000
1,500
2,000
2,500
3,000
Seconds ofdelay
1 2 4 8 16 32 64 128 256
Commands affected by delays
Commands affected, before Lockless
Commands affected, after Lockless
![Page 9: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/9.jpg)
Federated Architecture for Distributed Teams
• Commit/Edge modes for server
• Local metadata with edge
services
• Submits propagated to commit
service
• Other commands execute locally
Commit
Edge Edge
SERVER OPTIMIZATIONS
![Page 10: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/10.jpg)
Performance Gains with Federation
56.6
8.7
61
9.8
0.9 0.7 1.8 0.20
10
20
30
40
50
60
70
Sync Revert Integrate Edit
Direct Edge
SERVER OPTIMIZATIONSPerforce Lab Benchmarks
![Page 11: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/11.jpg)
Clustering for Horizontal Scalability
• Distribute workload to multiple nodes
• Better performance and experience for all users
From This…
100%Activity
P4D
To This…
Commit
2%
Workspace
Server
34% 33% 33%User Activity User Activity User ActivitySystem Activity
Workspace
Server
Workspace
Server
SERVER OPTIMIZATIONS
![Page 12: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/12.jpg)
Horizontal Scalability Results
• 100,000 simulated developers
• 742 commands/sec
• 8 node cluster
Commit
WS WS WS WS
WS WS WS WS
SERVER OPTIMIZATIONS
![Page 13: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/13.jpg)
Clustering – Failover
SERVER OPTIMIZATIONS
P4D P4D
NAS
Router
P4DDepot
MasterDepot
Standby
Depot
Master
LAN
![Page 14: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/14.jpg)
Sync Performance
• Sync Performance Increased
– Network window size optimization
– Transfer multiple times at a time – aka Parallel Sync
SERVER OPTIMIZATIONS
![Page 15: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/15.jpg)
Network Window Size Optimization
SERVER OPTIMIZATIONS
![Page 16: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/16.jpg)
Network Window Size Optimization
SERVER OPTIMIZATIONS
![Page 17: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/17.jpg)
Parallel Sync
SERVER OPTIMIZATIONS
![Page 18: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/18.jpg)
Sync Performance Results
• Network window size optimization
– 1/16th the amount of network round trips
• Parallel Sync
– 1/4th the amount of time
• Results of both
– Syncs up to 20 times faster
SERVER OPTIMIZATIONS
![Page 19: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/19.jpg)
LDAP For User Authentication
• Perforce provides Authentication Trigger entry points for lookup into
third party user database (including LDAP)
• auth_check trigger works well, but ...
– Needs to be installed separately
– No standard (Python, Perl, C++ implementations)
– One more headache for administrators
• Most common request on P4Ideax:
– Perforce should provide built-in LDAP integration
SERVER OPTIMIZATIONS
![Page 20: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/20.jpg)
Native LDAP support
SERVER OPTIMIZATIONS
LDAP
p4 loginuser-login
client-PromptEnter Password:
<password> dm-login
LDAP Query
<accepted>
client-SetPassword
User logged in.
![Page 21: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/21.jpg)
Native LDAP support
• Increases Security
– Consistent Authentication and Authorization
• Simplifies Policy Management
– Access granted/revoked by LDAP group membership
SERVER OPTIMIZATIONS
![Page 22: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/22.jpg)
P4Search
SERVER OPTIMIZATIONS
???
File names,
Changes ...
File content?
C#
.h
JAVA
PPTX
![Page 23: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/23.jpg)
P4 Search
Solution: External Index
SERVER OPTIMIZATIONS
storesearch
Search engine indexes content
Stores it in its own database
Users search the index first
Index returns a depot path
Permissions applied to index
results
Returns results to user
![Page 24: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/24.jpg)
P4Search
SERVER OPTIMIZATIONS
• File content
• P4 Metadata
• P4 attributes
• And the common
metadata if
desired
![Page 25: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/25.jpg)
END USERS
![Page 26: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/26.jpg)
P4V – 2014 New Features
• User interface refresh
• Remove excess baggage
• Simplify experience
• Faster rendering
• Faster for large file sets
• “Snappier” responsiveness
END USERS
![Page 27: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/27.jpg)
P4V – 2014 New Features
END USERS
![Page 28: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/28.jpg)
P4V – 2014 New Features
END USERS
![Page 29: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/29.jpg)
P4V – 2014 New Features
END USERS
![Page 30: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/30.jpg)
Streams
END USERS
• Model the flow of change for
the entire product lifecycle
• Visual roadmap for users
• Remove the fear/overhead
of branching and merging
![Page 31: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/31.jpg)
Streams – 2014 Features
END USERS
• Streams allows “import”
paths to include
components from one
Stream into another.
– Import is by reference (not a
copy)
– Import path is Read Only
![Page 32: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/32.jpg)
Streams – 2014 Features
END USERS
Top Requests of Streams to
facilitate managing Components
with Streams:
– “I want to lock an import a
specific version of my
component.”
– “I want to submit changes to a
referenced component.”
• Makes managing components
simpler
![Page 33: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/33.jpg)
Streams – Frozen Imports
Paths:
import import/... //depot/import/…@1000
• Freezes the import path (component) at a point in time.
• p4 sync import/…#head behaves like p4 sync import/…@1000
END USERS
![Page 34: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/34.jpg)
Streams – Writeable Imports
Paths:
import+ import/... //depot/import/…
• Functions like standard import, enabling you to map a path or
Component from outside the stream.
• But unlike a standard import path, you can submit changes to the
files in an import+ path.
END USERS
![Page 35: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/35.jpg)
Streams – 2014 Features
35END USERS
• Frozen Imports and Writeable
Imports
– Simplifies the management of
Components within a Stream
![Page 36: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/36.jpg)
SWARM COLLABORATION
![Page 37: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/37.jpg)
Swarm – 2014 Features
SWARM COLLABORATION
• Review Votes
• Required Reviewers
• Lightweight Tasks
• Attachments
• API
![Page 38: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/38.jpg)
Swarm – 2014 Features
SWARM COLLABORATION
![Page 39: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/39.jpg)
Swarm – 2014 Features
SWARM COLLABORATION
![Page 40: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/40.jpg)
Swarm – 2014 Features
SWARM COLLABORATION
![Page 41: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/41.jpg)
Swarm – 2014 Features
SWARM COLLABORATION
![Page 42: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/42.jpg)
Swarm - Comment Attachments
SWARM COLLABORATION
![Page 43: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/43.jpg)
Swarm – Rest API
SWARM COLLABORATION
![Page 44: Year in Review: Perforce 2014 Product Updates](https://reader034.vdocument.in/reader034/viewer/2022052602/559bd7fb1a28ab32158b45ae/html5/thumbnails/44.jpg)
Questions?
Charlie McLouth
• Resources
• Videos of all MERGE 2014 presentations:
perforce.com/MERGE
• Sign up for Monthly Product Updates:
perforce.com/communication-center
• Blog posts from Perforce product teams:
perforce.com/blog