SlideShare a Scribd company logo
1 of 4
Download to read offline
 
MERGE 2013 THE PERFORCE CONFERENCE SAN FRANCISCO • APRIL 24−26
Abstract
If you work with large volumes of data̶multimedia
assets, video game art, and firmware designs̶you
understand the pain of trying to quickly get a copy of
source and build assets. But if you have the right
storage system to use, you can be up and running with
a new Perforce workspace in minutes instead of hours.
This white paper describes a simple procedure for fast
workspace cloning using a few Perforce commands
and NetApp FlexClone® technology.
Managing Big Workspaces with
Storage Magic
Randy Defauw, Perforce and Agnes Jacob, NetApp
2 Managing Big Workspaces with Storage Magic
Introduction
Developers work with large volumes of data. It can be challenging to get a quick copy of
source and prebuilt workspaces. With the help of storage technology, workspaces can be
created in minutes instead of hours. In this white paper, we will explore the magic behind this
technology and outline a simple procedure for fast Perforce Software Version Management
workspace creation using NetApp FlexClone technology.
NetApp Flexclone Technology
NetApp FlexClone technology enables instant, space-efficient clones of production or test data
to be created easily, minimizing storage requirements, because physical disk space for these
clones is required only when data blocks are changed. With NetApp FlexClone, each engineer
can have his or her own virtual copy of production or test data for use in test and development
activities.
The foundation of NetApp FlexClone is a writable point-in-time image based on a NetApp
Snapshot®
of a volume. The cloned volume stores only the data that changes between the
source and clone. The Snapshot copy can already exist or it can be created automatically as
part of the cloning operation. Creating the FlexClone volume takes just a few moments
because the copied metadata is very small compared to the actual data. The parent volume
can change independently of the FlexClone volume. It can also be split from its parent to
create a new standalone volume. Space is used very efficiently because new disk space is
only allocated when there are metadata updates and/or additions to either the parent or the
clone volume. While this may sound like magic, this technology has been an integral part of
Data ONTAP and deployed for numerous years in productions.
Create Perforce Workspaces Using Flexclone
Traditionally, there are two methods for obtaining a Perforce workspace:
• A developer can create a p4 client, populate this client workspace with source code (“p4
sync”), and build the binaries. This takes an inordinately long time: in one use case,
around 45 minutes to download the source code and another 1 to 2 hours to build the
initial workspace.
• Alternatively, the developer can use a fully populated prebuilt workspace, using hard
links back to the existing prebuilt workspace. This approach avoids the build step
because it provides prebuilt objects, but it is slow and error prone because files are
shared among developers (via hard links) as well as with the build-daemon. Any user
can trash a shared file, and all the other users (including the build-daemon) suffer.
FlexClone technology offers an opportunity to provide a developer with a prebuilt workspace in
a matter of minutes with much more reliability because these files are not shared (no hard
links) with other workspaces. The generic steps to clone a workspace are as follows:
1. Create volume on NetApp filer (storage system).
2. Make volume accessible via export and mount on host’s server.
3. Run “p4 sync” on host to populate the template workspace.
4. Run the build process in the template workspace to generate build artifacts.
5. Create Snapshot of volume that contains the prebuilt workspace on NetApp filer.
3 Managing Big Workspaces with Storage Magic
6. Create clone from Snapshot.
7. Export the cloned volume on filer and then mount clone onto host.
8. Change ownership (i.e., change the ownership of every file/dir in the tree to be owned
by the user you want to give the volume to). To do this efficiently, create a script that
takes a User ID (uid) as a numeric value and a list of files, which then calls the chown
system call for each file—setting the owner to the passed uid. If the number of files or
list of files is large, one can use “xargs” to split the list into multiple invocations of the
script.
9. Define a Perforce client to let Perforce know the existence of the new workspace,
modifying fields such as “root directory” and “owner” with user-specific information.
10.Run “p4 flush” to make the workspace think it has the file content already. (If you are not
cloning at the head revision of the data, you can use the template workspace as a
revision specifier.) Note: If the clone is used only for builds and no edits are needed,
then flush is not required.
11.(Optional) Run “p4 reconcile” to verify that the workspace data is consistent. Ignore any
build artifacts that are not kept in the Perforce repositoryIn Data ONTAP operating in 7-
mode, workspace access for multiple users has to be provided by using automounter to
allocate the mount points for any future user requests for a new workspace. For Data
ONTAP operating in C-mode, which is NetApp’s new scalable and clustered storage
solution, there is support for global namespace and thus it can provide seamless access
to the workspaces for multiple users.
In a distributed environment, you can use SnapMirror to replicate the Snapshot copies of the
built-out workspace on a central storage to the remote sites. Subsequently, clones can be
taken of this Snapshot copy at the remote site to provide user workspaces at that site.
Using traditional approaches to create Perforce workspaces can be time consuming, especially
when the workspaces become large. With FlexClone technology, only the first full build and
incremental builds require time. This time is amortized over all the users because it takes only
minutes for each user workspace to be created from this central Snapshot copy of the built-out
workspace. This speed is possible because cloning using FlexClone technology is
instantaneous; it also has the added advantage that new clones do not take any additional
space until changes are made to the workspace.
Considerations
Using FlexClone to create Perforce workspaces can dramatically improve engineering
productivity; however, there are some issues to consider:
• Clean up cloned workspaces to avoid leaving numerous abandoned workspaces. The
proper way to clean up is to do the following:
1. Run Perforce “client –d”.
2. Remove the contents of workspace directory.
3. Destroy clone on NetApp filer.
• If you employ a bisect workflow for continuous integration testing, make sure that the
bisect workflow employs the “p4 sync/flush –p” variant to prevent spamming the server.
4 Managing Big Workspaces with Storage Magic
• The maximum number of FlexClones per volume on Data ONTAP 8.1 is 32,767 and
255 for prior releases on Data ONTAP.
• Certain Perforce operations (i.e., flush or sync) require exclusive locks on several
important db.* files to preserve atomicity. Commands needing locks on any of the db.*
files will be blocked until the command has completed. Running numerous flushes and
sync operations can affect performance. However, using NetApp SAN protocols such as
FCP and iSCSI for the Perforce database can alleviate this issue.
Conclusion
Perforce software combined with NetApp storage solutions improve engineers’ productivity,
assisting in releasing products on time. In addition to using FlexClone to create Perforce
workspaces, the combination of Perforce and NetApp can also have other uses to make
engineers more efficient. They include testing product patches, diagnosing an issue using the
clone volume without affecting the production environment, and performance testing in which a
baseline can be established and subject the clone to various performance parameters.
References
• TR-3347: “A Thorough Introduction to FlexClone Volumes”
http://www.netapp.com/us/media/tr-3347.pdf
• TR-4015: “SnapMirror Configuration and Best Practices Guide for Data ONTAP 8.1
Operating in Cluster-Mode”
http://media.netapp.com/documents/tr-4015.pdf

