VaultrisPrivileged Access & Traffic Intelligence
Vaultris

Products

Bastion HostGateway, vault, session recording Intelligent TrafficCorridor monitoring, LPR & BOLO

Industries

Military & Defense Police & Law Enforcement Fire & Emergency Services All industries

Resources

Bastion host guide Compliance & evidence Field notes

Company

About Vaultris Partner programme Request a Demo

Hardware & Sizing

Sizing an LPR corridor network, from 100 cameras to 10,000.

The compute requirement is modest and predictable. The image storage is not. Move the slider to your camera count and the specification follows — then read the reference architecture we would actually build at national scale.

100 LPR cameras
Retention
Plate reads / day500 K5,000 per camera
Average requests / s6Sustained, over 24 hours
Peak requests / s173× the daily average
vCPU required8Application tier, aggregate
Memory32 GBAggregate across the tier
Database100 GBDedicated NVMe
Image data4.4 TBAt 90 days — stored data, not disk
Image tier provisioned≈ 6 TB1.35× the data — parity, snapshots, rebuild
Network250 MbpsNext standard link above 2 Mbps/camera
Application cluster3 × 4 vCPU2 working + 1 spare · 12 vCPU installed
Ingestion design target20 – 30/sAbove peak, for surge and replay
Image growth48.6 GBPer day, before any retention

This is a published tier — compute, database and network match the sizing table row below exactly.

The slider needs JavaScript. The figures shown are for 100 cameras at 90-day retention; the full per-tier table is immediately below.

The sizing sheet

Requirement by deployment tier

Every row assumes the same workload profile per camera. Find your camera count, then read across — or use the slider above for a count that is not listed.

CamerasReads / dayPeak req/s vCPURAMDB disk Images 30 dImages 90 dNetwork
100500 K17832 GB100 GB1.5 TB4.4 TB250 Mbps
2501.25 M431664 GB250 GB3.6 TB10.9 TB500 Mbps
5002.5 M872496 GB500 GB7.3 TB21.9 TB1 Gbps
1,0005 M17448192 GB1 TB14.6 TB43.8 TB2 Gbps
5,00025 M868160512 GB4 TB73 TB219 TB10 Gbps
10,00050 M1,736320896 GB8 TB146 TB438 TB25 Gbps

How to read it

Four constants hold across every row, which is what lets the slider derive a tier the sheet does not list:

  • 5,000 reads per camera per day. A 750-camera deployment is 3.75 M reads/day.
  • Peak is 3× the daily average. 50 M reads/day is 579/s averaged, and the sheet's 1,736/s peak is exactly three times that.
  • Roughly 95 KiB per stored image. That figure reproduces both the 30-day and the 90-day storage columns at every tier.
  • About 2 Mbps per camera, rounded up to the next standard link speed. That reproduces every network figure in the table, including the 25 Gbps at the top tier.
Images drive the infrastructure, not CPU. At 10,000 cameras the compute requirement fits in ten commodity servers. The 90-day image retention is 438 TB of data before any resilience overhead. Storage is where the money and the risk are.

Reference architecture

What we would build at 10,000 cameras.

Cameras aggregate regionally, cross a 25 GbE WAN, and land on a 100 GbE core. Ingestion, API and event handling scale independently of the database and the image tier.

EDGE 10,000 LPR cameras Recognition at the camera · plate, colour, type and model attributes 50 M reads/day · 579/s average AGGREGATION Regional site Local buffer · store-and-forward on WAN loss Regional site Local buffer · store-and-forward on WAN loss 25 GbE WAN CORE 100 GbE core fabric Redundant paths · dual 25 GbE server uplinks 4× headroom over the 25 Gbps requirement APPLICATION LPR app cluster 10 × 40 vCPU · N+2 400 vCPU installed Event queue Clustered · replicated · replayable 2,000–3,000 events/s design API cluster Redundant load-balancer pair Search · BOLO · exports DATA Database cluster 8 TB dedicated NVMe · primary + replicas Reads, matches, audit trail — latency-critical Image storage cluster ≈ 200 TB provisioned (30 d) · ≈ 600 TB (90 d) Separate cluster · raw capacity above usable SIZED FOR 10,000 CAMERAS · 50 M READS/DAY · 320 vCPU REQUIRED, 400 INSTALLED EDGE 10,000 LPR cameras 50 M reads/day · 579/s average AGGREGATION Regional sites Local buffer · store-and-forward 25 GbE WAN CORE 100 GbE core fabric 4× headroom · redundant paths APPLICATION LPR app cluster 10 × 40 vCPU Event queue 3,000 events/s API cluster Search · BOLO DATA Database cluster 8 TB dedicated NVMe · replicas Image storage cluster ≈ 200 TB provisioned (30 d) ≈ 600 TB provisioned (90 d) SIZED FOR 10,000 CAMERAS 320 vCPU REQUIRED · 400 INSTALLED
Compute, event handling and API serving scale horizontally on the same 100 GbE core; the database and the image tier are deliberately separate, because they grow at very different rates.

