HBase는 해당 Memstore에서 제자리 업데이트를 수행합니까? 같은 rowkey에 대해 여러 버전의 값이있는 경우 HBase memstore가 이전 값을 삭제하고 새 값으로 바꾸겠습니까?HBase 업데이트의 Memstore는 어떻게 기록됩니까?
답변
memstore는 HFile과 마찬가지로 업데이트를 보관하지만 테이블의 구성에 따라 디스크에 기록합니다 (예 : 테이블에 행 하나만 보유하도록 설정 한 경우 최신 정보 만 기록됨). 디스크에).
memstore이 here
없음을 작동하는 방법의 좋은 설명이있다, 그것은 &이 기존 레코드를 대체 삭제되지 않습니다. memstore에 새로운 키 값 (레코드 데이터)을 추가합니다. 첫 번째 이유 : 둘 이상의 셀 (열) 값 버전을 유지하도록 구성되었을 수 있습니다. 그러나 memstore에 보관할 수있는 것보다 많은 버전의 셀이 있어도 덮어 쓰지 않고 (또는 가장 오래된 것을 제거하지 않고) 레코드를 계속 추가합니다.
그러나 HBase (0.92+)의 최신 버전에는 memstore 플러시 프로세스가 최적화되어 있습니다. 너무 오래 된 셀의 버전은 건너 뛸 수 있습니다 (HFiles에 쓰지 마십시오). 유지할 버전의 최대 개수를 고려하여 포함되어야 함). 여기에 더 많은 것 : HBASE-4241. Memstore의 기존 값을 "오버 라이딩"하는 것처럼 보이지만 (적어도 외부 관점에서 볼 때), 정확하게 그렇게하지는 않습니다. 이 최적화는 memstore flush에서만 발생하므로 memstore 크기에는 영향을 미치지 않습니다. 새 값이 기록되면 항상 추가됩니다. 나는. 이 최적화로 인해 플러싱이 거의 발생하지 않습니다.
최적화와 관련된 지속적인 작업이 있으므로 다음 릴리스를 살펴보십시오.
리차드가 언급 한대로 HBase Memstore here을 구성하는 방법에 대해 자세히 배울 수 있습니다.
- 1. COM 포트는 Windows에서 어떻게 파생되고 기록됩니까?
- 2. HBase MemStore 및 가비지 콜렉션
- 3. .Net 어셈블리로드 오류가 기록됩니까?
- 4. 업데이트의 영향을받는 행을 선택하십시오.
- 5. ASP.NET 업데이트의 GridView 문
- 6. 업데이트의 CASE 문
- 7. Netbeans 7.0 베타 테어가 Symfony (webapp)와 Apache에서 어떻게 기록됩니까?
- 8. Hbase regionservers
- 9. 업데이트의 ValidationSummary는 UpdateSource
- 10. 톰캣 업데이트의 context.xml하지만
- 11. 캔트 업데이트의 MySQL 데이터베이스
- 12. Eclipse 업데이트의 대체 위치
- 13. GRIDVIEW 동적 업데이트의 SqlDataSource
- 14. foreach 라이브 업데이트의 Response.Write?
- 15. 에디터 업데이트의 작동 방식은 무엇입니까?
- 16. 항목 업데이트의 mysql 결과 얻기
- 17. hbase/lib/
- 18. 사용자 정의 변수는 몇 번 기록됩니까?
- 19. Java에서 데이터베이스 업데이트의 성능을 어떻게 향상시킬 수 있습니까?
- 20. 에포크 값 이후로 밀리 세컨드에서 mysql 업데이트의 날짜를 어떻게 설정합니까?
- 21. Hbase memstore 수동 플러시
- 22. HBase 행 내부 스캐닝
- 23. Hadoop Hbase workflow
- 24. Hbase 셸 : 값이 잘립니다.
- 25. Zend DB 업데이트의 OR 절?
- 26. PHP PDO 업데이트의 문제점은 무엇입니까?
- 27. hbase 데이터의 분산 분석
- 28. HBase REST 필터 (SingleColumnValueFilter)
- 29. HBase 사용 방법?
- 30. IO에 Linux 버퍼 캐시 효과가 기록됩니까?
위대한 설명입니다! btw, habse 소스 코드의 어떤 부분이 언급 한대로 memstore를 유지하고 있습니까? pls는 가능하다면 그것을 가리 킵니다. – Richard
나는 당신이 찾고있는 것이 org.apache.hadoop.hbase.regionserver.MemStore라고 생각한다. –