marstone
marstone

Reputation: 704

Best practice for dotNET project with mssql database replication

I'm working on a web project using C#, entity framework 4, mssql. while the data grows bigger (not very big, but hard for single server), we decided to change something in the data access layer to enhance the throughput and performance.

Because change the database to a nosql one is costly for refactor, we'd plan use database replication, which i'v never used it before.

we are not restricted to mssql server.

ps:we don't have many tables, but there are some social data that would be big enough and hard to separate table/database.

Upvotes: 0

Views: 680

Answers (1)

Alexey Raga
Alexey Raga

Reputation: 7525

You don't need NoSQL, you need to get rid of "The Database Syndrome" :)

It means that instead of One Big Database you can have a set of smaller ones. I am pretty much sure that your system has a number of different concerns. For example: billing, shipping, etc.

Why not separate these concerns into different databases? So your "billing" subsystem will have its own database, "shipping" - another, whatever you have as much as you have.

It gets now much easier to scale: you can simply put them on a separate server each if you need, or give an important one a dedicated hardware and have the rest together, etc.

It will also be much easier to manage: you can separately change things in one context without impacting others.

This is what is a "best practice" and what is a part of SOA style ;)

Another (less preferable in my eyes) is what is called "horizontal sharding". Say, your system operates with "projects" and you can simply put each "project" (and all its data) into separate databases. It would also work, but does't fit everything and has its own tricks.

Upvotes: 1

Related Questions