Background
NeorunBase

NeorunBaseOLTP · 벡터 DB · 풀텍스트 · 그래프 DB를 한 SQL 엔진에

NeorunBase 주요 기능

관계형, JSONB, 벡터 데이터베이스, 풀텍스트 검색, 그래프 데이터베이스, 공간 데이터를 하나의 분산 ACID 엔진에서 처리하는 PostgreSQL 호환 멀티모달 Lakebase. Pinecone · Elasticsearch · Neo4j 를 따로 운영하지 않고 한 SQL 안에서 결합하며, 다중 사이트 DR · 무성 장애 안전성 · 토폴로지 인지 배치까지 엔터프라이즈 운영 요구를 기본 탑재했습니다.

PostgreSQL 와이어 호환

psql · JDBC · pgAdmin · LangChain · pgvector 클라이언트가 코드 수정 없이 그대로 붙습니다. PostgreSQL 마이그레이션 부담 없이 분산 환경으로 이행할 수 있습니다.

조용히 틀린 답을 주지 않는 SQL

분산 엔진에서 가장 위험한 실패는 "실행할 수 없다"가 아니라 "데이터처럼 보이는 다른 답"입니다. NeorunBase 는 PostgreSQL 과 같은 답을 주거나, 그렇지 못하면 에러를 냅니다. WHERE · HAVING 절이 조용히 버려지는 일이 없고(UPDATE · DELETE 라면 전체 행을 덮어쓸 수 있는 문제), 모르는 컬럼 · 함수는 NULL 이 아니라 에러이며, SET c = c + 1 같은 계산식은 실제로 계산되고, COUNT(DISTINCT ...) 는 샤드별 개수를 더하지 않고 값 집합을 합쳐 셉니다. CREATE TABLE 이 받아들인 UNIQUE · CHECK · DEFAULT 는 쓰기 시점에 실제로 강제됩니다. 이 규칙은 소스에 포함된 두 개의 e2e 스위트로 클러스터에서 직접 검증할 수 있습니다.

분산 ACID + 자동 복구

해시 기반 샤딩과 무중단 리샤딩, ZooKeeper sticky leader 선출, 디스크/노드 장애 자동 복구, 2PC 분산 트랜잭션. RocksDB 위에서 ACID 보장.

한 SQL 안의 멀티모달

관계형 · 벡터 · 풀텍스트 · 그래프 · 공간 데이터를 하나의 ACID SQL 안에서 결합합니다. Hard Filter (WHERE) + 시맨틱/키워드 하이브리드 검색 + 그래프 기반 재순위화를 한 SELECT 으로 표현하므로 별도 데이터스토어 · 글루 ETL 이 필요 없습니다.

벡터 데이터베이스 (pgvector 호환)

pgvector 호환 VECTOR 타입 + <-> · <#> · <=> 거리 연산자, 분산 HNSW ANN 인덱스. 트랜잭션 데이터 · 메타 · 임베딩이 같은 ACID 트랜잭션 안에 있어 RAG 백엔드로 즉시 사용 가능합니다.

풀텍스트 (Lucene BM25)

Lucene 기반 BM25 인버티드 인덱스, PostgreSQL FTS 호환 문법(@@, ts_rank), 35종 이상의 언어 분석기(한국어 Nori 형태소 분석 포함). PostgreSQL 표기 그대로 USING gin 으로 인덱스를 만들 수 있고, \di 는 각 인덱스의 방식(btree·fts·hnsw)을 함께 보여줍니다. @@ 는 PostgreSQL 과 마찬가지로 인덱스 없이도 동작하며 — 인덱스는 속도만 담당합니다 — 인덱스 유무와 관계없이 같은 행을 돌려줍니다. 언어를 지정하지 않은 인덱스의 기본 분석기는 CJK 이므로 한국어가 어절 단위로 잘려 누락되는 일이 없습니다. 벡터 ANN 과 결합한 하이브리드 검색은 HYBRID_SEARCH(...) TVF 한 줄입니다.

그래프 데이터베이스 + 분석

엣지 테이블 위에서 BFS 트래버설(GRAPH_NEIGHBORS), PageRank · Personalized PageRank, 다중-홉 도달 가능성 검증(GRAPH_PATH_EXISTS) 을 SQL TVF 로 제공합니다. CSR 가속 레이어로 단일-홉 100x+ 빠른 응답, 단일 SELECT 안에서 하이브리드 검색 결과를 그래프 점수로 재순위화하는(구조적 — 그래프 근접도) Graph RAG 패턴이 자연스럽게 표현됩니다.

