개념 — SKU·풀·주문·체결

Rerent 은 다섯 가지 원시 개념으로 돌아갑니다.

SKU — 대체 가능성의 경계

SKU 는 「서로 바꿔 써도 되는 하드웨어」의 단위입니다. 가속기(H100/H200/B200…)·GPU 수·메모리·네트워크(InfiniBand/RoCE)·지역·존이 같으면 같은 SKU 예요. 같은 SKU 안에서는 특정 기계를 고를 수 없고, 어느 공급자의 노드든 배정될 수 있습니다. 주문은 항상 SKU 하나에 고정되고, SKU 마다 오더북이 따로 있어요.

속성
aliasicn-1-h100
accelerator / gpus_per_node / gpu_memory_gbh100 / 8 / 80
interconnectib · roce · none
region / zonekr / icn-1

풀 — 시간별 노드 수 스케줄

풀은 「언제 몇 노드를 갖고 있나」를 기록하는 통입니다. 매수가 체결되면 그 구간의 노드 수가 늘고, 매도가 체결되면 줄어요. 풀은 어느 주문이 어느 시간을 만들었는지는 기억하지 않고 순 합계만 갖습니다(추적은 주문 ID 로). 팀·프로젝트별로 풀을 여러 개 두고 사이에 시간을 이전할 수 있어요.

공급자가 클러스터를 등록하면 공급 풀 이 생기고, 공급 기간의 노드 수만큼 할당이 담깁니다. 공급자는 이 풀에서 팝니다. 구매자는 시장 풀 에서 사고 되팝니다. 둘은 같은 원장·같은 오더북을 씁니다.

주문 — 사겠다 / 팔겠다

항목
sidebuy(매수·bid) 또는 sell(매도·ask)
sku고정할 SKU
start_at / end_at배송 윈도우(반열림 [start, end)). 분 단위 정렬, 시작은 최대 5분 과거, 종료는 최대 1년 뒤
node_count노드 수
limit_price₩/노드·시간 정수. 매수는 최대, 매도는 최저
allow_standing즉시 다 채워지지 않으면 호가에 남겨 둘지(기본 false = 즉시 체결 아니면 취소)
allow_partial요청의 일부(노드 수·시간)만 채워져도 될지(기본 false = 전량만)

상태: pending → filled · partially_filled · standing · cancelled · rejected. standing 주문은 시간이 지나면 지난 구간이 떨어져 나가고(남은 구간만 매칭), 윈도우가 다 지나면 cancelled 로 끝나요.

체결 — 먼저 올라온 가격으로

매칭 엔진은 새 주문(taker)이 들어올 때 반대편 열린 주문(maker)을 가격 우선 → 시간 우선 으로 훑고, 두 주문의 시간 교집합 × min(노드 수) 만큼 체결합니다. 체결가는 먼저 책에 올라온 주문(maker)의 지정가 예요.

  • 매도 호가 ₩24,000 이 있고 최대 ₩30,000 매수가 들어오면 → ₩24,000 에 체결
  • 매수 호가 ₩9,000 이 먼저 있고 최저 ₩7,000 매도가 들어오면 → ₩9,000 에 체결

전량 조건(allow_partial=false) 주문은 요청 전부가 채워질 때만(여러 상대 주문 합산 가능) 체결되고, 전량 조건 매도 주문은 통째로만 소비됩니다.

홀드와 정산

  • 매수 주문을 넣으면 최대 가격 × 남은 노드·시간 이 크레딧에서 홀드돼요. 가용 잔액 = 잔액 − 홀드.
  • 매도 주문을 넣으면 그 시간의 풀 할당이 예약돼 같은 시간을 두 번 팔 수 없어요.
  • 체결되면 한 트랜잭션에서: 매수자 크레딧 −체결가, 매도자 크레딧 +(체결가 − 수수료), 매수 풀 +할당, 매도 풀 −할당, 체결 기록, 원장 2건, 공개 체결 기록.

배정 — 실제 노드

시작 시각 48시간 전부터 스케줄러가 SKU 별로 풀 수요에 물리 노드를 붙여요. 같은 풀이 연속 시간을 보유하면 같은 노드를 유지합니다(sticky). 팔아서 할당이 줄면 배정도 그 시각에 끝나요(우선순위 낮은 인스턴스가 있는 노드부터).

인스턴스 — 실제로 도는 것

배정된 노드 위에 뜨는 내 컨테이너 가 인스턴스예요(노드 1대 = 인스턴스 1개 · GPU 전부). 도커 이미지·시작 스크립트·환경변수·포트·우선순위를 정해 만들면, 시작 시각에 노드에서 뜨고 배정이 끝나면 파기돼요. SSH 모드는 조직 SSH 공개키로 컨테이너 root 에 접속하고, 커스텀 모드는 내 명령을 주 프로세스로 돌려요. 풀의 자동 시작 템플릿을 켜 두면 노드가 배정될 때 손대지 않아도 떠요. 공급자 노드에는 실행층(onpod) 에이전트만 깔려 있고, 구매자는 호스트 OS 를 만지지 않아요. 자세히: 인스턴스