[Networks] More About Keep Alive

Compare the two Keep-Alive techniques of TCP and HTTP. TCP Keep Alive TCP Keep-Alive is a mechanism that works on the transport layer (L4), which checks if the remaining TCP socket is still in use. If not, it disconnects and frees idle resources. Purpose These are the main purposes of TCP Keep-Alive. Detect dead connections: Detect if the other host has shut down abnormally or is disconnected due to network issues....

March 18, 2025

[System Programming] More about RVMA

Google Scholar RVMA is a new approach for data access which is useful in distributed systems. It overcomes remain restrictions in RDMA and behaves properly in distributed & large scale systems. This article summarize and organize key concepts of it. Remain Restrictions of RDMA RDMA is a technology that enables memory access between multiple nodes, and maximizes its benefits when used in large scale computing architectures that distinguish between data nodes and worker nodes in distributed networks....

March 12, 2025

[System Programming] More about RDMA

Study of RDMA (Remote Direct Memory Access) Intro RDMA is technology to transfer data efficiently in network, enables data exchanged between multiple device mem eory buffer without OS or CPU’s interruptions. It contributes significantly in RDMA는 네트워크 상에서 데이터를 효율적으로 전달하기 위한 기술로, 여러 기기 간 메모리 전송에서 OS나 CPU의 개입 없이 데이터를 교환하도록 한다. 이 기술은 고성능 컴퓨팅, 빅데이터 처리, 분산 시스템 등 여러 영역에서의 성능 향상에 크게 기여하고 있다....

March 11, 2025

[Networks] Unix Socket

Unix socket Unix 소켓은 동일 호스트 내에서 프로세스 간 통신 (IPC, Inter-Process Communication)을 가능하게 하는 기능이다. 이는 네트워크 소켓과 유사한 API를 사용하지만, TCP/IP프로토콜을 사용하지 않고 로컬 파일 시스템을 기반으로 작동한다. Unix 도메인 소켓(UDS)는 주로 성능 및 메모리 효율성을 위해 사용되며, TCP소켓보다 더 빠른 통신을 지원한다. 특징 및 장점 로컬 통신: 동일 호스트 내에서 통신이므로, 속도가 빠르다. FS기반: 이는 포트를 통해 연결되지 않고, 파일시스템의 경로를 통해 식별되어 일반적인 파일처럼 다룰 수 있다....

November 30, 2024

[Networks] Local and Private Network IPs

In general, developers often use non-public IP like 192.168.1.111, 127.0.0.1…etc. What’s the difference between them? And why there are various ranges for Private usage IPs? Loopback IP At first, Let’s talk about Loopback IP. Loopback IP, which helps individual host to interconnect between processes using port number, is defined in RFC3330. Be specific, it includes range of 127.0.0.0/8 and we use 127.0.0.1 (as known as localhost) in common. That means we can use other CIDR blocks like 127....

November 23, 2024

Base Policy

BASE 원칙 BASE원칙은 설계 철학 중 하나로, 분산 시스템 내에서 데이터 일관성을 완화하면서도 가용성과 성능을 극대화하기 위한 것이다. 이는 ACID원칙과는 대조적으로, 대규모 분산 시스템(특히 NoSQL)에서 자주 적용된다. BASE는 다음 세 가지 핵심 개념의 약자이다. Basically Available Soft State Eventually Consistent 아래에서 조금 더 자세히 살펴보자. Basically Available 시스템이 항상 가용성을 유지하며, 일부 노드나 부분적인 장애가 발생하더라도 대부분의 요청에 대해 응답 가능해야함을 의미한다. 네트워크 장애나 서버 장애가 시스템의 완전한 중단을 초래하지 않음....

November 23, 2024

CAP & Consistency Model

CAP이론과 일관성 모델 CAP이론은 분산 시스템에서 다음 세 가지 속성을 동시에 만족할 수 없음을 설명한다. 일관성: 모든 노드가 같은 데이터를 반환함. 가용성: 모든 요청이 응답 받을 수 있음. 네트워크 분할 허용: 네트워크 장애에도 시스템이 동작함. 분산 시스템 설계자는 이 중 두 가지를 선택해야 하고, 선택에 따라 적합한 일관성 모델을 결정해야한다. CP(Consistency & Partition Tolerance) 강한 일관성을 유지하지만 일부 요청이 거부될 수 있음 (Zookeeper) 데이터의 정확성과 신뢰성이 중요한 곳에서 적합하다. 특히 금융 시스템에서 쓰인다....

November 23, 2024

Consistency Model

Consistency Model 분산 컴퓨팅에서 일관성 모델은 분산 시스템 내 데이터의 일관성을 유지하기 위한 규칙과 매커니즘을 정의해둔 것이다. 이는 분산 환경에서 데이터가 여러 노드에 걸쳐 저장되고 처리되는 상황에서 발생 가능한 데이터의 불일치를 해결하거나 최소화하기 위한 것이다. 분산 시스템의 설계는 CAP이론과 같은 제약 속에서 일관성, 가용성, 분할 내성을 균형 있게 고려해야한다. Strong Consistency 모든 클라이언트가 동일한 시점에 동일한 데이터를 보장받는다. 즉, 특정 노드에서 데이터를 업데이트하면 모든 노드가 즉시 해당 변경을 반영하는 모델이다. 데이터의 정확성과 신뢰성이 높다....

November 23, 2024

[Database] Db Block Io

테이블 스캔 방식에 따른 DB Block IO 전략 데이터베이스가 쿼리에서 요구하는 데이터를 검색하기 위해 테이블에 접근하는 방식의 종류는 다양하다. 가장 주요하고 크게는 인덱스를 활용하는지에 따라 갈리고, 인덱스를 어떤 방식으로 스캔할지에 대해서도 종류가 나뉜다. 각 스캔 방식들은 내부 작동 방식에 따라 서로 다른 Block IO 전략을 가지게 되는데, 이러한 내부 작동의 차이를 이해하면 왜 DB가 해당 방식을 사용했는지에 대한 이해도를 높일 수 있다. Block IO 데이터베이스에서 IO를 하는 단위를 Block으로 하기 때문에, DB 엔진에 따라 1회의 IO에서 8KB내지 16KB의 데이터를 불러온다....

November 11, 2024

[Nix] Nix 1

NixOS NixOS 는 리눅스 배포판 중 하나로, 평소 잘 아는 Debian, Red Hat(RHEL) 등과는 별도의 계열을 가지는 배포판이다. Nix 패키지 관리 시스템 을 기반으로 설계되어, 아래와 같은 특성을 가진다. 재현성: 소프트웨어 패키지를 격리된 환경에서 빌드하고, 의존성을 통제해 높은 재현성을 확보한다. 실제 작성 시에도 외부 패키지들의 버전을 세밀하게 기록하여 재현에 차질이 없도록 한다. 선언적: 소프트웨어 패키징에 특화된 선언적 프로그래밍 언어 Nix를 사용한다. 신뢰성: 한 패키지를 업데이트하는 일이 다른 패키지를 망가뜨리지 않도록 보장한다....

November 10, 2024