32 개의 서버에서 실행되는 대형 데이터베이스 응용 프로그램을 다시 작성해야합니다. 하드웨어는 최신이며, 각 시스템에는 두 개의 쿼드 코어 Xeon과 32GB RAM이 있습니다.대형 웹 응용 프로그램을 위해 어떤 데이터베이스 전략을 선택해야합니까?
데이터베이스는 멀티 테넌트 (multi-tenant)이며 각 고객은 각각 5 ~ 10GByte 정도의 파일을 가지고 있습니다. 이 하드웨어에서 약 50 개의 데이터베이스를 실행합니다. 응용 프로그램은 웹에 열려 있으므로 컨트롤에 이 없습니다. 정말 복잡한 쿼리가 없으므로 더 나은 솔루션이 있으면 SQL이 필요하지 않습니다.
데이터베이스는 매일 자정에 FTP를 통해 업데이트됩니다. 데이터베이스는 읽기 전용입니다. C#이 내가 가장 좋아하는 언어이고 ASP.NET MVC를 사용하고 싶습니다.
나는 다음과 같은 옵션에 대해 생각 : SQL 서버 2012를 실행
를 사용하여 두 개의 큰 SQL 서버 데이터로 (32 개) 서버를 제공 할 수 있습니다. REST 서비스를 제공하는 IIS 호스팅을 실행하는 32 대의 서버에서.
데이터베이스를 비정규 화하고 각 웹 서버에서 Redis를 사용하십시오. booksleeve를 Redis 클라이언트로 사용하십시오.
SQL 서버없이 하둡
사용 하둡과
를 사용하여 SQL 서버 2012 함께 SQL Server 및 레디 스의 조합을 사용하여 읽기위한 가장 좋은 방법은 무엇
- 유일한 데이터베이스, 유지 관리를 잃지 않고 최고의 성능을 얻을 수 있습니까? 이러한 시나리오에서 Map-Reduce는 전혀 의미가 있습니까?
다시 작성하는 이유는 ISAM 기술로 C++로 작성된 오래된 앱이 너무 느리고 인터페이스가 구식이며 웹 사이트에서 특히 ajax를 사용할 때 좋지 않습니다.
이 앱은 많은 테이블이있는 관계형 데이터 모델을 사용하지만 모든 쿼리를 수행 할 수있는 하나의 액셀러레이터 테이블을 작성할 수 있으며 간단한 키 조회로 다른 테이블의 다른 모든 정보를 작성할 수 있습니다.
현재 아키텍처, 현재 사용 패턴, 현재 병목 현상 ... 또는이 "대형 데이터베이스 응용 프로그램"을 처음부터 다시 작성해야하는 이유에 대해 유용한 정보를 알려주지 않았습니다. 한 가지 질문을 해봅시다. 사용자가 현재 저장하거나 사용하고있는 SQL Server와 마찬가지로 쉽게 Hadoop을 사용하여 수행 할 수없는 것이 있습니까? 테이블이 없거나, 관계가없고, SQL 쿼리가 없습니까? – paulsm4
죄송합니다. 나는이 질문을 최대한 일반화하려고 노력했습니다 :-) – NickD