코딩 (8) 썸네일형 리스트형 5) Primary-backup 구현하기 - 문제 설명본 과제에서는 간단한 Primary-backup 프로토콜을 구현하여 복제 프로토콜에 대한 이해를 높여봅시다.- 요구 사항주어진 client.c, server.c 를 바탕으로 Primary-backup 프로토콜을 수행하는 클라이언트, 서버 프로그램을 완성하 세요. - util.c#include #include #include #include #include #include #include #include #include #include #include #include // Constants#define KEY_SIZE 16 // 사용할 KEY 크기이다. 16바이트.#define VALUE_SIZE 16 // 사용할 VALUE 크기이다. 32바이트.#define DATASET_SIZE 1000 .. 4) Power of two choices 로드 밸런싱 구현하기 - 문제 설명우리는 수업 시간에 다양한 로드 밸런싱 알고리즘을 배웠습니다. 이제 power of two choices라는 새로운 알고리 즘을 직접 구현해서 배움을 심화시켜 봅시다.Power of two choices는 random 로드밸런싱과 least connection을 혼 합한 것과 유사합니다.방법은, 임의로 두 개의 서버를 선택을 한 후, 선택된 두 개의 서버 중에서 현재 전송중인 요청의 수 혹은 연결되어 있는 커넥션의 수가 적은 쪽을 선택합니다.예를 들어서, 서버가 1~4까지 4개가 존재하 고, 어느 한 시점에 각 서버로 전송중인 요청의 수가 40 30 20 10이라고 가정 해봅시다. power of two choices에서 는 서버 1~4 중에 임의로 두 개를 선택합니다. 예를 들어서 서버 2.. 3) Look-aside cache 구현하기 - 과제명Look-aside cache 구현하기 - 캐시: 자주 사용되는 데이터 값을 미리 복사해놓는 임시 저장소.속도 향상을 위해 사용하며, 다음과 같은 상황에서 사용된다.원본 데이터보다 빠르게 접근한다.같은 데이터에 반복적으로 접근한다.변하지 않는 데이터를 주로 사용한다.- 캐싱 전략: 캐시로 사용할 때 어떻게 배치하는가가 시스템 성능에 큰 영향을 준다.Look-Aside: 데이터를 찾을 때 우선 캐시에서 찾고, 데이터가 있다면 캐시에서 데이터를 가져오는 전략.만약 캐시에 데이터가 없어 Cache Miss가 발생한다면, 앱은 DB에서 데이터를 가져온 뒤 캐쉬에 넣어주는 작업을 진행한다.이 구조는 캐시가 다운되더라도 DB에서 데이터를 가져올 수 있다.DB에서 캐시로 미리 데이터를 넣어주는 것을 Cach.. 2) Distributed key-value stores 구현하기 - 과제명Distributed key-value stores 구현하기 - util.h#include #include #include #include #include #include #include #include #include #include #include #include // Constants#define KEY_SIZE 16 // 사용할 KEY 크기이다. 16바이트.#define VALUE_SIZE 16 // 사용할 VALUE 크기이다. 32바이트.#define DATASET_SIZE 1000 // 데이터셋 크기#define SET_SIZE 62 // 가능한 문자들의 수 (예: 영문 대소문자 + 숫자)const char SET[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabc.. 1) UDP Echo 프로그램 만들기 - 과제명UDP Echo 프로그램 만들기 - UDP: 단순히 한 컴퓨터에서 다른 컴퓨터로 전송하는 것.TCP와의 차이점: 커넥션이 없고, 손실을 감당해야 한다. - 문제 설명본 과제는 POSIX Socket API를 사용해 클라이언트-서버 프로그램을 실제 구현하여, 분산 시스템의 실제 동작 원리를 이해하는 것을 목표로 한다. - POSIX: Portable Operating System InterFace for Unix의 약자. IEEE에서 지정한 운영체제간 호환성을 유지하기 위한 표준. POSIX를 준수하는 운영체제는 POSIX를 준수하는 다른 운영체제와 호환되어야 한다. 더 자세하게: https://velog.io/@bjk1649/POSIX%EB%9E%80 - SOCKET: 프로세스가 네트워크 세계로.. [분산시스템] [분산 key-value store 서버와 해쉬 함수 기반 파티션] client.c client.c: In function ‘main’:client.c:60:30: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=] 60 | printf("Send bytes: %d\n", sizeof(SendMsg)); | ~^ ~~~~~~~~~~~~~~~ | | | | int long unsigned int | .. [분산시스템] [UDP 소켓 프로그래밍] server.c server.c:51:47: error: ‘type’ undeclared (first use in this function) 51 | if (RecvMsg.type == READ_REQ) type = READ_REP; | ^~~~ server.c:51:47: note: each undeclared identifier is reported only once for each function it appears in server.c:52:31: error: assignment to expression with array type 52 | RecvMsg.. [wsl] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? - 에러 발생 apt-get install build-essential에 대해 E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?가 발생 - 해결 방법 E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?-> sudo 사용 E: Unable to locate package upgrade -> sudo apt-get update 입력 E: U.. 이전 1 다음