| // English-only string table for the sizing calculator. |
| // Adapted from https://github.com/cloudberry-fe/sizing (Apache-2.0). |
| export const STRINGS: Record<string, string> = { |
| 'title': 'Apache Cloudberry Sizing Calculator', |
| 'subtitle': 'Enter data size and infrastructure type to get a recommended hardware configuration', |
| 'input.datasize': 'Data size (uncompressed business data)', |
| 'input.infra': 'Infrastructure type', |
| 'infra.physical': 'Physical', |
| 'infra.vm': 'VM', |
| 'infra.cloud': 'Cloud', |
| 'product.physical': 'Apache Cloudberry · bare metal', |
| 'product.vm': 'Apache Cloudberry · VM', |
| 'product.cloud': 'Apache Cloudberry · cloud', |
| 'advanced': 'Advanced options', |
| 'adv.compression': 'Compression ratio', |
| 'adv.concurrency': 'Concurrency', |
| 'conc.std': 'Standard (≤80 concurrent, default)', |
| 'conc.high': 'High (≤120 concurrent, resources ×1.5)', |
| 'conc.xhigh': 'Very high (≤160 concurrent, resources ×2)', |
| 'nav.method': 'Methodology', |
| |
| 'preset.title': 'Hardware preset', |
| 'preset.sas_std': 'Standard · SAS', |
| 'preset.sas_std.desc': '2×32C / 512G / 24×1.2T SAS dual RAID5', |
| 'preset.ssd_perf': 'High-throughput · SSD', |
| 'preset.ssd_perf.desc': '2×32C / 1T / 24×960G SSD dual RAID5', |
| 'preset.nvme_modern': 'Modern · NVMe', |
| 'preset.nvme_modern.desc': '2×32C / 1T DDR5 / 12×3.84T NVMe RAID5', |
| |
| 'vmprofile.title': 'VM profile', |
| 'vmprofile.auto': 'Auto (by data size)', |
| 'vmprofile.lite': 'Lite — 8 vCPU / 32G / 2T (≤5TB)', |
| 'vmprofile.medium': 'Medium — 16 vCPU / 64G / 4T (≤50TB)', |
| 'vmprofile.large': 'Large — 24 vCPU / 96G / 8T (>50TB)', |
| 'vmprofile.picked': 'Auto-selected profile: {p}', |
| 'vmhost.lite': 'Shared host acceptable', |
| 'vmhost.medium': 'CPU overcommit ≤ 1:2', |
| 'vmhost.large': 'Dedicated host, 1:1 physical', |
| |
| 'scheme.title': 'Cloud scheme', |
| 'scheme.managed': 'Managed-disk', |
| 'scheme.local': 'Local-NVMe', |
| |
| 'bom.cpu': 'CPU', |
| 'bom.mem': 'Memory', |
| 'bom.sysdisk': 'System disk', |
| 'bom.datadisk': 'Data disks', |
| 'bom.raid': 'RAID', |
| 'bom.nic': 'NIC', |
| 'bom.throughput': 'Disk throughput', |
| 'bom.layout': 'Segment layout', |
| 'bom.perseg': 'Data per primary', |
| 'bom.segmem': 'Memory per segment', |
| 'bom.host': 'Host requirement', |
| 'raid.2x12r5': '2 × RAID5 groups of 12 (22 disks usable)', |
| 'raid.1x12r5': '12-disk RAID5 (11 usable); needs tri-mode RAID (PERC H755N/H965i, MegaRAID 9560-class) or VROC; JBOD + mirror redundancy also viable', |
| |
| 'result.title': 'Recommended configuration', |
| 'col.role': 'Role', |
| 'col.count': 'Nodes', |
| 'col.spec': 'Per-node spec', |
| 'col.note': 'Notes', |
| 'role.coordinator': 'Coordinator (primary + standby)', |
| 'role.segment': 'Segment node', |
| 'role.datanode': 'DataNode', |
| 'role.oss': 'Object storage (OSS)', |
| 'note.coord.physical': 'Active/standby HA', |
| 'note.segment.physical': 'primary+mirror; XFS filesystem', |
| 'note.coord.vm': 'Active/standby HA', |
| 'note.datanode.vm': 'primary+mirror; SSD preferred; XFS', |
| 'note.azure.extra': 'primary+mirror; use UDP interconnect, reserve port 65330', |
| 'note.gcp.extra': 'primary+mirror; prefer more, smaller nodes on GCP (vs AWS)', |
| 'note.oss': 'On demand, S3-compatible API', |
| |
| 'summary.title': 'Resource summary', |
| 'summary.nodes': 'Total nodes', |
| 'summary.cpu': 'Total vCPU/cores', |
| 'summary.mem': 'Total memory', |
| 'summary.storage': 'Total data storage', |
| 'summary.capacity': 'Usable data capacity (at chosen compression)', |
| 'binding.storage': 'Storage-bound: storage needs {s} nodes > compute needs {c}', |
| 'binding.compute': 'Compute-bound: compute needs {c} nodes > storage needs {s} (8c32G per TB rule)', |
| 'err.invalid': 'Enter a data size greater than 0', |
| 'warn.huge': 'Beyond typical scale — contact field engineering', |
| 'disclaimer': 'Estimates only. Validate with a POC before final sizing.', |
| 'unit.vcpu': 'vCPU', |
| 'unit.cores': 'cores', |
| 'network.label': 'Network', |
| 'network.10g': 'Network: 10Gbps Ethernet', |
| }; |
| |
| export function t(key: string): string { |
| return STRINGS[key] || key; |
| } |