개인 재정 ACID 대 BASE 데이터 저장소 - 더미

ACID 대 BASE 데이터 저장소 - 더미

비디오: The SCP Foundation — Down the Rabbit Hole 2024

비디오: The SCP Foundation — Down the Rabbit Hole 2024
Anonim

관계형 데이터베이스 시스템의 하나의 특징은 ACID 준수로 알려진 것입니다. 당신이 짐작 했겠지만, ACID는 머리 글자 어로, 개별 데이터베이스 트랜잭션의 특성을 설명하기위한 개별 문자는이 목록에 설명 된대로 확장 될 수 있습니다.

  • Atomicity: 데이터베이스 트랜잭션은 완전히 완료되어야합니다 성공하거나 완전히 실패합니다. 부분적인 성공은 허용되지 않습니다.

  • 일관성: 데이터베이스 트랜잭션 중에 RDBMS는 하나의 유효한 상태에서 다른 상태로 진행합니다. 국가는 결코 무효가 아닙니다.

  • 격리: 클라이언트의 데이터베이스 트랜잭션은 RDBMS와 트랜잭션을 시도하는 다른 클라이언트와 분리되어 수행되어야합니다.

  • 내구성: 트랜잭션의 일부인 데이터 작업은 비 휘발성 저장소 (하드 디스크와 같이 전원이 공급되지 않아도 저장된 정보를 검색 할 수있는 컴퓨터 메모리)에 반영되어야하며 트랜잭션이 성공적으로 완료됩니다. 트랜잭션 오류로 인해 데이터가 부분적으로 커밋 된 상태가 될 수 없습니다.

온라인 트랜잭션 처리와 같이 RDBMS의 특정 사용 사례는 시스템이 제대로 작동하기 위해 클라이언트와 RDBMS 간의 ACID 호환 트랜잭션에 의존합니다. ACID를 준수하는 거래의 가장 좋은 예는 한 은행 계좌에서 다른 계좌로 자금을 이체하는 것입니다.

이것은 두 개의 데이터베이스 트랜잭션으로 나뉘어집니다. 여기에서는 원래 계정에 인출이 표시되고 대상 계정에 입금이 표시됩니다. 분명히,이 두 거래는 유효하기 위해 함께 묶여 져야한다. 그래서 어느 쪽이라도 실패하면, 양쪽 작업이 모두 유효하게 유지되도록 전체 작동이 실패해야한다.

반영하기 때문에 Hadoop 방식의 선례가 있습니다. NoSQL 데이터 저장소의 핵심 개념 중 하나는 모든 애플리케이션이 진정으로 ACID 준수 트랜잭션을 필요로하지 않는다는 것입니다. 특정 ACID 속성을 완화하고 관계형 모델에서 벗어나면 NoSQL 데이터 저장소의 일부가 틈새 애플리케이션에 대규모 확장 성과 성능을 구현할 수있는 가능성이 열렸습니다. ACID는 신뢰할 수있는 트랜잭션 처리에 필요한 주요 특성을 정의하지만 NoSQL 세계는 유연성과 확장 성을 위해 서로 다른 특성을 요구합니다.이러한 반대되는 특성은 BASE: B

asically