More Related Content

What's hot

Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
Kyle Hailey
 

What's hot (20)

Perforce Helix Never Dies: DevOps at Bandai Namco Studios
Perforce Helix Never Dies: DevOps at Bandai Namco StudiosPerforce Helix Never Dies: DevOps at Bandai Namco Studios
Perforce Helix Never Dies: DevOps at Bandai Namco Studios
 
Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...
Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...
Leverage Mesos for running Spark Streaming production jobs by Iulian Dragos a...
 
Monitoring with prometheus
Monitoring with prometheusMonitoring with prometheus
Monitoring with prometheus
 
RedisConf17 - Rax, Listpack and Safe Contexts
RedisConf17 - Rax, Listpack and Safe ContextsRedisConf17 - Rax, Listpack and Safe Contexts
RedisConf17 - Rax, Listpack and Safe Contexts
 
Scaling Apache Storm (Hadoop Summit 2015)
Scaling Apache Storm (Hadoop Summit 2015)Scaling Apache Storm (Hadoop Summit 2015)
Scaling Apache Storm (Hadoop Summit 2015)
 
Apply, rinse and repeat: avoid the fidelity gap
Apply, rinse and repeat: avoid the fidelity gapApply, rinse and repeat: avoid the fidelity gap
Apply, rinse and repeat: avoid the fidelity gap
 