공간 데이터 (PostGIS 호환)

ST_Distance · ST_Contains 등 PostGIS 호환 공간 함수와 Z-order 공간 인덱싱. 위치 기반 서비스 · GIS · 지리 RAG 모두 한 엔진에서.

Iceberg CDC + Kafka 인입

OLTP 테이블 변경을 Iceberg/Parquet로 자동 CDC 동기화 — Ontul 이 Iceberg 카탈로그를 통해 같은 데이터를 SQL로 분석합니다. 동기화 테이블은 기본키의 버킷으로 파티셔닝되어, 키가 갱신될 때마다 이전 버전을 지우는 equality delete 가 언제나 그 행과 같은 파티션에 놓입니다. Iceberg v2와 v3(deletion vector)를 모두 읽고, Kafka 컨슈머 직접 통합 + REST 대량 인입 + MERGE/Upsert. Write-Audit-Publish(WAP)로 CTAS·MERGE·CDC 동기화를 비-main 브랜치에 먼저 적재해 격리 검증한 뒤 REST(/admin/api/iceberg/wap/publish)로 main에 게시할 수 있습니다.

Iceberg 행 단위 DML (v2 position delete · v3 deletion vector)

Iceberg 테이블에 INSERT · UPDATE · DELETE · MERGE INTO 를 SQL 그대로 실행합니다. 네이티브 테이블로 복사하거나 외부 엔진을 거칠 필요가 없습니다. UPDATE · DELETE · MERGE 는 모두 merge-on-read — 매칭된 행을 (파일, 위치) 로 기록해 delete file 로 쓰고 데이터 파일은 절대 재작성하지 않으며, 한 번의 RowDelta 커밋으로 원자적으로 반영됩니다. MERGE 는 키가 아니라 위치로 지우므로 매칭된 행만 정확히 제거되고, 대상 행이 어느 파티션에 있든 도달하며, identifier field 가 없는 테이블도 대상이 됩니다. 포맷 버전에 따라 v2 는 parquet position delete, v3 는 Puffin deletion vector 를 씁니다. v3 는 "데이터 파일당 DV 1개" 규칙에 맞춰 기존 벡터를 읽어 병합하고 이전 delete file 을 같은 커밋에서 제거합니다. 산출물은 Trino 로 교차 검증합니다 — NeorunBase 가 쓴 것을 Trino 가 동일하게 읽어야 통과합니다.

Iceberg 서빙 (LakeBase) — PK 포인트/레인지 인덱스

오픈 레이크하우스(Iceberg) 위에서 데이터를 복사하지 않고 저지연·고QPS로 서빙합니다. 기본키 조건(= / IN / BETWEEN / 범위 비교)은 스냅샷별 PK→(파일,행) 인덱스로 다중 파일 스캔 없이 매칭 행만 읽어 수천 QPS·1~2ms로 응답하며, 포인트 조회는 네이티브 RocksDB보다도 빠릅니다. 인덱스는 자동 생성(DDL 불필요)·스냅샷 단위 무효화·로컬 RocksDB 영속(재시작 복원)·append 증분 갱신됩니다. 비-PK 컬럼은 CREATE INDEX로 보조 인덱스를 선언하고, 카탈로그별 index.patterns로 수천 개 테이블 중 인덱싱 대상만 지정합니다. 외부 애플리케이션·대시보드가 PostgreSQL 와이어로 직접 연결하는 서빙 레이어입니다.

엔터프라이즈 보안 + 통합 콘솔

AES-256-GCM 봉투 암호화(데이터 · WAL · 메타), 내장 KMS + 키 로테이션, IAM/RBAC + STS, pgwire TLS. 컬럼 마스킹 · 컬럼 deny · 행 필터를 Iceberg 서빙 경로에도 그대로 적용합니다. ontul과 함께 쓰면 IAM federation으로 ontul이 정책 권위를 갖고 NeorunBase는 이를 pull해 외부 직결(JDBC) 접근에 집행하며, ontul 토큰 SSO도 지원합니다. React 기반 웹 콘솔과 Prometheus 메트릭으로 클러스터 · 샤드 · IAM · Iceberg · Kafka 를 한 곳에서.