A

  • vailable: 로 독창적으로 캡쳐됩니다. 시스템은 모든 사용자가 쿼리 할 수 ​​있도록 보장됩니다. S 현재 상태: 다음 글 머리표에서 설명하는 것처럼 최종 일관성 모델로 인해 시스템에 저장된 값이 변경 될 수 있습니다. 일관되게:

  • 데이터가 시스템에 추가됨에 따라 시스템의 상태는 점차 모든 노드에 복제됩니다. 예를 들어 Hadoop에서 HDFS에 파일을 쓰면 원본 데이터 블록이 기록 된 후 데이터 블록의 복제본이 다른 데이터 노드에 만들어집니다. 블록이 복제되기 전에 짧은 기간 동안 파일 시스템의 상태가 일관성이 없습니다. 대부분의 NoSQL 데이터 저장소가 ACID 특성을 완전히 포기하지는 않기 때문에 BASE라는 약어는 다소 인위적입니다. 이름에서 알 수있는 극 정반 개념은 아닙니다. 또한 Soft State와 Consistent 특성은 동일한 것으로 나타 났지만 일관성을 완화하여 시스템을 수평 적으로 확장 (많은 노드)하고 가용성을 보장 할 수 있다는 점이 중요합니다. 설계자가 시스템에서 제공하고자하는 세 가지 종류의 보증을 나타내는 CAP 정리를 언급하지 않고 NoSQL에 대한 논의는 완료되지 않습니다.

  • 일관성: ACID의 C와 유사하게, 시스템은 언제든지 동일한 데이터보기를 갖게됩니다. 가용성:

시스템은 항상 요청에 응답합니다. 파티션 공차: 시스템 노드간에 네트워크 문제가 발생하면 시스템은 온라인 상태를 유지합니다.

CAP 이론에 따르면 분산 네트워크 시스템에서 건축가는이 세 가지 보증 중 두 가지를 선택해야합니다. 즉, 세 가지를 모두 약속 할 수는 없습니다. 그 결과 세 가지 가능성이 있습니다:

  • 전통적인 관계 기술을 사용하는 시스템 은 일반적으로 파티션 내결함성이 아니므로 일관성과 가용성을 보장 할 수 있습니다. 즉, 이러한 전통적인 관계형 기술 시스템의 일부가 오프라인이면 전체 시스템이 오프라인입니다. 파티션 내구성과 가용성이 가장 중요한 시스템 인

  • 는 파티션의 양쪽에서 업데이트 (일관성을 파괴하는)를 만들 수 있기 때문에 일관성을 보장 할 수 없습니다. 키 - 값 저장소 인 Dynamo 및 CouchDB와 열 패밀리 저장소 인 Cassandra는 Partial tolerant / availability (PA) 시스템의 보편적 인 예입니다. 파티션 내구성과 일관성이 가장 중요한 시스템 인 는 파티션 된 상태가 해결 될 때까지 시스템이 오류를 리턴하기 때문에 가용성을 보장 할 수 없습니다.

  • Hadoop 기반 데이터 저장소는 CP 시스템으로 간주됩니다 (일관성있는

P

  • 관용도). 많은 슬레이브 노드에 중복 된 데이터가 저장되어 있기 때문에 Hadoop 클러스터의 많은 부분 (파티션)에 대한 장애를 용인 할 수 있습니다. Hadoop은 클러스터에 저장된 데이터의 일관된 단일보기를 유지 관리하는 중앙 메타 데이터 저장소 (NameNode)가 있으므로 일관성있는 것으로 간주됩니다.

ACID 대 BASE 데이터 저장소 - 더미

편집자의 선택

JavaScript에서 HTML 양식 요소에 액세스하는 방법 - 다른 HTML 요소와 마찬가지로

JavaScript에서 HTML 양식 요소에 액세스하는 방법 - 다른 HTML 요소와 마찬가지로

자바 스크립트에서 HTML5 요소와 직접 상호 작용할 수 있습니다. 트릭은 선택한 요소가 지원해야하는 브라우저 및 플랫폼에서 작동하는지 확인하는 것입니다. 이 예제에서는 및 태그를 다음과 같은 솔루션의 일부로 사용하는 방법을 보여줍니다.

CSS 값 정의에 대한 빠른 가이드 구문 - 인형

CSS 값 정의에 대한 빠른 가이드 구문 - 인형

W3C (World Wide Web Consortium)에서 모든 CSS 속성의 구문과 가능한 값을 정의합니다. 정의를 가능한 한 정확하게 만들기 위해 W3C는 CSS 값 정의 구문이라는 공식 시스템을 사용합니다. 정의 구문은 가능한 값을 매우 정확하게 정의하지만 CSS 값 정의 구문을 읽는 중 ...

