profile
터널을 지나고 있을 뿐, 길은 여전히 열려 있다.

2024년 10월 회고록

이번 마인드 골 프로젝트의 인원 모집이 마무리되고 본격적인 개발 단계에 접어들었습니다. 특히 인원 구성을 마무리하는 과정에서 각 팀원의 강점과 역할을 명확히 파악하고 조율하면서 커뮤니케이션의 중요성을 재확인할 수 있었습니다. 또한, 프로젝트의 목표와 기획 의도를 팀원들

2024년 10월 31일
·
0개의 댓글
·

2024 오픈소스 컨트리뷰션

2024 OSSCA \[참여형] 활동기간: 약 13주 2024. 7. 13 (토) - 2024. 11. 2 (토) \[Challenges: 4주] 2024. 7. 13 (토) - 2024. 8. 9 (금) \[Masters: 9주] 2024. 8. 10 (토) - 20

2024년 10월 5일
·
0개의 댓글
·

19. draft PR

드래프트 PR(Pull Request)은 GitHub에서 제공하는 기능으로, 아직 작업이 완전히 완료되지 않았거나 검토가 필요할 때 사용하는 PR입니다. 이 기능을 통해 프로젝트에 작업 중인 상태를 공유하면서도 "정식으로 병합"되지 않도록 할 수 있습니다. 드래프트 P

2024년 10월 5일
·
0개의 댓글
·

Raft 기반 시스템에서 올바른 HTTP 메서드 선택

기능: 주어진 key에 해당하는 값을 저장하거나 업데이트.현재 상태: PUT /store/{key}/{value}로 잘못된 RESTful 설계를 사용하고 있음.적절한 수정: value는 요청 본문(body)에 포함하고, key만 URL 경로에 포함시켜야 함.기능: 주어

2024년 10월 5일
·
0개의 댓글
·

18. 포크된 리포지토리 최신화 및 작업 브랜치 관리 방법

오픈소스 프로젝트에 기여하거나 협업할 때, GitHub에서 리포지토리를 포크(Fork)한 후에도 원본 리포지토리의 변경 사항을 반영하고 동기화하는 과정이 필요합니다. 이 글에서는 포크한 리포지토리를 원본과 최신 상태로 유지하면서, 새로운 작업 브랜치를 생성해 작업을 진

2024년 10월 5일
·
0개의 댓글
·
post-thumbnail

Rocks DB 스토리지 구현 5)

Rust 프로젝트에서 Raft 관련 코드 실행 중 Result::unwrap() 호출 시 Err로 인해 패닉이 발생했습니다. 오류는 아래와 같은 메시지를 나타냅니다.백트레이스(Backtrace)는 프로그램이 패닉이나 예외 상황에서 중단되었을 때, 그 중단 시점까지의 함

2024년 9월 21일
·
0개의 댓글
·
post-thumbnail

Rocks DB 스토리지 구현 4)

Raft 기반 분산 시스템을 개발하던 중, memstore-static-members 실행 시 Raft 노드를 부팅하는 과정에서 다음과 같은 오류 메시지가 발생했습니다.로그에 기록된 정보는 다음과 같습니다:이 오류는 스냅샷과 관련된 문제로 보였으며 이를 해결하기 위한

2024년 9월 21일
·
0개의 댓글
·

Rocks DB 스토리지 구현 3)

개발을 하다 보면 예상치 못한 에러를 만나는 일이 자주 있습니다. 이번 프로젝트에서도 몇 가지 에러가 발생했고, 이를 해결하는 과정에서 많은 것을 배우게 되었습니다. 이 글에서는 코드 작성 중에 직면했던 에러들과 그 해결 과정을 공유하려고 합니다.에러를 처음 마주쳤을

2024년 9월 21일
·
0개의 댓글
·

Rocks DB 스토리지 구현 2)

1. 필요한 라이브러리 및 모듈 임포트 rocksdb::{DB, Options}: RocksDB를 사용하기 위한 필요한 객체들 (DB와 Options)을 임포트합니다. crate::{StableStorage, Result, Entry}: 프로젝트 내에서 정의된 Sta

2024년 9월 8일
·
0개의 댓글
·

2024년 8월 회고록

조인어스월드 동아리 5기에 합격을 했습니다. 앞으로 다양한 사람들과 소통하며 글로벌한 시야를 넓힐 수 있는 기회를 기대하고 있습니다. 새로운 언어와 문화를 배우고 이를 통해 더 넓은 세계를 경험할 수 있을 것이라는 기대감이 큽니다. 동아리 활동이 시작되면 그동안 기대했