Spark on Kubernetes - Advanced Spark and Tensorflow Meetup - Jan 19 2017 - An...
Spark on Kubernetes - Advanced Spark and Tensorflow Meetup - Jan 19 2017 - An...Spark on Kubernetes - Advanced Spark and Tensorflow Meetup - Jan 19 2017 - An...
Spark on Kubernetes - Advanced Spark and Tensorflow Meetup - Jan 19 2017 - An...
 
Terraform Best Practices - DevOps Unicorns 2019
Terraform Best Practices - DevOps Unicorns 2019Terraform Best Practices - DevOps Unicorns 2019
Terraform Best Practices - DevOps Unicorns 2019
 
Jim Dowling - Multi-tenant Flink-as-a-Service on YARN
Jim Dowling - Multi-tenant Flink-as-a-Service on YARN Jim Dowling - Multi-tenant Flink-as-a-Service on YARN
Jim Dowling - Multi-tenant Flink-as-a-Service on YARN
 
netty_qcon_v4
netty_qcon_v4netty_qcon_v4
netty_qcon_v4
 
Best Practices for Using Alluxio with Apache Spark with Gene Pang
Best Practices for Using Alluxio with Apache Spark with Gene PangBest Practices for Using Alluxio with Apache Spark with Gene Pang
Best Practices for Using Alluxio with Apache Spark with Gene Pang
 
Hack Shack workshop: Improve day two operations with your own custom automati...
Hack Shack workshop: Improve day two operations with your own custom automati...Hack Shack workshop: Improve day two operations with your own custom automati...
Hack Shack workshop: Improve day two operations with your own custom automati...
 
20141103 cern open_stack_paris_v3
20141103 cern open_stack_paris_v320141103 cern open_stack_paris_v3
20141103 cern open_stack_paris_v3
 
Terraform modules and some of best-practices - March 2019
Terraform modules and some of best-practices - March 2019Terraform modules and some of best-practices - March 2019
Terraform modules and some of best-practices - March 2019
 
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
 
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
Oracle Open World 2014: Lies, Damned Lies, and I/O Statistics [ CON3671]
 
Experience with Kafka & Storm
Experience with Kafka & StormExperience with Kafka & Storm
Experience with Kafka & Storm
 
HDFS on Kubernetes—Lessons Learned with Kimoon Kim
HDFS on Kubernetes—Lessons Learned with Kimoon KimHDFS on Kubernetes—Lessons Learned with Kimoon Kim
HDFS on Kubernetes—Lessons Learned with Kimoon Kim
 
Enterprise Grade Streaming under 2ms on Hadoop
Enterprise Grade Streaming under 2ms on HadoopEnterprise Grade Streaming under 2ms on Hadoop
Enterprise Grade Streaming under 2ms on Hadoop
 
PHP Backends for Real-Time User Interaction using Apache Storm.
PHP Backends for Real-Time User Interaction using Apache Storm.PHP Backends for Real-Time User Interaction using Apache Storm.
PHP Backends for Real-Time User Interaction using Apache Storm.
 

Viewers also liked

[NetApp] Simplified HA:DR Using Storage Solutions
[NetApp] Simplified HA:DR Using Storage Solutions[NetApp] Simplified HA:DR Using Storage Solutions
[NetApp] Simplified HA:DR Using Storage Solutions
Perforce
 
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
Perforce
 
[Citrix] Perforce Standardisation at Citrix
[Citrix] Perforce Standardisation at Citrix[Citrix] Perforce Standardisation at Citrix
[Citrix] Perforce Standardisation at Citrix
Perforce
 
[Lucas Films] Using a Perforce Proxy with Alternate Transports
[Lucas Films] Using a Perforce Proxy with Alternate Transports[Lucas Films] Using a Perforce Proxy with Alternate Transports
[Lucas Films] Using a Perforce Proxy with Alternate Transports
Perforce
 
