2.X/7. Administration Monitoring Deployment

7-2-2. Java Virtual Machine

drscg 2017. 9. 23. 12:33

You should always run the most recent version of the Java Virtual Machine (JVM), unless otherwise stated on the Elasticsearch website. Elasticsearch, and in particular Lucene, is a demanding piece of software. The unit and integration tests from Lucene often expose bugs in the JVM itself. These bugs range from mild annoyances to serious segfaults, so it is best to use the latest version of the JVM where possible.

Elasticsearch website에 언급되지 않는 한, 항상 최신 버전의 JVM(Java Virtual Machine)으로 실행해야 한다. Elasticsearch, 특히 Lucene은 매우 까다로운 S/W이다. Lucene의 단위/통합 테스트는 가끔 JVM 자체의 버그를 발견한다. 이러한 버그는 가벼운 골칫거리에서 심각한 세그먼테이션 폴트(segfault)까지 다양하다. 따라서, 가능한 한 JVM의 최신 버전을 사용하는 것이 가장 좋은 방법이다.

Java 8 is preferred over Java 7. Java 6 is no longer supported.

Java 8이 Java 7보다 더 좋다. Java 6은 더 이상 지원되지 않는다.

Either Oracle or OpenJDK are acceptable. They are comparable in performance and stability.

Oracle, OpenJDK 모두 가능하다. 이들은 성능과 안정성에서 비슷하다.

If your application is written in Java and you are using the transport client or node client, make sure the JVM running your application is identical to the server JVM. In few locations in Elasticsearch, Java’s native serialization is used (IP addresses, exceptions, and so forth). Unfortunately, Oracle has been known to change the serialization format between minor releases, leading to strange errors. This happens rarely, but it is best practice to keep the JVM versions identical between client and server.

응용프로그램이 Java로 만들어졌고, transport client나 node client를 사용한다면, 응용프로그램이 동작하는 JVM과 서버 JVM은 동일해야 한다. Elasticsearch에서는 Java의 기본 직렬화(serialization)를 사용하는 곳이 몇 군데(IP address, exceptions 등) 있다. 불행히도, Oracle은, 이상한 에러가 나타나는, minor releases 사이에서, 직렬화 형식의 변형이 있다고 알려져 있다. 이것은 드물게 발생하지만, 클라이언트와 서버 사이의 JVM 버전을 동일하게 유지하는 것이 가장 좋다.