Sizing
3DSpace Index is designed to search across metadata (basics, plus workspace / library data, attribute information, relationship information) and file content. To establish your company's hardware needs for the 3DSpace Index, you must gather information on the existing legacy system and the intended use of the new system.
The hardware you choose must be able to function in production for at least 2 to 3 years.
- Memory Allocation
For optimal performance, all 3DSpace Index content must fit in memory (RAM):
- RAM for runtime (with Relationships and Octree):
RAM_Runtime = 2.5kB * (NbBO + NbRel) + 3kB*NbRep
- RAM for Consolidation Server:
RAM_ConsoBox = 2kB * NbRelCrawled
whereNbRelCrawled
is the NbRel defined in the previous step. - RAM fixed need:
RAM_Fixed = 2GB (for JVM) + 16 GB
(for indexing search and search handler) - Number of CPU Core: 8 physical core for 1 Query per second (for 1000 users)
- Disk space:
(RAM_Runtime + RAM_ConsoBox ) * 4
Example 1: 4 million objects (with 5% Rep, 40% Relationships)
RAM_Runtime = 10GB+600M=10.6GB
RAM_ConsoBox = 3.2GB
RAM_Fixed = 18GB
- Total RAM = 31.8GB
- Number of CPU Core: 8
- Disk space = 55GB
Example 2: 12 million objects + fixed need
- 100GB index size
- 25GB Consolidation Server size
- Total RAM = 128GB
- Number of CPU Core: 8
- Disk space = 512GB
- RAM for runtime (with Relationships and Octree):
- Metadata
- The config.xml file controls the metadata indexed by the CloudView server. The total business object size depends on its attributes, the median size of
these attributes, and whether they have default values or blanks.
Metadata is approximately 3 to 10k per business object, depending on the complexity of the data. Use this as a rough guideline to establish RAM sizing. For example, if you have 4.000.000 objects to index, this would produce a range of 12-40 GB of business object data, you want half of that: 6 GB (low end) -> 20 GB (high end) to fit in memory.
- File Content
- To control the file content indexed by the CloudView server, use the following config.xml file parameters:
<FORMAT name="*"/>
,<STORE name="*"/>
<EXTENSION names="pdf,xls,zip,ppt,doc,txt"/>
The following table shows the typical compression ratios for a few file types. These ratios represent the expected size of the data in the index relative to the original file. For example, a 1024kb word doc expects to have about 204.8Kb of that data in the index (
1024kb* 20% = 204.8kb
).Note: These ratios are ESTIMATES.File Type Size RTF 90% HTML/XML 90% DOC 20% PDF 20% XLS 20% TXT 100% - CPU
- Use 1 slice for all production implementations. This setting allows you to use expand features.
- JVM Memory
- Each JVM supporting CloudView requires 300MB of Java Heap Memory. The Converter process requires 300MB RAM+ (4*size of the largest file in the index).
- Native Memory
- The native memory size is calculated by adding the following values:
- 10% of total index size
- The number of fields in the index * The number of objects in the index * 8
- Search Handler Size, which is based on the number of objects in the index. For 0-2 million records, use a small Search Handler, 4 GB. For 2-6 million objects, a medium Search Handler, 8GB. 6 million + objects, use a large Search Handler, 16 GB.
- 4 GB
Memory Allocation Examples
Example showing the memory allocation for an index server setup.
This example shows JVM memory sizing for a CloudView with:
- One slice running 7 JVMs,
- Where the largest file in the index is 20MB,
- and native Memory sizing for an index with 4 million objects, 200 fields per object, where a field takes 8 bytes.
- 7 JVMs * 300 MB + (20MB * 4)= 2180 MB
- 4,000,000 * 200 fields * 8 = 6.4 GB
- Consolidation server = 4GB
- Search handler in RAM 8 GB
- 10% of index in RAM (as described in File Sizing) = 20GB*.1=2 GB
- Total recommended RAM: 2180 MB + 6.4 GB + 4GB + 8GB + 2 GB + 4 GB = 26.6 GB => 32 GB RAM.