[SAP] Perforce Administrative Self Services at SAP
[SAP] Perforce Administrative Self Services at SAP[SAP] Perforce Administrative Self Services at SAP
[SAP] Perforce Administrative Self Services at SAP
Perforce
 
Infographic: Perforce vs ClearCase
Infographic: Perforce vs ClearCaseInfographic: Perforce vs ClearCase
Infographic: Perforce vs ClearCase
Perforce
 
[Nvidia] Extracting Depot Paths Into New Instances of Their Own
[Nvidia] Extracting Depot Paths Into New Instances of Their Own[Nvidia] Extracting Depot Paths Into New Instances of Their Own
[Nvidia] Extracting Depot Paths Into New Instances of Their Own
Perforce
 
[IC Manage] Workspace Acceleration & Network Storage Reduction
[IC Manage] Workspace Acceleration & Network Storage Reduction[IC Manage] Workspace Acceleration & Network Storage Reduction
[IC Manage] Workspace Acceleration & Network Storage Reduction
Perforce
 
[MathWorks] Versioning Infrastructure
[MathWorks] Versioning Infrastructure[MathWorks] Versioning Infrastructure
[MathWorks] Versioning Infrastructure
Perforce
 
Infographic: Perforce vs Subversion
Infographic: Perforce vs SubversionInfographic: Perforce vs Subversion
Infographic: Perforce vs Subversion
Perforce
 
