Skip to main content
이 문서는 컴퓨트 섹션의 일부입니다.

Photon이란?

Photon 은 Databricks가 개발한 C++ 기반 벡터화(Vectorized) 실행 엔진 입니다. 기존 Apache Spark의 JVM(Java Virtual Machine) 기반 실행 엔진을 대체하여, SQL 및 DataFrame 워크로드의 성능을 2배에서 최대 8배까지 향상 시킵니다.
💡 핵심 아이디어: Spark의 기존 엔진은 Java/Scala로 구현되어 JVM의 오버헤드(GC, 메모리 관리)가 있었습니다. Photon은 C++로 작성되어 JVM 없이 네이티브 코드 수준 의 성능을 제공합니다.

기존 Spark SQL 엔진과의 차이

아키텍처 비교

성능 이점

💡 SIMD란? CPU의 벡터 레지스터를 활용하여, 하나의 명령어로 여러 데이터 항목에 동시에 같은 연산을 수행하는 기술입니다. 예를 들어 4개의 정수 덧셈을 한 번에 처리할 수 있습니다.

성능 벤치마크

Databricks의 공식 벤치마크에 따르면, Photon은 다양한 워크로드에서 다음과 같은 성능 향상을 보여줍니다.

활성화 방법

All-Purpose Cluster에서 활성화

클러스터 생성 시 Photon 가속 을 체크하거나, Runtime 이름에 photon이 포함된 버전을 선택합니다.

Job Cluster에서 활성화

SQL Warehouse

SQL Warehouse는 기본적으로 Photon이 활성화 되어 있습니다. 별도 설정이 필요 없습니다.

SDP 파이프라인에서 활성화


지원되는 연산

Photon은 대부분의 SQL 및 DataFrame 연산을 지원하며, 지원 범위가 지속적으로 확장되고 있습니다.

지원되는 주요 연산

Photon으로 실행되지 않는 연산

Photon이 지원하지 않는 연산은 자동으로 기존 Spark 엔진으로 폴백(fallback) 됩니다. 사용자는 이를 인지할 필요 없이, 쿼리가 정상적으로 실행됩니다.
💡 Photon fallback: 쿼리의 일부만 Photon으로 실행되고 나머지는 Spark 엔진으로 실행되는 혼합 실행도 가능합니다. Spark UI의 Photon 실행 비율 에서 확인할 수 있습니다.

비용 고려사항

Photon DBU 단가

Photon을 사용하면 DBU(Databricks Unit) 소비 단가가 달라집니다.

비용 대비 효과 판단

Photon 사용 권장 워크로드


Photon 성능 확인

Spark UI에서 Photon 비율 확인

클러스터의 Spark UI → SQL/DataFrame 탭에서 각 쿼리의 Photon 실행 비율 을 확인할 수 있습니다. 비율이 높을수록 Photon의 이점을 더 많이 활용하고 있다는 의미입니다.

쿼리 성능 비교


Photon 내부 아키텍처 심화

Photon의 성능 이점을 정확히 이해하려면, 내부 동작 원리를 더 깊이 알아야 합니다.

Vectorized Execution (벡터화 실행) 상세

기존 Spark의 Whole-Stage CodeGen은 행(row) 단위로 파이프라인을 생성합니다. 반면 Photon은 열(column) 단위 배치 로 처리합니다.

SIMD 활용 상세

Photon은 CPU의 AVX2/AVX-512 명령어 세트를 적극 활용합니다.
💡 인스턴스 선택 팁: AVX-512를 지원하는 인스턴스(예: Intel Ice Lake 이상)에서 Photon의 성능 이점이 가장 극대화됩니다. AWS의 경우 m6i, r6i, i4i 시리즈가 해당됩니다.

Columnar Processing 내부 동작

Photon은 Delta Lake의 Parquet 파일을 읽을 때, 컬럼 단위로 메모리에 적재 합니다.
이 방식의 장점:
  • CPU 캐시 라인 활용률 극대화: 같은 컬럼의 연속된 값이 메모리에 인접하므로, L1/L2 캐시 히트율이 높아집니다
  • 데이터 압축 활용: 컬럼 단위 인코딩(Dictionary, RLE 등)을 디코딩 없이 직접 연산할 수 있는 경우가 있습니다
  • 불필요한 컬럼 스킵: 쿼리에 필요한 컬럼만 읽으므로 I/O가 줄어듭니다

지원/미지원 연산 상세

Photon에서 특히 빠른 연산

Photon이 느린 또는 효과 없는 경우

Photon 실행 비율 확인 및 개선

Spark UI에서 Photon 비율이 낮다면 다음을 점검하세요.

DBU 단가 차이와 ROI 계산

정확한 비용 비교 프레임워크

Photon의 비용 효율성을 판단하려면 총 비용(TCO) 을 비교해야 합니다.

워크로드별 ROI 시뮬레이션

💡 ROI 판단 기준: Photon이 실행 시간을 1.5배 이상 단축하는 워크로드에서 비용 이점이 있습니다. UDF가 전체 실행 시간의 50% 이상을 차지하면 Photon 효과가 미미합니다.

하이브리드 전략

모든 워크로드에 Photon을 적용하기보다, 워크로드 특성에 따라 선택적으로 적용하는 것이 비용 효율적입니다.

정리


참고 링크