2010-03-24 3 views
5

주를 유지하는 1 차 키와 2 번째 열만있는 10,000 개의 행 테이블이 있습니다. 문제는 우리가이 상태를 미국의 3 개 물리적 위치 (약 2000 마일 떨어져 있음)에서 거의 실시간으로 또는 네트워크를 통해 가능한 한 빨리 복제해야한다는 것입니다. 3 개의 위치 중 어느 것도이 테이블의 주어진 행에 대한 상태를 업데이트 할 수 있습니다.이 상태는 거의 실시간으로 다른 2 개의 위치로 복제되어야합니다.가장 빠른 실시간 복제 기능을 갖춘 메모리 내장형 데이터베이스 솔루션

우리가하려는 것을 달성하는 데 도움이 될 수있는 공개 소스 또는 상업용 경량 메모리 내장 데이터베이스가 있습니까? 여기서는 디스크 지속성이 중요하지 않습니다.

답변

4

체크 아웃 Redis을 확인하십시오. Replication Howto은 다음과 같습니다.

또한 DB가 반드시 메모리에 있어야하는 것은 아니라고 결정하면 빠른 것이어야합니다. CouchDB을 고려할 수 있습니다. 그것은 본질적으로 순간적인 연속 복제를 수행 할 수 있으며 모든 노드는 마스터입니다. 잘 정의 된 충돌 탐지 및 해결 메커니즘을 가지고 있습니다. This blog post은 최신의 최고의 CouchDB 복제 기능을 소개합니다.

+1

그는 databae가 메모리에 적합하다면 리눅스의 tmpfs와 같은 메모리 내장 파일 시스템에서 CouchDB (또는 MongoDB)를 사용할 수 있습니다 ... – Filipe

1

내장 된 복제 지원은 없지만 triggers에는 메모리 내 SQLite 데이터베이스를 사용할 수 있습니다. 트리거 내에서 custom function을 사용하여 변경 사항을 다른 사이트에 알립니다.

1

Altibase을 확인하시기 바랍니다. 그들은 세계에서 가장 빠른 메모리 데이터베이스를 가지고 있다고 말했다. 그들은 대부분의 메모리 내 DBMS보다 5 ~ 10 배 더 빠르며 사이트에서도 무료 평가판을 사용한다고합니다.

0

Websphere Server에서 6000 개가 넘는 행이 10000 번 이상있는 복합 SQL을 실행합니다. 총 그물 실행 시간은 같다 :

  Derby (In Memory) Oracle(standard DB) SQLite (In Memory) HSQLDb (In Memory) 
      nano sec. second nano sec. second nano sec. second nano sec. second 
1. try 58000000 0,058 6149976000 6,1 1141988000 1,14 999403000 1,00 
2. try 78560000 0,078 5268477000 5,2 1182621000 1,18 1338705000 1,34 
3. try 58849000 0,058 5200898000 5,2 1133003000 1,13 2239527000 2,24 
4. try 60901000 0,06 5435216000 5,4 1205442000 1,21 1370711000 1,37 
5. try 58798000 0,058 6501929000 6,5 1186734000 1,19 1001800000 1,00 
6. try 62928000 0,062 5913053000 5,9 1224470000 1,22 1066736000 1,07 
7. try 71171000 0,071 5111207000 5,1 1200769000 1,20 1304524000 1,30 
8. try 66913000 0,066 5517989000 5,5 1173495000 1,17 1299230000 1,30 
9. try 58777000 0,058 7209555000 7,2 1179013000 1,18 1031795000 1,03 
10. try 75299000 0,075 5356514000 5,3 1182715000 1,18 1368461000 1,37 
average 65019600 0,064 5766481400 5,7 1181025000 1,18 1302089200 1,30 

내가 분명히 더비, SQLite는과 HSQLDB를 비교합니다. 오라클은 메모리 DB가 아닙니다. 하지만 메모리 db와 normal db 사이의 속도 차이를 보여주기 때문에 결과를 테이블에 넣었습니다.

추신 : SQLite 및 HSQLDB 결과가 안정적이지 않습니다. 그래서 나는 100 번의 시도에서 10 개의 안정된 결과를 선택한다. 때로는 HSQLDB가 SQLite보다 빠릅니다. 나는 그들의 성능이 같다고 생각한다.

관련 문제