C.W.K.
Stream
Lesson 03 of 05 · published

잇기 전에 유료 chunk를 다 저장해

~9 min · chunk-lineage, durability, concatenation

Level 0침묵
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"각 chunk는 따로 결제됐어. 합치려 하기 전에 각각을 durable하게 저장해, 아니면 잇기 실패가 진짜 돈을 태워."

긴 텍스트는 여러 유료 호출이야

긴 구절은 한 요청으로 provider에 가지 않아 — chunk로 쪼개져, 각각 따로 합성돼(쪼개기가 정확히 어떻게 되는지는 트랙 7에서 봐). 모든 chunk가 자기 오디오를 만드는 별개의 유료 호출이야. 그 조각들이 하나의 파일로 concatenate되는 건 마지막에만이야. 그 최종 concatenation은 로컬 muxing 단계고, 로컬 단계는 실패해: 나쁜 container 플래그, 꽉 찬 디스크, 쓰기 중 크래시.

규칙: 합치기 전에 durable하게

Bellows는 반환된 각 chunk를 concatenation 전에 durable lineage로 복사해. 그래서 concat 단계가 실패해도 잃은 건 concat뿐 — 싸고, 로컬이고, 반복 가능한 연산 — 이고 유료 provider 오디오는 아냐, 이미 디스크에 안전하니까. 이게 없으면 메모리에만 있던 chunk가 muxing 실패에 사라지고, 파일 재구축은 모든 chunk를 또 결제하는 걸 뜻해. lineage가 비싼 실패를 사소한 것으로 바꿔.

lineage는 최종 파일보다 오래 살아

chunk를 두는 건 크래시 보험만이 아냐 — 나중 복구랑 Studio reroll을 새 지출 없이 가능하게 하는 거야. 최종 연결 파일은 파생물이고; chunk는 유료 원본이야. 하류에서 뭔가 재구축이 필요하면, durable chunk에서 재구축되고, provider는 이미 한 작업을 다시 하라고 요청받지 않아.

Code

취약한 합치기 전에 유료 chunk가 durable하게 떨어져·python
def synthesize_long(chunks: list[str], binding, settings, job_id: str) -> Audio:
    chunk_paths = []
    for i, chunk_text in enumerate(chunks):
        raw = provider.synthesize(chunk_text, binding, settings)  # PAID, per chunk
        # Save EACH paid chunk durably BEFORE trying to stitch anything.
        path = lineage.save_chunk(job_id, i, raw)
        chunk_paths.append(path)

    # Concatenation is a LOCAL muxing step. If it fails now, it's CHEAP:
    # re-run the concat from the durable chunks -- no chunk is re-synthesized.
    return ffmpeg_concat(chunk_paths)

External links

Exercise

여러 비싼 sub-call을 하고 그 결과를 합치는, 네가 아는 배치 연산을 찾아 — 멀티파트 업로드, map-reduce, 생성된 섹션들로 조립된 문서. 각 비싼 조각이 durable해지는 순간을 짚어. 최종 합치기가 성공한 뒤에만이면, concat 단계의 실패가 뭘 값하는지 묘사하고, durability를 더 앞으로 옮겨.
Hint
'비싸고 원격'이랑 '싸고 로컬' 사이에 선을 그어. 비싼 건 전부, 싸고-취약한 게 돌기 전에 디스크에 있어야 해. 크래시가 결제한 작업을 절대 버릴 수 없어야 해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.