Software Development
-
[Pinot] Apache Pinot 조사Software Development/Data Engineering 2025. 2. 1. 01:18
Pinot은 링크드인에서 개발한 실시간 분산 OLAP 데이터스토어이다. 초저지연 및 높은 처리량을 제공합니다. 주요 특징으로 다음과 같은 것들이 있습니다.Fast Queries: 페타바이트 데이터셋에 대한 대부분의 필터 및 집계를 수십 밀리초 지연으로 제공합니다.High Concurrency: 동시에 수십만 쿼리를 실행할 수 있습니다.Batch and Streaming IngestUpserts: 같은 레코드를 여러번 입수해도 되고 최신 레코드만 쿼리할 수 있습니다.Versatile Joins: 다양한 조인이 가능합니다. fact/dimension, fact/fact, ...Rich Indexing Options: timestamp, inverted, StartTree, bloom filter, range..
-
[Flink] 플링크 공부Software Development/Data Engineering 2025. 1. 27. 22:20
https://m.yes24.com/Goods/Detail/89927694 아파치 플링크로 하는 스트림 데이터 처리 - 예스24아파치 플링크를 사용하면 초저지연으로 스트림 데이터를 처리하고 실시간으로 스트림 데이터를 분석할 수 있다. 강력한 아파치 플링크의 스트림 처리 기능을 바탕으로 매일 수천억 건 이상의m.yes24.comhttps://github.com/streaming-with-flink위의 책을 보고 공부하기 위해 간단하게 내용 정리를 진행하였습니다. 자세한 내용은 책을 통해서 확인하실 수 있습니다. Stream Processing with Apache FlinkStream Processing with Apache Flink has 3 repositories available. Follow th..
-
[Redis] Redis 동작방식 살펴보기Software Development/Database 2025. 1. 24. 20:04
Remote Dictionary Server의 약자로 In-memory cache 솔루션이다[1] 주요 사용 사례로는 caching, session, pub/sub이 있다.C언어로 작성되었다.Redis는 백업 저장소로 디스크를 사용한다. 레디스는 메모리에 데이터를 저장하기 때문에 메모리가 부족하면 swap으로 인해 성능 저하가 발생할 수 있다.Swap을 할 수 있는 상태라면, 시스템 다운 및 프로세스 Hang을 방지할 수 있지만, 성능 저하가 발생할 수 있다.Swap을 할 수 없는 상태라면, OOM으로 죽을 수 있다.레디스는 maxmemory라는 설정을 통해서 메모리의 양을 조절할 수 있다. 최대치로 데이터를 저장하게 되면 기존 데이터를 제거하는 방식으로 동작하는데 이를 eviction이라고 부른다. 이..
-
Database의 파일시스템 EXT4, XFS 비교 (Feat. MongoDB, ScyllaDB)Software Development/Database 2024. 6. 22. 00:00
https://www.mongodb.com/docs/manual/administration/production-notes/#kernel-and-file-systems Production Notes - MongoDB Manual v7.0This page details system configurations that affect MongoDB, especially when running in production.To learn more about running in production for deployments hosted in MongoDB Atlas, see Atlas Production Notes.For running in production, refer to the Recommewww.mongodb..
-
[Kotlin] 코틀린 코루틴의 정석 요약Software Development/기타 2024. 6. 9. 00:00
개발 도서를 읽으면서 많은 번역본을 읽을 때 마다 번역에 대한 아쉬움을 느낄 때가 있었습니다.'코틀린 코루틴의 정석'을 읽으면서 코루틴의 동자원리에 대해서 잘 이해할 수 있었습니다.이번 요약을 통해서 나중에 필요시에 가볍게 꺼내볼 수 있으면 좋겠습니다.자세한 내용은 아래의 책에 있습니다.http://www.acornpub.co.kr/book/kotlin-coroutines 코틀린 코루틴의 정석많은 개발자들이 어렵게 느끼는 비동기 프로그래밍을 다양한 시각적 자료와 설명을 통해 누구나 쉽게 이해할 수 있도록 쓰인 책이다.www.acornpub.co.kr코루틴의 이점은 성능, 안정성, 가독성에 있다.멀티 스레드 프로그래밍 방식은 사용자가 스레드를 기반으로 작업하기 때문에 스레드 블로킹을 극복하기 어려웠다.이를..
-
CPython InternalsSoftware Development/Python 2024. 6. 1. 00:00
해당 글은 CPython Internals 책을 읽으면서 중요하게 봤었던 내용의 일부를 요약한 것입니다. 자세한 내용은 아라의 책에 있습니다.https://product.kyobobook.co.kr/detail/S000061776273 CPython 파헤치기 | 앤서니 쇼 - 교보문고CPython 파헤치기 | 인터프리터 레벨에서 살펴보는 파이선 내부 동작 원리파이썬이 인터프리터 레벨에서 작동하는 방식을 이해하면 파이썬의 기능을 최대한 활용할 수 있고 애플리케이션을 최적product.kyobobook.co.kr"아무리 성공적인 혁신이라도 한때는 아이디어였다. 헌신, 학습, 협력이 성공과 성장을 위한 기반이다. 지금 하는 게 아예 안 하는 것보다 낫다."파이썬 언어와 문법컴파일러: 한 언어를 다른 언어로 변..
-
[Kafka] 단일 파티션에 대한 고민Software Development/Data Engineering 2024. 5. 27. 14:23
이름에서 알 수 있듯이 단일 파티션 topic은 파티션이 하나만 정의된 Kafka topic입니다. 이 옵션은 몇 가지 제한 사항이 있습니다.1. consumer group 사이즈에 관계없이 한 번에 하나의 consumer group 멤버가 메세지를 처리할 수 있습니다.2. group member와 메세지 처리를 나눠서 할 수 없기 때문에 최대 처리량은 단일 consumer와 동일합니다.3. 2 이상의 consumer 그룹의 경우 1개 빼고 전부 유휴 상태로 있게됩니다. 처리량 및 확장성의 관점에서 아주 나쁜 선택입니다. 카프카의 파티셔닝 기능을 포기하는 것은 거의 필수인데, 드물게 예외케이스가 있긴 합니다. 모든 메시지가 동일한 파티션 내에 있으므로 해당 주제 내에서 메시지의 grobal (쓰기) o..
-
[Distributed System] Interprocess CommunicationSoftware Development/Distributed System 2023. 8. 6. 17:06
The API for Internet protocols The characteristics of interprocess communication 두 쌍의 프로세스가 통신하려면, send, receive가 필요 Synchronous and asynchronous communication Queue는 메세지 destination과 관련이 있음. 송신 프로세스는 원격 큐에 메세지를 추가. 수신 프로세스는 로컬 큐에서 메세지 제거. 송수신 프로세스의 통신은 동기 비동기 중 하나. 동기 통신은 모든 메세지가 동기적으로 처리. 송신, 수신은 blocking 오퍼레이션임. 송신 또는 수신 프로세스의 이슈가 서로의 통신에 영향을 미침. 비동기 통신은 send operation을 non-blocking으로 사용. 로컬 ..