Compute

320 vCPU is a cluster question, not a server question.

The useful question is not "which server has 320 vCPU" but "how is 320 vCPU distributed so the loss of a node is uneventful".

INSTALLED CLUSTER — 10 × 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU SPARE 40 vCPU SPARE 400 vCPU installed against a 320 vCPU requirement N+2 — lose two nodes, keep the requirement Patching and a failure can coincide without a capacity conversation. INSTALLED CLUSTER — 10 × 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU 40 vCPU SPARE 40 vCPU SPARE 400 vCPU installed against a 320 vCPU requirement N+2 — lose two nodes, keep the requirement
Eight nodes carry the stated requirement. Ten are installed, so two can be lost — to failure or to patching — without dropping below it.

Per server

  • CPU40 physical / logical cores
  • Memory128 – 192 GB
  • Local storageEnterprise NVMe
  • NetworkDual 25 GbE
  • PowerDual supplies
  • PathsRedundant network paths
Aggregate memory ≈ 1.25 – 1.5 TB, comfortably above the sheet's 896 GB. Memory is the cheapest insurance in this design; do not size it to the minimum.
The central workload is reads and images, not video. Recognition happens at the camera, so the platform ingests plate reads and their associated stills rather than decoding streams. That makes the application tier CPU, memory and I/O bound, and it is why the vCPU figure stays modest while the storage figure does not.

Ingestion

Design for 3,000 events/s, not 1,736.

50 million reads a day is 579 per second averaged, and the sheet's peak is 1,736 per second. Building the ingestion layer to exactly the stated peak leaves nothing for a surge, a backlog replay after a link outage, or a regional site reconnecting with buffered reads.

We size the ingestion path and the event queue for 2,000 – 3,000 events per second, which absorbs those cases without re-architecting. The slider applies the same margin at every tier.

  • Clustered message queue so a broker failure does not drop reads.
  • Replay from the queue, so a slow consumer creates a backlog rather than data loss.
  • Regional buffering at the edge, so a WAN outage defers reads instead of discarding them.

Network

A 100 GbE core against a 25 Gbps requirement.

The sheet calls for 25 Gbps at 10,000 cameras. We would not build a 25 Gbps core to carry a 25 Gbps requirement — a network running at 90–100% of its rated capacity has no room for a rebuild, a bulk export, or a retention migration happening at the same time as normal traffic.

  • Core100 GbE
  • Server uplinksDual 25 GbE
  • Regional aggregation25 GbE
  • Sheet requirement25 Gbps
  • Headroom at the core≈ 4×

Storage

This is the part that decides the budget.

Database and image storage have almost nothing in common except that both are called storage. We separate them, and we never provision a 438 TB requirement with 438 TB of disk.

