ใน Elasticsearch 7.10 นั้น มีความสามารถเรื่องการจัดการข้อมูล
ให้เหมาะสมกับการใช้งานมากขึ้น
แน่นอนว่า มันกระทบต่อ Node role หรือบทบาทหน้าที่การทำงาน
ของแต่ละ node ใน cluster ด้วยเช่นกัน
สำหรับใครที่ลอง start Elasticsearch จะพบว่า
ค่า default ของ node มี role ต่าง ๆ ดังนี้ cdhilmrstw
อาจจะทำให้ตกใจได้ว่า มันคืออะไร อย่างไร ?
จึงทำการสรุปแล้วของ node role ไว้นิดหน่อย
เริ่มจากความหมายของ Node role แต่ละตัว
- c = cold node สำหรับใช้งานกับ Data tier
- d = data node สำหรับเก็บข้อมูล
- h = hot node สำหรับใช้งานกับ Data tier
- i = ingest node สำหรับทำงาน ingest
- l = machine learning node สำหรับการใช้งาน feature ของ ML
- m = master-eligible node สำหรับ node ที่มีสิทธิ์เป็น master ทำหน้าที่ดูแลการทำงานของ cluster
- r = remote cluster client node สำหรับการติดต่อข้าม cluster
- s = content node สำหรับใช้งานกับ Data tier
- t = transform node สำหรับทำการแปลงข้อมูล ให้สามารถวิเคราะห์ได้ง่ายขึ้น
- w = warm node สำหรับใช้งานกับ Data tier
- v = voting-only node สำหรับใช้งานการ voting เช่น การเลือก master node เป็นต้น
- – = coordinating node only สำหรับใช้รับ request ของการค้นหาข้อมูล เพื่อกระจายการทำงานไปยัง node ที่เก็บข้อมูล
แค่นี้ก็จำไม่ไหวกันแล้ว เยอะจริง ๆ !!
การแยก Node Role ใน Elasticsearch นั้นมีไว้สำหรับ
การกำหนดบทบาทหน้าที่การทำงานของแต่ละ node ว่าควรทำอะไร แต่ละ node ควรทำหน้าที่อย่างใดอย่างหนึ่งไปเลย เพื่อให่ง่ายต่อการดูแลรักษา เพื่อให้ง่ายต่อการ scale เพื่อให้ง่ายต่อการกำหนด spec ของ hardware ที่ต้องใช้งานทั้ง CPU, Memory และ Storage การกำหนด node role จะเหมาะสมกับ cluster ที่มีขนาดใหญ่ขึ้น
ซึ่งค่า default นั้น ทุก ๆ node จะเป็น
- master
- data
- ingest
- Machine learning ถ้าเปิดใช้งาน
- transform สำหรับ data node