반응형

파티셔닝

    [번역] Redis partitioning

    파티셔닝 공부를 위해 아래 페이지의 내용을 번역하며 정리해봤다.https://redis.io/topics/partitioning Redis Partitioning: 여러 레디스 인스턴스로 데이터 분배하기 파티셔닝은 데이터를 여러 레디스 인스턴스로 분할하여 모든 인스턴스가 자기가 소유한 키의 집합들만 소유하도록 하는 프로세스이다. 먼저 파티셔닝 개념에 대해 설명하고 레디스 파티셔닝에 대한 대안을 소개한다. 파티셔닝이 효율적인 이유 레디스에서 파티셔닝을 하기는 다음 두개의 이점이 있다. 1. 하나의 컴퓨터로 메모리의 양이 제한되는 경우에 파티셔닝을 사용하여 더 큰 데이터베이스와 메모리를 가질 수 있다. 2. 여러 개의 코어와 여러 대의 컴퓨터에 연산 능력을 확장하고 네트워크 대역폭을 여러 대의 컴퓨터와 네트..

    파티셔닝의 정의와 종류 그리고 샤딩

    샤딩과 파티셔닝 DB 보안 회사를 다니고 있고 대규모의 서비스가 기본인 현 시대에 파티셔닝과 샤딩에 대해 많이 들었지만 자세히 알지는 못했다. 이번기회에 한번 정리를 해보자. #파티셔닝 파티셔닝은 퍼포먼스, availability, maintainablity를 목적으로 논리적인 데이터를 다수의 엔티티로 분할하는 행위를 뜻한다. 대부분의 DBMS에서 지원하지만 Mysql 5.1 미만에서는 지원하지 않는다. 샤딩 또한 이 파티셔닝의 한 종류이다. 수평 파티셔닝 (horizotal partitioning, Range Based Partitioning) 샤딩과 동일한 의미를 가지며 스키마를 다수의 복제본을 구성하고 각각의 샤드에 샤드키를 기준으로 데이터를 분리하는 것을 말한다. DBA가 데이터의 패턴과 저장공간..

    Java8 스트림을 이용한 데이터 추출

    스트림에 있는 데이터를 List, String, Set등 다양한 형태로 변경하여 추출 할 수 있다. toArray Stream.toArray는 Object[]를 리턴한다. 올바른 타입의 배열을 원하는 경우 다음과 같이 배열 생성자를 전달한다. String[] result = words.toArray(String[]::new); Collect 메소드 - Collect : 종료 작업으로 인자로 받은 형태의 데이터 타입으로 결과물을 생성한다. - Collect는 병렬화를 지원한다. 또한 공급자, 누산자, 결합자를 기본적인 파라미터로 받으며 이는 Collectors라는 클래스를 통해 간편하게 정의하여 사용할 수 있다. 1) List, set, String 1234567Stream data = Stream.of(..

    애플리케이션 확장 방법 스케일 큐브 (Scale Cube)

    A애플리케이션을 확장하는 데 필요한 세 가지의 주요 접근방식이 있다. 크게 x, y, z 축으로 구분하여 설명한다. 먼저 x축 방향의 확장은 애플리케이션을 복제해서 수평적으로 확장하는 것을 의미y축 방향의 확장은 서로 다른 기능을 분리하는 것을 의미z축 방향의 확장은 데이터 파티셔닝(Partitioning) 또는 샤딩(Sharding)을 의미 y축 방향의 확장이 일체형 애플리케이션에서 마이크로서비스를 적용하여 분리하는 것을 의미한다.예를 들면, 항공사 예약에서 검색 500건당 예약 1건이 발생한다고 한다. 그럴경우 하나의 일체형 애플리케이션으로 만들경우 성능을 좋게 하기 보다는 두 개의 서비스를 분리하여 검색 서비스에 물리적은 리소스를 더 부여하고 예약에 상대적으로 낮게 부여 함으로써 효과적으로 애플리케..

반응형