728x90 반응형 전체 글 72 Local Cache에 대하여 (Spring Cache, Caffeine/Ehcache, Redis Client-side caching..) 글을 쓰게된 배경 Redis와 같은 Global Cache는 팀 내에서 거의 필수적으로 사용하고 있지만, Local cache는 자주 사용되지는 않고 있었습니다. 사실 Local cache는 서버마다 지역적으로 데이터를 저장해 관리를 하다보니 모든 서버의 싱크를 맞추는 것은 힘들지만, 잘 변하지 않는 데이터를 가져오거나 더 높은 성능을 요구할 땐 Local cache까지도 고려해보는 것도 좋은 전략인 것 같아 알아보게 되었습니다. Cache란? 먼저 Cache란, 반복적으로 데이터를 불러올 때 지속적으로 DBMS 혹은 서버에 요청하는 것이 아닌 메모리에 데이터를 저장하였다가 데이터를 불러다가 쓰는 것을 의미합니다. 그러다보니 서버나 DBMS에 부담을 덜어주고, 빠르기 때문에 많은 서비스에서 도입하여 사용.. 2022. 9. 1. Index / Clustered Index vs NonClustered Index 인덱스는 쉽게 말해 책의 '목차'를 예시로 들 수 있습니다. 만약 특정 챕터를 찾아보고 싶다면, 책의 목차(Index)에서 찾고 목차에 적힌 page로 이동하면 됩니다. DB에서 index 또한 같은 의미며, 데이터의 위치를 가리키는 지표로 테이블이나 뷰의 행 검색 속도를 향상시켜주는 자료구조 입니다. 이러한 인덱스를 생성하게되면 다음과 같은 특징이 있습니다. 검색 속도 향상 (*시스템의 부하를 줄여, 전체 성능 향상에 기여) 인덱스를 위한 추가 행이 필요 Insert, Update, Delete가 빈번하게 발생하면 성능이 많이 하락할 수 있음 Index는 SQL Server에서 키 값과 연결된 행을 빠르고 효율적으로 찾을 수 있도록 B-Tree 구조로 저장됨 Database에서는 index 구조가 크게.. 2022. 8. 24. SQL (RDBMS)과 NoSQL, ACID와 BASE SQL (RDBMS)과 NoSQL SQL (RDBMS) 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터 관리를 위해 설계된 프로그래밍 언어 RDBMS는 NoSQL과 대비되어 DB를 구분지어 설명할 때 SQL DB로도 표현됨 RDBMS의 R은Relational의 약자로 RDBMS는 관계형 데이터베이스 관리 시스템을 의미 Database와 Management System이 같이 결합되서 데이터를 잘 관리하고 저장할 수 있도록 제공 즉, 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태(Entity)로 표현하는 데이터베이스 관계형 데이터베이스(RDMBS)는 각각의 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체로 이해할 수 있음 또한 이러한 관계를 나타내기 위해 외래 키(forei.. 2022. 8. 11. CAP 정리와 PACELC 정리 CAP 정리 CAP 정리는 C (Consistency/일관성), A (Availability/가용성), P(Partition tolerance/분할 용인)의 약자로, 이 세 가지 조건을 모두 만족하는 분할 컴퓨팅 시스템(Distributed System)이 존재하지 않음을 나타내는 이론입니다. 다른 말로는 CAP 정의, CAP theorem, Brewer's theorem이 있습니다. 이 이론의 조건들에 대해서 먼저 짚고 넘어가겠습니다. 조건 설명 Consistency (일관성) 모든 노드는 동일한 데이터를 바라볼 수 있어야 합니다. 즉, 모든 읽기에 대해서 모든 DB의 노드들이 항상 동일한 데이터를 가지고 있어야 합니다. Availability (가용성) 모든 요청은 성공 혹은 실패라는 정상적인 응.. 2022. 8. 10. [HBase] Online Region Merge와 Empty Region Merge에 대해 Intro 운영하는 서비스에서 HBase 테이블의 column family에 ttl을 세팅하여 사용하고 있습니다. ttl을 걸어두게 되면, Hbase는 ttl(만료 시간)에 도달한 row를 삭제합니다. 참고로 HBase에서는 Delete 연산을 하더라도 바로 삭제되지는 않습니다. 'tombstone marker'를 사용해서 Scan/Get과 같은 조회연산에서 반영되지 않도록 하고, 실제로 삭제되는 시점은 Major Compaction 때 삭제됩니다. 이는 ttl을 설정한 row에도 적용이 됩니다. 갑자기 ttl이 왜나오냐 의문을 가지실 수 있는데요. 제가 운영하는 테이블의 rowkey는 timestamp가 포함된 형태고 1개의 column family를 사용하는데 ttl을 7일로 설정해두었습니다. (멍청.. 2022. 6. 30. [Redis] Redis Cluster의 기초 Redis 6/21 Redis HA Design - Seninel vs Cluster Redis Cluster를 사용하는 이유 Redis는 다양한 Client들에 대한 요청을 동시에, 빠르게 처리해야 한다. Redis는 In-Memory 데이터 스토어기 때문에 물리적인 경합이 없음. 근데 왜 Redis에 장애가 날까? event loop 방식으로 처리가 되어있음 -> 병렬로 동작하지 않고 main thread에서 event loop 방식으로 순차적으로 처리가 되고 있음 -> Redis는 Mulitp Process나 Tread가 아닌 Single Thread에서 요청들을 순차적으로 선행으로 실행 (Event loop 처리) -> 메모리에서 처리되는 빠른 업무로 단일처리로써 문맥교환없이 빠르게 처리하기 위해.. 2022. 6. 21. 이전 1 2 3 4 5 6 ··· 12 다음 728x90 반응형