views:

99

answers:

1

Service provider frameworks generally there have two systems viz. OSS(Operational Support System) and BSS (Business Support System). Theses systems are separated by deployment constraint, in most of the cases one has one bss deployed per 'n' number of oss sites.

While designing any such framework is it advisable to have database separation or is it recommended to have one schema with database replication solution which shall keep all the databases at various sites in sync?

A: 

If your workload is the same for the two layers then I would keep them the same since it'll save on a lot of labor to create and especially maintain two different but similar schemas.

However, if your workloads are different then go with a different schema. For example, if your app is very event-oriented then the following is usually true:

  • Your operational layer (OSS) focuses on fast real-time streaming load performance and fast but fairly surgical queries. Data retention is usually short.
  • Your analytical layer (BSS) provides your reporting and won't need the fast low-latency loading or the fast surgical queries - but will need to handle large complex queries running against very long periods of time. Data retention is usually long.

The implications of the above are that the operational schema is designed for very simple inserts - with a single wide event table. The business or analytical schema is designed for handling complex queries and a lot of data - so that wide event row is remodeled into a typical dimensional model (or star schema) - with the event as a fact table that includes little but keys to the dimensions. Ideally, these are different models with heavy translation between them.

KenFar