선택적 HTTP 후행 헤더를 사용하여 다중 파트 Gremlin 응답 활성화 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

선택적 HTTP 후행 헤더를 사용하여 다중 파트 Gremlin 응답 활성화

기본적으로 Gremlin 쿼리에 대한 HTTP 응답은 단일 JSON 결과 세트로 반환됩니다. 결과 세트가 매우 큰 경우 이로 인해 DB 인스턴스에서 OutOfMemoryError 예외가 발생할 수 있습니다.

단, 청크 응답(여러 부분으로 나누어 반환되는 응답)을 활성화할 수 있습니다. 요청에 전송 인코딩(TE) 후행 헤더(te: trailers)를 포함하면 됩니다. TE 헤더에 대한 자세한 내용은 TE 요청 헤더 ) MDN 페이지를 참조하세요.

응답이 여러 파트로 반환되면 첫 번째 파트가 HTTP 상태 코드 200 (OK)로 도착하기 때문에 첫 번째 파트가 수신된 후 발생하는 문제를 진단하는 것이 어려울 수 있습니다. 이후에 오류가 발생하면 일반적으로 메시지 본문에 손상된 응답이 포함되며, 이 메시지 본문의 끝에 Neptune이 오류 메시지를 추가합니다.

이러한 종류의 장애를 더 쉽게 감지하고 진단할 수 있도록 Neptune은 모든 응답 청크의 후행 헤더에 2개의 새로운 헤더 필드도 포함합니다.

  • X-Neptune-Status   –   응답 코드와 짧은 이름이 차례로 들어 있습니다. 예를 들어, 성공하면 후행 헤더는 X-Neptune-Status: 200 OK와 같습니다. 장애가 발생한 경우 응답 코드는 X-Neptune-Status: 500 TimeLimitExceededException과 같은 Neptune 엔진 오류 코드 중 하나가 됩니다.

  • X-Neptune-Detail   –   요청이 성공하면 비어 있습니다. 오류가 발생하는 경우 JSON 오류 메시지가 포함됩니다. HTTP 헤더 값에는 ASCII 문자만 허용되므로 JSON 문자열이 URL 인코딩됩니다.

참고

Neptune은 현재 청크 응답의 gzip 압축을 지원하지 않습니다. 클라이언트가 청크 인코딩과 압축을 동시에 요청하는 경우 Neptune은 압축을 건너뜁니다.