DATABASE — TRANSACTIONAL 8 TB dedicated NVMe Reads, matches, audit trail. Latency-critical, comparatively tiny. IMAGE STORAGE — BULK, SEPARATE CLUSTER 146 TB data 30-day retention 438 TB data 90-day retention ≈ 200 TB / 600 TB provisioned — 1.35× the data Erasure coding or RAID, filesystem overhead, snapshot reserve, rebuild space and growth all sit on top of the data figure. Provisioning raw capacity equal to the requirement is how a storage cluster ends up full and unable to rebuild. ≈ 95 KiB per stored image · 50 M images/day · retention is the single biggest cost lever Halving retention roughly halves the image tier. It is worth deciding deliberately rather than defaulting to 90 days. DATABASE — TRANSACTIONAL 8 TB dedicated NVMe Reads, matches, audit trail — latency-critical IMAGE STORAGE — BULK, SEPARATE CLUSTER 146 TB data 30-day retention 438 TB data 90-day retention ≈ 200 TB / 600 TB provisioned 1.35× the data — parity, snapshots, rebuild ≈ 95 KiB per stored image 50 M images/day at 10,000 cameras Retention is the single biggest cost lever. Halving it roughly halves the image tier — worth deciding deliberately rather than defaulting to 90 days.
The database is small and fast; the image tier is enormous and sequential. Sizing them as one number is the most common and most expensive mistake at this scale.

Retention

Retention is a legal decision with a hardware bill attached.

Nothing else on this page moves the storage figure as far, and in most jurisdictions the number is not yours to choose freely. Read it off the statute and the records schedule first, then size the cluster to it.

Four classes of data, four different rules

The most common and most expensive mistake is applying a single retention period to “LPR data” as though it were one thing. It is four things, and only the first is contentious.

01

Non-hit reads

Plates that matched nothing — upwards of 99% of the volume, and the whole of the privacy debate. This is what a statutory limit governs, and what the calculator above sizes.

02

Hit and BOLO matches

A plate that matched a watchlist is investigative product, not bulk collection. It belongs on the agency’s existing evidence and case records schedule, which is usually measured in years.

03

Reads pulled into a case

Exported to the case file under a legal hold, so the purge cannot reach them. If a retention job can delete evidence, the problem is no longer privacy — it is spoliation.

04

Audit logs

Who searched, when, and under what authority. Retain these longer than the reads themselves. If misuse is alleged in month six and the accountability record expired with the data, nothing can be established either way.

Alerting needs almost no retention at all. A watchlist match happens at the moment of the read. Long retention serves only retrospective investigation — so the retention argument is really an argument about how far back a search should reach, not about whether the system works.

What the states require

Verify every figure against the current statute before you rely on it. This table is a compiled orientation aid, not legal advice and not a compliance reference. State LPR statutes are amended frequently, several of these were amended in the last few years, and the citation is given on every row so the text itself can be checked. Compiled August 2026.
JurisdictionLimit on non-hit readsCitation
New HampshireEffectively immediate — minutesN.H. Rev. Stat. § 261:75-b
Maine21 days29-A M.R.S. § 2117-A
Minnesota60 daysMinn. Stat. § 13.824
Montana90 daysMont. Code Ann. § 46-5-118
North Carolina90 days (state agency systems)N.C.G.S. § 20-183.30 et seq.
Tennessee90 daysTenn. Code Ann. § 55-10-302
Arkansas150 daysArk. Code Ann. § 12-12-1801 et seq.
Nebraska180 daysNeb. Rev. Stat. § 60-3,222 et seq.
Utah9 monthsUtah Code § 41-6a-2003
Maryland1 yearMd. Code, Pub. Safety § 3-509
Vermont18 months23 V.S.A. § 1607
Georgia30 monthsO.C.G.A. § 35-1-22
Florida3 yearsFla. Stat. § 316.0778
CaliforniaNo statutory cap — but a published usage and privacy policy must state oneCal. Civ. Code § 1798.90.5 et seq. (SB 34)
Most other statesNo general statutory cap — set by agency policy and the records retention schedule

The spread is the point: the same system, lawfully operated, holds non-hit reads for minutes in one state and three years in another. A platform sold across jurisdictions cannot have one hard-coded retention period, and a buyer comparing quotes should establish which number the quote was sized against.

Outside the United States

  • United KingdomNational ANPR Data Centre: 1 year, with access to anything older than 90 days requiring elevated authorisation
  • European UnionNo fixed period — Law Enforcement Directive 2016/680 requires a documented, justified limit and periodic review
  • CanadaProvincial privacy regulators have pushed toward prompt deletion of non-hit reads
The UK two-tier model is the one worth copying. Keep a longer tail, but gate the older portion behind a higher approval. It preserves the cold-case capability without leaving a year of everyone’s movements openly searchable day to day — and it is straightforward to enforce at the access layer rather than at the storage layer.

