Rust 컴파일 시간: 25분에서 2분으로

2025-04-17
Rust 컴파일 시간: 25분에서 2분으로

Feldera팀은 대규모 SQL에서 생성된 Rust 코드의 컴파일 시간이 매우 길다는 문제에 직면했습니다. 8562줄의 SQL 프로그램을 약 10만 줄의 Rust 코드로 변환하는 데 25분이 걸렸습니다. 형식 제거 및 코드 중복 제거와 같은 기법을 시도했지만 효과는 제한적이었습니다. 최종적으로 생성된 Rust 코드를 1106개의 작은 크레이트로 분할하여 병렬 컴파일을 가능하게 함으로써 컴파일 시간을 2분 미만으로 크게 단축하고 멀티코어 프로세서를 완전히 활용할 수 있게 되었습니다.

더 보기

GitHub Actions CI/CD: 고난의 여정

2025-03-20
GitHub Actions CI/CD: 고난의 여정

저자는 GitHub Actions를 사용하여 복잡한 CI/CD 파이프라인을 구축하는 과정에서 병합 큐, 불일치하는 동작, 보안 문제 등 많은 어려움을 겪었습니다. 병합 큐에서 상태 확인 강제 적용, GITHUB_TOKEN의 보안 모델 이해, Docker 컨테이너의 파일 권한 및 경로 문제, YAML 워크플로의 복잡성 등이 문제였습니다. 병합 시간이 단축되었지만, 많은 함정과 불일치하는 동작이 있었음을 지적하며 GitHub Actions의 사용 편의성 및 디버깅 개선을 촉구합니다.

더 보기
개발

세분화된 권한 부여 혁신: Feldera의 증분 계산 엔진

2025-01-20
세분화된 권한 부여 혁신: Feldera의 증분 계산 엔진

Feldera는 세분화된 권한 부여(FGA)에 대한 혁신적인 접근 방식을 제시합니다. 기존 FGA 시스템은 실시간으로 권한 부여 요청을 평가하기 때문에 비효율적입니다. Feldera는 모든 권한 부여 결정을 미리 계산하고 증분 계산 엔진(SQL 기반)을 사용하여 결과를 업데이트하여 권한 부여 요청을 단순한 키-값 조회로 변환합니다. 대규모 객체 그래프에서도 Feldera는 밀리초 단위로 변경 사항을 처리하여 성능을 획기적으로 향상시킵니다. 이 글에서는 FGA 원칙을 자세히 설명하고 SQL을 사용하여 고성능 FGA 엔진을 구축하는 방법을 보여주며 대규모 데이터셋 처리에서의 우수성을 보여줍니다.

더 보기