diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/outside-feedback/feedback-001.md | 57 | ||||
| -rw-r--r-- | docs/outside-feedback/feedback-002.md | 25 |
2 files changed, 82 insertions, 0 deletions
diff --git a/docs/outside-feedback/feedback-001.md b/docs/outside-feedback/feedback-001.md new file mode 100644 index 0000000..c4f99f4 --- /dev/null +++ b/docs/outside-feedback/feedback-001.md @@ -0,0 +1,57 @@ +# Yeowoo (Pure / aup) 발전 로드맵 및 실행 계획 + +작성일: 2026-09-26 +작성자: 문선우 +대상: Pure / aup 코어 로드맵 및 아키텍처 연계 검토 + +--- + +## 1. 현재 달성 상태 요약 (`000` ~ `077`) + +- **코어 런타임 & 스토리지 엔진**: + - `PURETRE2`: 단 1번의 `fdatasync`로 충돌 안전성(Crash-safety)을 보장하는 단일 파일 불변 B/Radix 트리 엔진 완성. (커밋 지연 2.4ms, 저널링 오버헤드 제거) + - `pure-serve`: `epoll` + 코어별 `SO_REUSEPORT` 샤딩 기반 고성능 HTTP/1.1 호스트. +- **실증 벤치마크 (Raspberry Pi 5, `077`)**: + - **내구성 쓰기(Durable POST)**: 초당 13,692건 (axum 180건, drogon 172건 대비 **약 76배**). + - **JSON 읽기**: 144.8k req/s (C++ 끝판왕 Drogon 144.5k와 동급, axum 대비 52% 우위). + - **피크 메모리(RSS)**: **3.4 MiB** (Drogon 11.6 MiB, axum 6.4 MiB 대비 최소). + - **추상화 제거**: 복잡한 라우터·DB·직렬화 코드 없이 `aup` 명세 22줄만으로 서비스 구현 입증. + +--- + +## 2. 단기 핵심 실행 과제 (Short-term / In Progress) + +1. **Vectored Loan (무복사 익스텐트 대여) 완성** + - 대용량 파일 서빙 시 런타임 복사(`memcpy`) 없이, 스토리지 매핑 익스텐트를 `writev` 벡터 버퍼로 직통 연결. + - 비동기 티켓 수명 종료 시 런타임 자원 자동 회수 검증. +2. **저장과 적용의 겹치기 (I/O 파이프라이닝)** + - 소유자 스레드가 디스크 `fdatasync` 대기 중 멈추지 않도록, 디스크 쓰기를 전용 I/O 스레드/큐로 분리하고 다음 배치 연산을 선행 처리(Double Buffering). +3. **읽기 독립화 (MVCC / 버전 읽기)** + - 쓰기 동기화 중에도 연결 스레드가 이전 커밋된 저장소 매핑을 락 없이 직접 읽을 수 있도록 분리. +4. **JSON 본문 역직렬화 확장** + - 단순 단일 필드 외 복수 text 필드 및 중첩 JSON 요청을 제로카피 오프셋 스캔으로 수신. + +--- + +## 3. 중기 확장 과제 (레거시 서버·런타임 스택 전면 대체) + +1. **비동기 아웃바운드 HTTP/소켓 클라이언트** + - 수신(Inbound) 전용을 넘어, 외부 서드파티 API(웹훅, 클라우드, 결제) 호출을 0-copy 티켓 기반으로 수행하는 비동기 클라이언트 스택 설계. +2. **동적 스케줄링 & 멀티 샤딩 (`--threads auto`)** + - `sysconf(_SC_NPROCESSORS_ONLN)` 기반 기기 코어 수 자동 감지. + - 키 해시 기반 단일 소유자 파티셔닝(Actor-style Core Sharding)으로 쓰기 병목 선형 확장. +3. **단일 심볼(Symbol) 벡터 규격** + - 폰트 글리프와 UI 아이콘을 통합하는 초경량 바이너리 벡터 포맷 설계. + - SVG XML 파싱 오버헤드를 배제하고 GPU 커맨드 버퍼로 1:1 직결. + +--- + +## 4. 장기 비전 (Yeowoo 생태계 & 독자 런타임 OS) + +1. **Vega 종합 인터페이스 라이브러리**: + - 단순 화면 렌더러를 넘어 디스플레이, 터치·제스처 입력, 오디오, 렌더 서페이스를 총괄하는 통합 인터페이스 계층. + - 가상 DOM이나 거대 씬 그래프 없이, `aup` 뷰 상태 변경 바이트를 화면 및 입출력 버퍼로 직통 바인딩. +2. **E2EE 초저지연 메신저**: + - 메모리 포렌식 면역(Zeroize 슬롯), 하드웨어 암호화(ChaCha20-Poly1305) 직결 P2P 통신. +3. **Ray Kernel / ArtOS**: + - 불필요한 레거시 POSIX/C 런타임 누더기를 걷어내고, 하드웨어 실리콘과 Pure 런타임이 직결되는 궁극의 미니멀 OS. diff --git a/docs/outside-feedback/feedback-002.md b/docs/outside-feedback/feedback-002.md new file mode 100644 index 0000000..ccdbfa8 --- /dev/null +++ b/docs/outside-feedback/feedback-002.md @@ -0,0 +1,25 @@ +# 현재 상태 + +- commit eca213a까지 진행 + +# 필요한 방향 + +1. 이론적/알고리즘적 신규성 한계: +- COW(Copy-On-Write) 트리, 단일 파일 스토리지, 태그 기반 헤드 레코드 배치는 기존 분산/스토리지 기법(LMDB, Bitcask, Arkeion 등)의 엔지니어링 최적화에 가까움. +- 뛰어난 시스템 최적화지, 기존에 없던 새로운 데이터 자료구조나 알고리즘은 없음. +- 안정성을 추구하는 것은 맞지만, 기술적 신규성 및 독창성 요소 필요. (기회가 되면 단계적 확장 검토) + +2. 범용성의 부재: +- SQLite나 Postgres처럼 임의의 복잡한 쿼리, 다중 테이블 조인, 범용 트랜잭션을 다루는 게 아님. +- aup가 정의한 단일 소유자 반응형 상태 모델에 최적화된 특수 목적 런타임이기 때문에 특정 워크로드(키-값 기반 단일 상태 전이)에서만 빠른 것이라는 규격을 깨야함. + +3. 그래픽스 트레이드 오프: +- FreeType을 버리고 단일 심볼 벡터로 간 건 혁신적이지만, 역으로 복잡한 텍스트 셰이핑(HarfBuzz 같은 다국어 합자/커닝 처리)이나 접근성(Accessibility) API는 포기한거임. +- 상용 OS 레벨의 범용 GUI 툴킷으로 가기엔 아직 갈 길이 멀음. + +4. 시스템 확장 및 성능 목표: +- 실사용 환경 및 상용화 생태계(Ray Kernel, ArtOS, Bell Design System) 확장을 위해 범용성과 사용성의 균형 유지 필요. +- 로우레벨 시스템 최적화와 함께 상위 계층에서의 개발 편의성 및 DX 고려. +- QUIC/TLS의 무거운 상태 머신 오버헤드를 극복할 수 있는 초경량 단일 패킷/원시 소켓 기반의 독립 전송 프로토콜(Pure Link) 설계 및 검증 필요. +- 모바일 및 엣지 환경에 최적화된 경량 OS 및 고성능 렌더링 파이프라인 지속 검토. +- 셰이더 및 포스트 프로세싱 컴퓨팅, 네이티브 렌더링 등 UI/NUI 프론트엔드 최적화 추진. |