What each period costs at 10,000 cameras

At 50 million reads a day the image tier grows by 4.9 TB every day. Retention multiplies that, close to linearly.

RetentionImage dataProvisioned at 1.35×Where it applies
30 days146 TB≈ 200 TBCommon agency policy default
90 days438 TB≈ 600 TBMontana, North Carolina, Tennessee
180 days876 TB≈ 1.2 PBNebraska
1 year1.78 PB≈ 2.4 PBMaryland; UK national tier
18 months2.66 PB≈ 3.6 PBVermont
30 months4.44 PB≈ 6 PBGeorgia
3 years5.33 PB≈ 7.2 PBFlorida
Going from 90 days to a year roughly quadruples the image tier. That is the single largest lever on this page — larger than camera count, server count or network design — and unlike those, it is usually decided by someone who never sees the storage quotation.

Keep tolling separate

Where the same corridor carries both a tolling function and a public-safety function, the two datasets should not be one dataset. Toll transaction plates belong to the billing and dispute window — typically 30 to 90 days after settlement — in a separate store with separate access control. Merging them is how a revenue system quietly becomes a surveillance system that nobody approved, and it is the version of this that ends up in front of an oversight committee.

Engineering and policy guidance, not legal advice. The binding answer is the statute where the system is deployed, the agency’s own records retention schedule, and any conditions attached to federal grant funding. Where reads are held as criminal intelligence rather than as bulk collection, 28 CFR Part 23 applies as well — and non-hit reads generally do not meet its reasonable-suspicion standard for retention.

Resilience

What a national deployment carries beyond the sizing sheet.

01

Load balancing

A redundant pair in front of the API cluster, so a balancer is never a single point of failure.

02

Event processing

A clustered message queue with replication, sized for burst rather than for the average.

03

Database

Primary with replicas and a tested failover path — not a documented one, a rehearsed one.

04

Backup

Separate storage and, preferably, a separate site. A backup on the cluster it protects is not a backup.

05

Disaster recovery

A second location, with the recovery objective agreed in writing before the build, not after an outage.

06

Compute headroom

N+2 at the application tier, so patching and a node failure can coincide without a capacity conversation.

Camera support

Supported models, by integration tier.

Tiers describe integration status, not camera quality. A Tier 3 device may be an excellent camera that we have simply not yet validated against this platform.

TierStatusModels
Tier 1 Production Hikvision iDS-2CD7A46G0/P-IZHS
YMHK NC612-VB432-LDR
Tier 2 Existing receiver / integration Hikvision iDS-TCE900-A
Hikvision iDS-TCM403-BI
Hikvision iDS-2CD7A26G0/P-IZHS
Tier 3 Integration validation required Axis P1465-LE-3
Dahua ITC415-PW
Tier 4 Development required Genetec AutoVu SharpV
Because recognition runs at the camera, the model you deploy determines read quality far more than the central hardware does. Tier 1 devices are the ones we would specify for a new build.

Assumptions behind these figures

Sizing is only meaningful with its assumptions attached. These are ours, and they are what the slider computes from:

  • 5,000 reads per camera per day, uniform across tiers. A corridor busier than that scales the whole row proportionally.
  • Peak at 3× the daily average. A network with a sharper commuter profile should be sized on its measured peak, not this multiple.
  • ≈ 95 KiB per stored image. Higher-resolution capture or a second overview image per read changes the storage tier directly.
  • ≈ 2 Mbps per camera, rounded up to the next standard link speed rather than to the exact figure.
  • Recognition at the camera. Centrally decoding video is a different architecture with different — and much larger — compute requirements.
  • Retention as selected in the calculator. Retention is a legal and policy decision with a direct, near-linear cost consequence — see the retention comparison.
  • Between published tiers, vCPU, memory and database follow the curve the sheet describes — the per-camera requirement falls as the deployment grows. Reads, peak, storage and network are exact at every point on the slider.
These are planning figures, not a quotation. A production design should be validated against your measured read volumes, your retention policy, and your resilience requirements before procurement.

Next step

Bring your camera count and your retention policy.

We will size the cluster, the network and the storage tier against your corridor rather than against a table.