smartData Protection & Archiving

Count before capacity

A retention store holding ninety billion call records is an indexing problem wearing a storage costume.

Telecom archives are not a few enormous files. They are an unimaginable number of very small ones, and that inversion decides almost every design choice that follows.

Aban Smart designs, supplies, integrates and supports archive software and WORM storage for record-retention workloads. We are not a mediation or billing vendor.

Most archive projects begin by asking how many terabytes. For a mobile or fixed-line operator that question is close to irrelevant, and answering it first leads to the wrong system. The defining property of call detail records and their extended cousins is cardinality. Each record is a few hundred bytes describing one event, and the network produces them continuously across every element, in quantities where the counting unit is billions per year. Capacity turns out to be modest. Object count, index size and per-record overhead turn out to be the constraints that break things.

Call detail record retention and lawful accessCall and data records from network elements pass through mediation into a retention window store. An auditable lawful-access path, shown in green, retrieves targeted records, and everything expires once the mandated retention window closes. The workload is defined by very high counts of very small records.CDR / xDR RETENTION PATHVoice switchesPacket coreIMS / VoLTERoaming partnersMediationnormalise formatsde-duplicatecorrelate into xDRsustained write rate,not burst — the streamnever stopsRetention windowstorebillions of small recordsindexed by subscriber,time and cellheld for the mandatedwindow — 12 monthsshown as an exampleLawful accesstargeted query bywarrant referenceevery access logged— auditable trailExpirypurged when thewindow closesHIGH-VOLUME, SMALL-RECORD INGEST≈ 2 bnrecords ingested per day≈ 200 Baverage record size≈ 400 GBper day — 146 TB per yearRecord count, not record size, defines the workload: index and metadata loaddominate, and retrieval must stay fast across the whole retention window.All figures above are illustrative examples, not verified customer measurements.
Conceptual telecom record retention flow. Call and data records from network elements pass through mediation into a retention window store, with an auditable lawful-access retrieval path and expiry once the mandated window closes. The record counts, record size, daily and yearly volumes and the twelve-month window are illustrative examples used to explain the pattern, not verified customer measurements or a statement of any specific regulatory requirement. Final topology depends on verified product compatibility.

Record count, not capacity, drives the index design.

CDR and xDR volume characteristics

A CDR is small, structured and highly repetitive. Fields are mostly fixed-width identifiers, timestamps and integers. Compression works well on them precisely because of that repetition, and columnar or delimited batch formats compress far better than the same records stored individually.

xDR is the broader family. Data records from packet gateways, IMS session records, SMS and messaging records, roaming records exchanged with other operators, and increasingly signalling and network-function event records. They differ in schema and in volume by orders of magnitude, but they share the shape: tiny, numerous, and needed later in ranges rather than one at a time.

Three consequences follow from that shape.

  • The read pattern is a range scan, not a random get. Nobody asks for one record by its own identifier. They ask for everything matching a subscriber identifier or a number across a date window.
  • The index is a first-class capacity item. It must be budgeted, sized and protected as deliberately as the payload, because it can approach the same order of magnitude.
  • Ingest never stops. There is no quiet window. Any design that assumes a maintenance pause for compaction or rebalancing will meet the network's opinion of that assumption.

A worked illustration of count against capacity

The following figures are invented for illustration. They are not a measurement from any operator and should be replaced with your own mediation output before anything is sized.

Assume a network emitting 250 million records per day at an average of 250 bytes per record, retained for five years.

  • Daily volume: 250,000,000 × 250 bytes = 62,500,000,000 bytes, roughly 62.5 GB per day
  • Annual volume: 62.5 GB × 365 = roughly 22.8 TB per year
  • Five-year volume: 22.8 TB × 5 = roughly 114 TB

114 TB is unremarkable. Now count the records instead.

  • Annual record count: 250,000,000 × 365 = 91.25 billion records per year
  • Five-year record count: 91.25 billion × 5 = 456.25 billion records

Allow a deliberately conservative 64 bytes of index entry per record to support subscriber and date-range lookup. 456,250,000,000 × 64 bytes is approximately 29 TB of index sitting alongside 114 TB of payload. The index is a quarter of the payload volume again, and unlike the payload it needs to be fast. Cheap deep storage does not help it.

Why object-per-record is the wrong design

Continue the illustration. Suppose each record were written as its own object. Object stores and filesystems carry a fixed cost per object for metadata, allocation and naming. Take 1 KB as an illustrative figure for that overhead.