다중 사이트 재해 복구 (Site Replication)

Primary 사이트의 모든 변경 — INSERT · UPDATE · DELETE · CREATE TABLE 까지 — WAL 단위 비동기 복제로 Standby 사이트에 자동 전파됩니다. 인덱스(HNSW · Lucene) 도 함께 재구축. 별도 Debezium · Golden Gate 없이 분 단위 RPO 의 DR 사이트를 운영합니다.

NIC 무성 장애 안전성

분산 시스템에서 가장 디버깅이 어려운 "ZK 는 정상이라는데 NIC 가 죽은 좀비 노드" 시나리오를 원천 차단합니다. Selector 기반 비차단 connect / read / write 에 10초 데드라인 + SO_KEEPALIVE — 한 노드의 장애가 전체 클러스터를 멈추지 못합니다.

Topology 인지 배치 + 자동 회복

Zone → Rack → Host → Node 6단계 캐스케이드로 샤드 복제본을 분산해 한 랙·존 손실에서도 데이터 손실 0. Reactive Shard Repair 가 60초 주기로 복제본 차이를 감지해 자동 재복제 — 운영자 개입 없이 자가 치유합니다.

레플리카 읽기 분산 + 읽기 페일오버

쓰기가 모든 레플리카에 동기 복제되므로 어떤 레플리카든 프라이머리와 동일한 행 · 보조 인덱스 · HNSW 벡터 인덱스 · Lucene 풀텍스트 인덱스를 갖습니다. 읽기를 레플리카로 분산(round_robin)하면 복제가 이미 메모리에 올려둔 인덱스 사본이 놀지 않고 검색을 함께 처리해 읽기 처리량과 검색 병렬도가 올라갑니다. 설정과 무관하게 읽기 페일오버는 항상 동작해, 데이터 노드 하나가 불통이어도 SELECT · 풀텍스트 · 벡터 검색이 살아남은 레플리카에서 재시도됩니다.

벡터 인덱스 메모리 예산 + 프리워밍

HNSW 그래프는 힙에 통째로 올라가므로 노드별 상주 예산(기본: 최대 힙의 40%)을 두고, 초과하면 가장 오래 쓰지 않은 인덱스를 사이드카로 flush 한 뒤 내립니다 — 쓰기 유실 없이 OOM 대신 재적재 비용만 지불합니다. 재시작 후에는 리더 코디네이터가 벡터 · 풀텍스트 인덱스를 미리 열어두어, 첫 검색이 복호화 · 역직렬화 비용을 사용자 지연에 물지 않습니다.

활용 사례

Graph RAG · 에이전트 retrieval

Hard Filter (SQL WHERE) + 시맨틱/키워드 하이브리드 검색 + 그래프 기반 재순위화(구조적 — 그래프 근접도) + 사실 검증을 한 SELECT 으로. 시스템 4종(Postgres + Pinecone + ES + Neo4j) 을 묶지 않고 한 데이터베이스에서 RAG · 에이전트 retrieval 을 처리합니다.

지식 그래프 · 온톨로지 저장소

엔티티와 관계를 일반 테이블로 모델링하고 BFS 트래버설 + PageRank · Personalized PageRank 로 분석합니다. 별도 그래프 DB 운영 없이 RBAC · 트랜잭션 · 백업이 그대로 적용됩니다.

OLTP + 분석의 통합

OLTP 트랜잭션을 Iceberg 로 자동 CDC 동기화해 Ontul · Trino · Spark 가 같은 데이터를 분석합니다. 별도 ETL · CDC 파이프라인이 필요 없습니다.

대규모 분산 DB · 실시간 인입

수평 샤딩 + 자동 밸런싱 + Kafka 직결 인입으로 페타바이트급 트랜잭션 워크로드를 분산 처리합니다.

위치 기반 · 지리 RAG

PostGIS 호환 공간 함수와 벡터 임베딩을 결합해 위치 기반 추천 · GIS · 지리 RAG 를 단일 엔진에서.

NeorunBase 도입을 검토하고 계신가요?

OLTP · Vector DB · FTS · Graph DB · Spatial · DR — One ACID SQL Engine.

벡터 DB · 그래프 DB · 다중 사이트 DR 까지 포함한 멀티모달 데이터를 PostgreSQL 호환 한 엔진에서.