Prerequisites

This section describes the prerequisites for the P4 Search service, which can be deployed in a variety of ways depending on your use case.

System requirements

The system requirements for P4 Search will depend on your type of deployment, whether it's a small site, a medium site or a proxy. For large site deployments, contact the Perforce team.

P4 Search is a self-contained Java application designed and tested against AdoptOpenJDK Java 17. The Windows installers and Linux packages deploy their own Java runtime environment (OpenJDK 17) and wrap it as a service.

The Elasticsearch and P4 Server services can be deployed on the same instance or different instances, but all of the instances must be reachable over the network.

Small site deployment

For a small site deployment, P4 Search, P4 Server, and Elasticsearch are all deployed on separate instances and a single Elasticsearch index is used.

Here are typical system requirements for a small site deployment, along with approximate index times. For example, with 16 CPUs and 64GB RAM allocated to P4 Search and Elasticsearch, it would take approximately 0.5 hours to index 10,000 image files.

Files

Index time

P4 Search configuration

Elasticsearch configuration

DeepDetect configuration

(AI tagging)

P4 Render configuration

(3D rendering)

Text

< 3GB total file size

< 300,000 files

1 hour 12 CPUs, 32GB RAM

4 CPUs at low utilization, 32GB RAM

N/A N/A

Images

< 3GB total file size

< 10,000 files

0.5 hours 16 CPUs, 32GB RAM

Minimum CPU, 32GB RAM

N/A N/A

Images with AI tagging

< 3GB total file size

< 10,000 files

4 hours Minimum CPU, 32GB RAM

Minimum CPU, 32GB RAM

64 CPUs, 48GB RAM N/A

3D assets

< 90GB total file size

< 2,000 files

0.5 hours 10 CPUs, 32GB RAM

Minimum CPU, 32GB RAM

N/A 16 instances, 64 CPUs, 64GB RAM

Configuration options

The following default configuration options are used for a small site deployment:

  • com.perforce.p4search.index.bulksize=100

    For more information about Elasticsearch batch size, see Indexer configuration.

  • com.perforce.p4search.index.threads=8

    For more information about indexer thread pool size, see Indexer configuration.

  • com.perforce.p4search.tika.timeout=20000

    For more information about parsing timeout, see Tika configuration.

  • com.perforce.p4search.tika.maxfilesize=10485760

    For more information about maximum content file size, see Tika configuration.

  • com.perforce.p4search.core.maxfilesize=1073741824

    For more information about maximum sync file size, see P4 Server configuration.

For optimal performance, Elasticsearch recommends an index size of 50 GB. To align with this best practice, P4 Search automatically creates a partitioned index once the index reaches 50 GB. This behavior is defined in the etc/policy.json file.

Medium site deployment

For a medium site deployment, multiple Elasticsearch indexes are used by P4 Search services from a single P4 Server.

Here are the typical system requirements for a medium site deployment, along with approximate index times. For example, with 16 CPUs and 64GB RAM allocated to P4 Search and Elasticsearch, it would take approximately 2.5 hours to index 100,000 image files.

Files

Index time

P4 Search configuration

Elasticsearch configuration

DeepDetect configuration

(AI tagging)

P4 Render configuration

(3D rendering)

Text

< 30GB total file size

< 3,000,000 files

6.5 hours 12 CPUs, 32GB RAM

4 CPUs at low utilization, 32GB RAM

N/A N/A

Images

< 30GB total file size

< 100,000 files

2.5 hours 16 CPUs, 32GB RAM

Minimum CPU, 32GB RAM

N/A N/A

Images with AI tagging

< 30GB total file size

< 100,000 files

40 hours Minimum CPU, 32GB RAM

Minimum CPU, 32GB RAM

64 CPUs, 48GB RAM N/A

3D assets

< 900GB total file size

< 20,000 files

4 hours 10 CPUs, 32GB RAM

Minimum CPU, 32GB RAM

N/A 16 instances, 64 CPUs, 64GB RAM

Proxy deployment

If you are using proxy-based permissions, you must ensure that the P4 Search IP address is added to the protections table in P4 Server with the appropriate permission entries.

P4 Search acts as a proxy or intermediary when granting proxy permissions. For more information, see Direct connections or intermediaries in the P4 Server Administration Documentation.

Throughput

Here are the number of files indexed per minute for typical configurations of P4 Search, Elasticsearch, and P4 Render in a medium site deployment.

Files

Throughput (files/min)

P4 Search configuration

Elasticsearch configuration

P4 Render configuration

(3D rendering)

Text

< 30GB total file size

< 3,000,000 files

8000 12 CPUs, 32GB RAM

4 CPUs at low utilization, 32GB RAM

N/A

Images

< 30GB total file size

< 100,000 files

700 16 CPUs, 32GB RAM

Minimum CPU, 32GB RAM

N/A

Images with AI tagging

< 30GB total file size

< 100,000 files

50 Minimum CPU, 32GB RAM

Minimum CPU, 32GB RAM

N/A

3D assets

< 900GB total file size

< 20,000 files

80 10 CPUs, 32GB RAM

Minimum CPU, 32GB RAM

16 instances, 64 CPUs, 64GB RAM

Related topics

To deploy and install P4 Search on Windows or Linux, use the P4 Search installer (msi installer or deb/rpm package). See Set up P4 Search.