456,250,000,000 objects × 1 KB is roughly 456 TB of overhead carrying 114 TB of payload. The bookkeeping is four times the data. Long before capacity became an issue, the namespace, the metadata database and the listing operations would have failed.

Batching is the fix, and the batch boundary is the important decision. Group one hour of one stream into a single archive object and, on the same figures, each object holds about 10.4 million records at roughly 2.6 GB, producing 8,760 objects per stream per year instead of 91.25 billion. That is a namespace an archive system can manage, migrate and verify.

The cost of batching is retrieval granularity. You now fetch a 2.6 GB object to answer a question about one subscriber, unless the index records byte offsets within the batch. Whether the batch interval should be an hour, fifteen minutes or a day is set by how quickly retrieval has to complete, not by storage preference.

Design choice Objects over five years Retrieval unit Practical limit
One object per record ~456 billion One record Namespace and metadata collapse
Hourly batch per stream ~43,800 ~2.6 GB batch Needs intra-batch offsets for fine lookup
Daily batch per stream ~1,825 ~62.5 GB batch Retrieval latency becomes the problem

From mediation output to the retention window store

Records arrive from network elements into mediation, which normalises, deduplicates and correlates them before billing consumes them. The retention copy should be taken from a defined point in that chain, and which point matters. Pre-mediation records are raw and complete but inconsistent in schema. Post-mediation records are clean but have already been filtered, and what was discarded is gone.

Write the retention copy immutably once the batch closes. If the copy can be amended after the fact, its evidential value drops sharply, and the reason for keeping it at all was evidential. Archive management software handles the placement, the media abstraction and the verification underneath, so mediation writes to a filesystem or S3 endpoint and does not need to know what the data eventually lands on.

Keep the schema with the data. A five-year-old batch is unreadable if the field definitions live only in a mediation configuration that has since been replaced twice. Store the schema version alongside each batch and treat schema evolution as an archive concern, not only an application one.

Lawful-access retrieval obligations

Operators receive properly authorised requests for records, and the storage design either supports answering them within the time allowed or it does not. This section describes engineering requirements, not legal ones. What any authority may request, and within what deadline, is a question for your own legal advisers and your regulatory affairs function.

Four engineering properties usually decide whether the retrieval works.

  1. Bounded latency. The answer must arrive within the window a request specifies. If the archive tier is offline media with a mount and seek time, that time is part of the answer, and it needs measuring rather than estimating.
  2. Selective retrieval. Restoring an entire month to find one subscriber is not a workable procedure. The index must resolve a query to specific batches, ideally to offsets inside them.
  3. Integrity you can attest to. Whoever produces the extract should be able to show that the batch it came from is bit-identical to what was written. That means checksums recorded at ingest and verified at retrieval.
  4. An audit trail of the retrieval itself. Who ran the query, under what authorisation reference, what was extracted and when. This record is often as sensitive as the data.

Access to the retrieval function should be separated from ordinary storage administration. The same separation-of-duty logic applies in government and banking and financial services environments, where a privileged administrator should not be able to search records unobserved.

Expiry that actually happens

At the end of the retention window, records should go. Over-retention creates discoverable data with no business reason to exist, and in a store of 456 billion records it also creates cost that compounds quietly.

Expiry against batched data is straightforward if the batch boundary aligns with the retention clock, and painful if it does not. An hourly batch expires as a unit. A batch containing records from mixed dates cannot expire cleanly without being rewritten, which defeats immutability. Align the batch to the clock at design time.

Two operational points are worth stating plainly. Immutable storage that enforces a retention period is designed to prevent early deletion, and that includes deletion you later decide you wanted. Second, the index must expire in step with the payload, or your search results will start returning references to objects that no longer exist.

We size, design and integrate the retention store and its index tier. We do not decide your retention periods, and no storage product makes an operator compliant with anything. Periods and their interpretation are a legal question for your advisers. See long-term data archiving for the underlying lifecycle model, browse the other industries we work in, or request an assessment with your record counts to hand.

Frequently asked questions

Because the cost drivers scale with count, not size. Index entries, per-object metadata, namespace operations and listing performance are all functions of how many records exist. As the illustration on this page shows, 114 TB of payload can imply hundreds of billions of records and tens of terabytes of index. Sizing on capacity alone produces a system that fits the data and cannot search it.

Turn your requirement into a defensible architecture

Share the workload, capacity, retention, access, and resilience requirements. Aban Smart will identify the next discovery inputs and the appropriate engagement path.