전체보기(316)
-
[2019.03.14] Consistent hashing
Consistent hashing 이 나온 배경DB의 부하 분산을 구현한다 생각해보자가장 먼저 생각할 수 있는 것이 노드(=DB) 갯수에 따라 나머지 연산을 해쉬로 사용하는 것이다.그런데 이런 경우 문제점이 노드 갯수가 추가되거나 삭제되었을 때를 생각해보자.모든 노드에 저장 되어 있는 모든 아이템 i 개를 다시 해쉬 함수를 돌려 다시 저장해야한다.확장성이 매우 떨어진다. 즉 위 방법에서는 노드의 추가 삭제가 발생하면 i개의 아이템 전부 다 저장 장소를 바꿔야한다.이러한 아이템의 이동 횟수를 어떻게 줄일 수 없을까?노드가 추가 삭제되어도 기존에 있는 노드들의 경우, 노드 안의 아이템들의 큰 위치 이동없이 일관되게 할 수 없을까? 그래서 나온것이 Consistent hashing 이다. Consistent ..
2019.03.14 -
[2019.03.14] 카산드라 Intro
카산드라 관련 좋은 정리 링크https://meetup.toast.com/posts/58https://meetup.toast.com/posts/60https://meetup.toast.com/posts/65 제품 데이터 레이어 RDBMS MySQL OracleDB PostgreSQL 데이터 베이스 테이블 행 열 NoSQL Cassandra 키 스페이스 테이블 행 열RDBMS에서 사용하는 데이터 레이어와 거의 유사하다.실제로 Cassandra를 통제하는 언어는 CQL이라고 부르는데 이름도 그렇고 사용방식이 거의 같다.그렇다고 RDBMS 를 완벽히 대체할 수 있는 솔루션은 아니므로 맹신하면 안된다. 장점+ 확장성과 가용성에 최적화된 분산형 Data storage 다.+ Consistent hashing 으로..
2019.03.14 -
[2019.03.13] RDBMS, NoSQL 데이터 모델 비교
제품 스키마 대응 RDBMS MySQL OracleDB PostgreSQL 데이터 베이스 테이블 행 열 NoSQL Cassandra 키 스페이스 테이블 행 열 Elastic search 인덱스 타입 문서 (JSON) 문서필드MongoDB 데이터 베이스콜렉션 문서 문서 필드Redis 해쉬 테이블을 메모리에 항상 상주하는 느낌이라 스키마가 없는 것 같다.
2019.03.13 -
[2019.03.13] Redis 간략히
Redis : REmote DIctionary Server 의 약자 Redis 포스트 내용 정리 출처 : https://bcho.tistory.com/654Redis Command document : https://redis.io/commands위 사이트에서 간략한 redis command를 사용해볼 수 있으니 참조 Redis 설치 간략히brew install redis brew services start redisredis-cli redis-server * cli = Command Line Interface Redis 특징 메모리 기반의 key-value 타입get - set 으로 데이터를 불러오고 저장한다. 수평적 확장이 쉬움기능이 간단하고 용량도 얼마 안됨데이터 로딩할 때 메모리 캐시 용도로 주로 ..
2019.03.13 -
[2019.03.13] RDBMS, NoSQL, Hadoop
제품장단점 비고 RDBMS MySQL OracleDB PostgreSQL 장점 + 보안, 안전성이 좋음 + 관리하는 GUI가 좋음 + 복잡한 쿼리 수행 최적화 되있음 + 어떤 순간에도 일관성 유지 + 동시성도 좋음 비즈니스 데이터 엄격한 트랜잭션 처리 ACID Atomic 보장 안전성 보장 단점 - 상대적으로 고비용이다. NoSQL Elastic search CassandraMongo DB 장점 + 용량 대비 비용이 좋음 + 동시 접속성이 좋음 + 단순한 싱글 쿼리에 적합 + 데이터 추가가 유연함 기본적으로 Join 존재 x -> 어플리케이션에서 담당해야함. API 레벨에서 기능을 가져다 쓰는 용도 SQL 방식의 코딩이 없음 단점 - GUI 가 별로없음 - 보안 이슈가 RDBSMS 보다 낮음 Redis ..
2019.03.13 -
[2019.03.13] 마이크로 서비스 아키텍처
강의 주소 : https://www.youtube.com/watch?v=XSwWn1M2XYg&t=437s&app=desktop 1. 아키텍처 발전사 전통적인 아키텍처 전통적인 아키텍처 + 이중화 + 로드 밸런싱 전통적인 아키텍처 + 이중화 + 로드 밸런싱에 기능추가 지금이야 서비스가 2개라서 괜찮지만 기능이 계속 늘어나면 서버가 엄청 커짐 => 새로운 사람이 들어왔을 때 시스템을 파악하기가 어려워진다. => 후폭풍을 예상할 수가 없으니 코드를 건드리기가 무서워진다. => 최신기술을 함부로 도입할 수 가 없다. => 시스템이 커지니까 통배포가 어렵다 => 기능을 때서 분리하는방식으로하자 2. 시스템을 확장하는법 (xyz 확장) x축 확장 : 장비를 늘린다. y축 확장 : 기능 분할 z축 확장 : 같은 성질..
2019.03.13