2.X/1. Getting Started

1-01-15. Distributed Nature

drscg 2017. 10. 1. 12:05

At the beginning of this chapter, we said that Elasticsearch can scale out to hundreds (or even thousands) of servers and handle petabytes of data. While our tutorial gave examples of how to use Elasticsearch, it didn’t touch on the mechanics at all. Elasticsearch is distributed by nature, and it is designed to hide the complexity that comes with being distributed.

이 장을 시작하면서, Elasticsearch가 수백 개 또는 수천 개의 서버로 확장할 수 있고, 수 PB의 데이터를 다룰 수 있다고 말했다. tutorial은 Elasticsearch를 어떻게 사용하는지 알려 주었지만, 이런 기법에 대해서는 언급하지 않았다. Elasticsearch는 자연스럽게 분산된다. 그리고 분산의 복잡함을 숨기도록 설계되었다.

The distributed aspect of Elasticsearch is largely transparent. Nothing in the tutorial required you to know about distributed systems, sharding, cluster discovery, or dozens of other distributed concepts. It happily ran the tutorial on a single node living inside your laptop, but if you were to run the tutorial on a cluster containing 100 nodes, everything would work in exactly the same way.

Elasticsearch의 분산 기법은 대체로 명료하다. tutorial에서 분산시스템, Sharding, Cluster Discovery 또는 다른 분산 개념에 대한 지식은 불필요했다. tutorial은 노트북의 single node에서 만족스럽게 동작했다. 하지만, tutorial을 100개의 node를 가진 cluster에서 실행해도, 모든 것이 똑같은 방식으로 정확히 동작할 것이다.

Elasticsearch tries hard to hide the complexity of distributed systems. Here are some of the operations happening automatically under the hood:

Elasticsearch는 분산시스템의 복잡함을 숨기기 위해, 열심히 노력하려 한다 내부의 핵심에서 자동으로 발생하는 동작들의 일부는 아래와 같다.

  • Partitioning your documents into different containers or shards, which can be stored on a single node or on multiple nodes

    document를 single/multi node에 저장된 다른 저장소 혹은 shard 에 분할한다.

  • Balancing these shards across the nodes in your cluster to spread the indexing and search load

    색인이나 검색의 부하를 분산하기 위해, cluster에서 node 전체의 shard의 균형을 조절한다.

  • Duplicating each shard to provide redundant copies of your data, to prevent data loss in case of hardware failure

    데이터의 중복 복사본을 제공하기 위해, H/W 장애로 인한 데이터 손실을 막기 위해, 각 shard를 복제한다.

  • Routing requests from any node in the cluster to the nodes that hold the data you’re interested in

    request를 cluster의 특정 node에서, 원하는 데이터가 존재하는 다른 node로 전달한다.

  • Seamlessly integrating new nodes as your cluster grows or redistributing shards to recover from node loss

    cluster 규모에 따른 새로운 node의 매끄럽게 통합하거나, node 손실을 복구하기 위해 shard를 재 분산한다.

As you read through this book, you’ll encounter supplemental chapters about the distributed nature of Elasticsearch. These chapters will teach you about how the cluster scales and deals with failover (Life Inside a Cluster), handles document storage (Distributed Document Store), executes distributed search (Distributed Search Execution), and what a shard is and how it works (Inside a Shard).

이 책을 읽어 나가면, Elasticsearch의 분산 기반에 대한 새로운 장을 읽게 될 것이다. 그 장에서는 cluster를 확장하는 방법, 장애에 대비하는 방법 (Life Inside a Cluster), document 저장소를 다루는 방법 (Distributed Document Store), 분산 검색을 실행하는 방법 (Distributed Search Execution), 그리고 shard가 무엇이고, 그것이 동작하는 방법(Inside a Shard)을 배울 것이다.

These chapters are not required reading—you can use Elasticsearch without understanding these internals—but they will provide insight that will make your knowledge of Elasticsearch more complete. Feel free to skim them and revisit at a later point when you need a more complete understanding.

이들 장들을 반드시 읽을 필요는 없다. 이런 내부적인 것들을 이해하지 못해도, Elasticsearch를 사용할 수 있다. 하지만 Elasticsearch에 대한 여러분의 지식을 좀 더 완벽하게 만들어 줄, 통찰력을 제공할 것이다. 가볍게 훑어보고 나중에 좀 더 완벽한 이해가 필요하면 다시 읽어 보자.

'2.X > 1. Getting Started' 카테고리의 다른 글

1-01-13. Analytics  (0) 2017.10.01
1-01-14. Tutorial Conclusion  (0) 2017.10.01
1-01-16. Next Steps  (0) 2017.10.01
1-02. Life Inside a Cluster  (0) 2017.10.01
1-02-1. An Empty Cluster  (0) 2017.10.01