[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture
Perforce
 
[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation System[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation System
Perforce
 

Viewers also liked (20)

Granular Protections Management with Triggers
Granular Protections Management with TriggersGranular Protections Management with Triggers
Granular Protections Management with Triggers
 
[NetApp] Simplified HA:DR Using Storage Solutions
[NetApp] Simplified HA:DR Using Storage Solutions[NetApp] Simplified HA:DR Using Storage Solutions
[NetApp] Simplified HA:DR Using Storage Solutions
 
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
 
[Citrix] Perforce Standardisation at Citrix
[Citrix] Perforce Standardisation at Citrix[Citrix] Perforce Standardisation at Citrix
[Citrix] Perforce Standardisation at Citrix
 
Cheat Sheet
Cheat SheetCheat Sheet
Cheat Sheet
 
From ClearCase to Perforce Helix: Breakthroughs in Scalability at Intel
From ClearCase to Perforce Helix: Breakthroughs in Scalability at IntelFrom ClearCase to Perforce Helix: Breakthroughs in Scalability at Intel
From ClearCase to Perforce Helix: Breakthroughs in Scalability at Intel
 
How Continuous Delivery Helped McKesson Create Award Winning Applications
How Continuous Delivery Helped McKesson Create Award Winning ApplicationsHow Continuous Delivery Helped McKesson Create Award Winning Applications
How Continuous Delivery Helped McKesson Create Award Winning Applications
 
Managing Microservices at Scale
Managing Microservices at ScaleManaging Microservices at Scale
Managing Microservices at Scale
 
[Lucas Films] Using a Perforce Proxy with Alternate Transports
[Lucas Films] Using a Perforce Proxy with Alternate Transports[Lucas Films] Using a Perforce Proxy with Alternate Transports
[Lucas Films] Using a Perforce Proxy with Alternate Transports
 
[SAP] Perforce Administrative Self Services at SAP
[SAP] Perforce Administrative Self Services at SAP[SAP] Perforce Administrative Self Services at SAP
[SAP] Perforce Administrative Self Services at SAP
 
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
[Webinar] The Changing Role of Release Engineering in a DevOps World with J. ...
 
Infographic: Perforce vs ClearCase
Infographic: Perforce vs ClearCaseInfographic: Perforce vs ClearCase
Infographic: Perforce vs ClearCase
 
[Nvidia] Extracting Depot Paths Into New Instances of Their Own
[Nvidia] Extracting Depot Paths Into New Instances of Their Own[Nvidia] Extracting Depot Paths Into New Instances of Their Own
[Nvidia] Extracting Depot Paths Into New Instances of Their Own
 
[IC Manage] Workspace Acceleration & Network Storage Reduction
[IC Manage] Workspace Acceleration & Network Storage Reduction[IC Manage] Workspace Acceleration & Network Storage Reduction
[IC Manage] Workspace Acceleration & Network Storage Reduction
 
[MathWorks] Versioning Infrastructure
[MathWorks] Versioning Infrastructure[MathWorks] Versioning Infrastructure
[MathWorks] Versioning Infrastructure
 
Continuous Validation
Continuous ValidationContinuous Validation
Continuous Validation
 
Infographic: Perforce vs Subversion
Infographic: Perforce vs SubversionInfographic: Perforce vs Subversion
Infographic: Perforce vs Subversion
 
[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture
 
[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation System[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation System
 
Conquering Chaos: Helix & DevOps
Conquering Chaos: Helix & DevOpsConquering Chaos: Helix & DevOps
Conquering Chaos: Helix & DevOps
 

Similar to [NetApp Managing Big Workspaces with Storage Magic

AIDevWorldApacheNiFi101
AIDevWorldApacheNiFi101AIDevWorldApacheNiFi101
AIDevWorldApacheNiFi101
Timothy Spann
 
5503 cake php-tutorial-no-1-from-ibm
5503 cake php-tutorial-no-1-from-ibm5503 cake php-tutorial-no-1-from-ibm
5503 cake php-tutorial-no-1-from-ibm
balajipala
 

Similar to [NetApp Managing Big Workspaces with Storage Magic (20)

Testing Delphix: easy data virtualization
Testing Delphix: easy data virtualizationTesting Delphix: easy data virtualization
Testing Delphix: easy data virtualization
 
White Paper: Scaling Servers and Storage for Film Assets
White Paper: Scaling Servers and Storage for Film AssetsWhite Paper: Scaling Servers and Storage for Film Assets
White Paper: Scaling Servers and Storage for Film Assets
 
[NetApp] Managing Big Workspaces with Storage Magic
[NetApp] Managing Big Workspaces with Storage Magic[NetApp] Managing Big Workspaces with Storage Magic
[NetApp] Managing Big Workspaces with Storage Magic
 
Speeding Up Spark Performance using Alluxio at China Unicom
Speeding Up Spark Performance using Alluxio at China UnicomSpeeding Up Spark Performance using Alluxio at China Unicom
Speeding Up Spark Performance using Alluxio at China Unicom
 
AIDevWorldApacheNiFi101
AIDevWorldApacheNiFi101AIDevWorldApacheNiFi101
AIDevWorldApacheNiFi101
 
Effective Spark with Alluxio at Strata+Hadoop World San Jose 2017
Effective Spark with Alluxio at Strata+Hadoop World San Jose 2017Effective Spark with Alluxio at Strata+Hadoop World San Jose 2017
Effective Spark with Alluxio at Strata+Hadoop World San Jose 2017
 
StorageQuery: federated querying on object stores, powered by Alluxio and Presto
StorageQuery: federated querying on object stores, powered by Alluxio and PrestoStorageQuery: federated querying on object stores, powered by Alluxio and Presto
StorageQuery: federated querying on object stores, powered by Alluxio and Presto
 
BlueGene
BlueGeneBlueGene
BlueGene
 
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
 
Demo 0.9.4
Demo 0.9.4Demo 0.9.4
Demo 0.9.4
 
6 Ways of Solve Your Oracle Dev-Test Problems Using All-Flash Storage and Cop...
6 Ways of Solve Your Oracle Dev-Test Problems Using All-Flash Storage and Cop...6 Ways of Solve Your Oracle Dev-Test Problems Using All-Flash Storage and Cop...
6 Ways of Solve Your Oracle Dev-Test Problems Using All-Flash Storage and Cop...
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
 
5503 cake php-tutorial-no-1-from-ibm
5503 cake php-tutorial-no-1-from-ibm5503 cake php-tutorial-no-1-from-ibm
5503 cake php-tutorial-no-1-from-ibm
 
Alluxio Use Cases at Strata+Hadoop World Beijing 2016
Alluxio Use Cases at Strata+Hadoop World Beijing 2016Alluxio Use Cases at Strata+Hadoop World Beijing 2016
Alluxio Use Cases at Strata+Hadoop World Beijing 2016
 
Terraform vs Pulumi
Terraform vs PulumiTerraform vs Pulumi
Terraform vs Pulumi
 
TYPO3 CMS v8 in the cloud
TYPO3 CMS v8 in the cloudTYPO3 CMS v8 in the cloud
TYPO3 CMS v8 in the cloud
 
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
 
Cloud computing UNIT 2.1 presentation in
Cloud computing UNIT 2.1 presentation inCloud computing UNIT 2.1 presentation in
Cloud computing UNIT 2.1 presentation in
 
Still All on One Server: Perforce at Scale
Still All on One Server: Perforce at Scale Still All on One Server: Perforce at Scale
Still All on One Server: Perforce at Scale
 
Power features in .NET 4: Investigating the features of .NET 4 which you don’...
Power features in .NET 4: Investigating the features of .NET 4 which you don’...Power features in .NET 4: Investigating the features of .NET 4 which you don’...
Power features in .NET 4: Investigating the features of .NET 4 which you don’...
 

More from 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

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 

[NetApp Managing Big Workspaces with Storage Magic

  • 1.   MERGE 2013 THE PERFORCE CONFERENCE SAN FRANCISCO • APRIL 24−26 Abstract If you work with large volumes of data̶multimedia assets, video game art, and firmware designs̶you understand the pain of trying to quickly get a copy of source and build assets. But if you have the right storage system to use, you can be up and running with a new Perforce workspace in minutes instead of hours. This white paper describes a simple procedure for fast workspace cloning using a few Perforce commands and NetApp FlexClone® technology. Managing Big Workspaces with Storage Magic Randy Defauw, Perforce and Agnes Jacob, NetApp
  • 2. 2 Managing Big Workspaces with Storage Magic Introduction Developers work with large volumes of data. It can be challenging to get a quick copy of source and prebuilt workspaces. With the help of storage technology, workspaces can be created in minutes instead of hours. In this white paper, we will explore the magic behind this technology and outline a simple procedure for fast Perforce Software Version Management workspace creation using NetApp FlexClone technology. NetApp Flexclone Technology NetApp FlexClone technology enables instant, space-efficient clones of production or test data to be created easily, minimizing storage requirements, because physical disk space for these clones is required only when data blocks are changed. With NetApp FlexClone, each engineer can have his or her own virtual copy of production or test data for use in test and development activities. The foundation of NetApp FlexClone is a writable point-in-time image based on a NetApp Snapshot® of a volume. The cloned volume stores only the data that changes between the source and clone. The Snapshot copy can already exist or it can be created automatically as part of the cloning operation. Creating the FlexClone volume takes just a few moments because the copied metadata is very small compared to the actual data. The parent volume can change independently of the FlexClone volume. It can also be split from its parent to create a new standalone volume. Space is used very efficiently because new disk space is only allocated when there are metadata updates and/or additions to either the parent or the clone volume. While this may sound like magic, this technology has been an integral part of Data ONTAP and deployed for numerous years in productions. Create Perforce Workspaces Using Flexclone Traditionally, there are two methods for obtaining a Perforce workspace: • A developer can create a p4 client, populate this client workspace with source code (“p4 sync”), and build the binaries. This takes an inordinately long time: in one use case, around 45 minutes to download the source code and another 1 to 2 hours to build the initial workspace. • Alternatively, the developer can use a fully populated prebuilt workspace, using hard links back to the existing prebuilt workspace. This approach avoids the build step because it provides prebuilt objects, but it is slow and error prone because files are shared among developers (via hard links) as well as with the build-daemon. Any user can trash a shared file, and all the other users (including the build-daemon) suffer. FlexClone technology offers an opportunity to provide a developer with a prebuilt workspace in a matter of minutes with much more reliability because these files are not shared (no hard links) with other workspaces. The generic steps to clone a workspace are as follows: 1. Create volume on NetApp filer (storage system). 2. Make volume accessible via export and mount on host’s server. 3. Run “p4 sync” on host to populate the template workspace. 4. Run the build process in the template workspace to generate build artifacts. 5. Create Snapshot of volume that contains the prebuilt workspace on NetApp filer.
  • 3. 3 Managing Big Workspaces with Storage Magic 6. Create clone from Snapshot. 7. Export the cloned volume on filer and then mount clone onto host. 8. Change ownership (i.e., change the ownership of every file/dir in the tree to be owned by the user you want to give the volume to). To do this efficiently, create a script that takes a User ID (uid) as a numeric value and a list of files, which then calls the chown system call for each file—setting the owner to the passed uid. If the number of files or list of files is large, one can use “xargs” to split the list into multiple invocations of the script. 9. Define a Perforce client to let Perforce know the existence of the new workspace, modifying fields such as “root directory” and “owner” with user-specific information. 10.Run “p4 flush” to make the workspace think it has the file content already. (If you are not cloning at the head revision of the data, you can use the template workspace as a revision specifier.) Note: If the clone is used only for builds and no edits are needed, then flush is not required. 11.(Optional) Run “p4 reconcile” to verify that the workspace data is consistent. Ignore any build artifacts that are not kept in the Perforce repositoryIn Data ONTAP operating in 7- mode, workspace access for multiple users has to be provided by using automounter to allocate the mount points for any future user requests for a new workspace. For Data ONTAP operating in C-mode, which is NetApp’s new scalable and clustered storage solution, there is support for global namespace and thus it can provide seamless access to the workspaces for multiple users. In a distributed environment, you can use SnapMirror to replicate the Snapshot copies of the built-out workspace on a central storage to the remote sites. Subsequently, clones can be taken of this Snapshot copy at the remote site to provide user workspaces at that site. Using traditional approaches to create Perforce workspaces can be time consuming, especially when the workspaces become large. With FlexClone technology, only the first full build and incremental builds require time. This time is amortized over all the users because it takes only minutes for each user workspace to be created from this central Snapshot copy of the built-out workspace. This speed is possible because cloning using FlexClone technology is instantaneous; it also has the added advantage that new clones do not take any additional space until changes are made to the workspace. Considerations Using FlexClone to create Perforce workspaces can dramatically improve engineering productivity; however, there are some issues to consider: • Clean up cloned workspaces to avoid leaving numerous abandoned workspaces. The proper way to clean up is to do the following: 1. Run Perforce “client –d”. 2. Remove the contents of workspace directory. 3. Destroy clone on NetApp filer. • If you employ a bisect workflow for continuous integration testing, make sure that the bisect workflow employs the “p4 sync/flush –p” variant to prevent spamming the server.
  • 4. 4 Managing Big Workspaces with Storage Magic • The maximum number of FlexClones per volume on Data ONTAP 8.1 is 32,767 and 255 for prior releases on Data ONTAP. • Certain Perforce operations (i.e., flush or sync) require exclusive locks on several important db.* files to preserve atomicity. Commands needing locks on any of the db.* files will be blocked until the command has completed. Running numerous flushes and sync operations can affect performance. However, using NetApp SAN protocols such as FCP and iSCSI for the Perforce database can alleviate this issue. Conclusion Perforce software combined with NetApp storage solutions improve engineers’ productivity, assisting in releasing products on time. In addition to using FlexClone to create Perforce workspaces, the combination of Perforce and NetApp can also have other uses to make engineers more efficient. They include testing product patches, diagnosing an issue using the clone volume without affecting the production environment, and performance testing in which a baseline can be established and subject the clone to various performance parameters. References • TR-3347: “A Thorough Introduction to FlexClone Volumes” http://www.netapp.com/us/media/tr-3347.pdf • TR-4015: “SnapMirror Configuration and Best Practices Guide for Data ONTAP 8.1 Operating in Cluster-Mode” http://media.netapp.com/documents/tr-4015.pdf