JavaScript로 동적 HTML 요소를 작성하는 방법 - 더미

JavaScript로 동적 HTML 요소를 작성하는 방법 - 더미

모든 페이지에 대한 특수 효과는 페이지에 동적 HTML 변경 기능을 제공하는 것입니다. 예를 들어 다음 예제와 같이 선택한 요소에 특수 효과를 만들 수 있습니다. function ChangeStyles (event) {// 요소에 대한 참조를 얻습니다. var ThisElement ...

편집자의 선택

Excel 2013 통합 문서의 변경 내용 수락 또는 거부 방법 - 변경 내용 추적을 설정하면 더미

Excel 2013 통합 문서의 변경 내용 수락 또는 거부 방법 - 변경 내용 추적을 설정하면 더미

Excel 2013 통합 문서의 경우 리본의 검토 탭에있는 변경 내용 추적 명령 단추의 드롭 다운 메뉴에서 Alt / RGC를 눌러 변경 내용 적용 / 거부 옵션을 선택하여 수락 또는 거부 할 변경 내용을 결정할 수 있습니다. 이렇게하면 Excel이 강조 표시된 모든 변경 내용을 검토합니다 ...

Excel에서 셀에 설명을 추가하는 방법 2016 - 문자

Excel에서 셀에 설명을 추가하는 방법 2016 - 문자

Excel 2016 워크 시트의 특정 셀에 주석을 달 수 있습니다. 댓글은 스티커 메모의 전자 팝업 버전과 유사합니다. 셀에 주석을 추가하려면 다음과 같이하십시오. 셀 포인터를 이동하거나 주석을 추가 할 셀을 클릭하십시오. 새 주석을 클릭하십시오.

Excel 피벗 테이블에 계산 된 필드를 추가하는 방법 - 더미

Excel 피벗 테이블에 계산 된 필드를 추가하는 방법 - 더미

피벗 테이블 내부의 값을 계산합니다. 계산 된 필드 및 항목을 표에 추가 할 수 있습니다. 계산 된 필드를 추가하면 새로운 행이나 열을 피벗 테이블에 삽입 한 다음 수식을 사용하여 새 행이나 열을 채울 수 있습니다. 예를 들어 다음과 같이 나타납니다.

편집자의 선택

포토샵 CS6에서 히스토리 기능으로 채우기를 사용하는 방법 - 더미

포토샵 CS6에서 히스토리 기능으로 채우기를 사용하는 방법 - 더미

채우기 Adobe Photoshop의 기능 Creative Suite 6는 선택을 원할 때 유용합니다. 특정 상태로 바꿀 영역을 쉽게 선택할 수 있으면 기록으로 채우기 기능을 사용할 수 있습니다. 특정 이미지에서 하늘이 마음에 들지 않는다고 가정 해보십시오. 선택한 항목 ...

Photoshop CS6에서 패싯 필터를 사용하는 방법 -

Photoshop CS6에서 패싯 필터를 사용하는 방법 -

Photoshop CS6의 이미지는 먼지와 스크래치를 줄이거 나 날카로운 모서리를 부드럽게하는 것입니다. 패싯 필터는 포스터 라이징 효과를 사용하여 이미지를 분할합니다. Photoshop CS6에서 이미지를 흐리게 처리하려는 한 가지 이유는 먼지 및 스크래치를 줄이거 나 밝기를 비슷하게하는 픽셀 블록을 모아서 기하학적 모양을 사용하여 단일 값으로 변환하기 때문입니다.

Photoshop CS6에서 손 도구 사용 방법 - 인형

Photoshop CS6에서 손 도구 사용 방법 - 인형

Photoshop CS6 손 도구는 이미지 문서에서 빠르게 이동하고 스크롤 막대와 유사하게 작업하여 작업을보다 신속하게 수행 할 수 있습니다. 손 도구는 손 도구를 클릭 할 필요가 거의 없기 때문에 실제 도구보다 기능이 더 많습니다. 간단히 ...