2024년 8월 31일
·
0개의 댓글
·

14. Advanced Configuration Options

Advanced Configuration Options (고급 구성 옵션)은 RocksDB의 세부 동작을 제어하는 다양한 설정을 의미합니다. 이 설정들은 RocksDB의 성능, 안정성 및 동작 방식을 사용자의 특정 요구사항에 맞춰 세밀하게 조정할 수 있게 해줍니다. 예

2024년 8월 31일
·
0개의 댓글
·

13. Adaptive Mutex

어댑티브 뮤텍스(Adaptive Mutex)는 멀티스레드 환경에서 잠금을 더 효율적으로 관리하기 위한 방법입니다. 일반적인 뮤텍스는 잠금이 걸리면 다른 스레드가 대기하는 동안 잠들게 되지만, 어댑티브 뮤텍스는 잠금이 금방 풀릴 것으로 예상될 때 잠들지 않고 잠금을 획득

2024년 8월 31일
·
0개의 댓글
·

12. statistics

통계 및 메트릭(Statistics and Metrics)은 RocksDB의 성능과 동작 상태를 모니터링하는 데 사용되는 다양한 통계 지표입니다. 이러한 지표는 문제를 진단하고 성능을 개선하는 데 유용합니다. 주요 지표에는 다음이 포함됩니다:읽기/쓰기 지연 시간: 읽기

2024년 8월 31일
·
0개의 댓글
·

11. Transaction Log

Transaction Log는 RocksDB에서 중요한 역할을 하는 기능으로, 데이터베이스에 쓰여진 모든 변경 사항을 기록하는 파일입니다. 이는 Write-Ahead Logging(WAL) 방식으로 구현되며, 주로 데이터 복구 및 일관성 유지를 위해 사용됩니다. 트랜잭

2024년 8월 31일
·
0개의 댓글
·

10. Iterators

Iterators (이터레이터)는 RocksDB에서 SST 파일이나 MemTable에 저장된 데이터를 순차적으로 탐색할 수 있는 인터페이스입니다. 이터레이터는 데이터를 효율적으로 조회하고 스캔하는 데 사용되며, 특정 범위 내의 데이터를 가져오거나 전체 데이터를 순차적으

2024년 8월 31일
·
0개의 댓글
·

9. Merge Operators

RocksDB에서 Merge Operator는 기존 값을 즉시 읽지 않고 병합 연산을 기록하여 최종 값을 나중에 계산하는 방식으로 작동합니다. 예를 들어, "키1"에 대해 5를 더하는 연산이 들어오면, RocksDB는 이 연산을 단순히 기록합니다. 실제로 데이터가 읽힐

2024년 8월 31일
·
0개의 댓글
·

8. Block Cache

Block cache는 RocksDB가 데이터를 빠르게 읽어오기 위해 메모리에 저장하는 임시 저장 공간입니다. 블록 캐시는 데이터를 미리 메모리에 올려두어 디스크에서 직접 읽는 것보다 훨씬 빠르게 접근할 수 있게 합니다. 이를 통해 데이터베이스의 읽기 성능을 크게 향상

2024년 8월 31일
·
0개의 댓글
·

7. Bloom Filters

블룸 필터는 데이터가 존재하는지 빠르게 확인할 수 있는 메모리 효율적인 자료 구조입니다. 이 필터는 여러 해시 함수로 데이터를 비트 배열에 매핑하여 사용됩니다. 결과적으로, 필터가 "데이터가 존재하지 않는다"고 말하면 확실하게 없다는 의미이고, "존재한다"고 말하면 실

2024년 8월 31일
·
0개의 댓글
·

6. Compaction

Compaction은 RocksDB에서 데이터를 효율적으로 관리하기 위해 사용되는 과정으로, 데이터베이스에 있는 오래된 데이터와 새로운 데이터를 병합하여 불필요한 중복을 제거하고 저장 공간을 확보합니다. 이 과정을 통해 데이터베이스의 읽기 속도가 향상되고, 저장 공간이

2024년 8월 31일
·
0개의 댓글
·

5. SST Files

SST 파일(Sorted String Table 파일)은 RocksDB와 같은 LSM(로그 구조 병합) 트리 기반 데이터베이스에서 사용되는 불변성(immutable)의 파일 포맷입니다. 이 파일은 메모리에서 플러시된 데이터가 정렬된 상태로 저장된 파일이며, 디스크에 저

2024년 8월 31일
·
0개의 댓글
·