อ่าน 6 นาที
เซิร์ฟเวอร์ Couchbase
Couchbase Server ซึ่งเดิมรู้จักกันในชื่อ Membase เป็นซอฟต์แวร์แพ็กเกจ ฐานข้อมูล แบบ NoSQL หลายโมเดลแบบ กระจาย ( สถาปัตยกรรม แบบไม่มีการแชร์ทรัพยากร ) ที่มี ซอร์สโค้ดให้ใช้งานได้ [...
เซิร์ฟเวอร์ Couchbase
| เซิร์ฟเวอร์ Couchbase | |
|---|---|
| นักพัฒนา | บริษัท Couchbase |
| ปล่อย | สิงหาคม 2553 |
| เวอร์ชันเสถียร | 8.0.0 / 21 ตุลาคม 2025 |
| เขียนเป็น | C++ , Erlang , C , [ 1 ] Go , Java |
| พิมพ์ | ฐานข้อมูลแบบหลายโมเดล , ฐานข้อมูลแบบคีย์-ค่าแบบกระจาย , ฐานข้อมูลแบบเน้นเอกสาร , ฐานข้อมูล JSON |
| ใบอนุญาต | BSL 1.1, [ 2 ]ฟรีเมียม |
| เว็บไซต์ | www.couchbase.com |
| ที่เก็บข้อมูล |
|

Couchbase Serverซึ่งเดิมรู้จักกันในชื่อMembaseเป็นซอฟต์แวร์แพ็กเกจฐานข้อมูล แบบ NoSQL หลายโมเดลแบบกระจาย ( สถาปัตยกรรมแบบไม่มีการแชร์ทรัพยากร ) ที่มี ซอร์สโค้ดให้ใช้งานได้[ 2 ] และได้รับการปรับให้เหมาะสมสำหรับแอปพลิเคชันแบบโต้ตอบ แอปพลิเคชันเหล่านี้อาจให้บริการ ผู้ใช้พร้อมกัน จำนวนมาก โดยการสร้าง จัดเก็บ ดึงข้อมูล รวบรวม จัดการ และนำเสนอข้อมูล เพื่อรองรับความต้องการของแอปพลิเคชันประเภทนี้ Couchbase Server ได้รับการออกแบบมาเพื่อให้สามารถเข้าถึงข้อมูลแบบคีย์-ค่า หรือเอกสาร JSON ได้อย่างง่ายดาย มีความหน่วงต่ำ และมีปริมาณงานที่รองรับได้สูง ได้รับการออกแบบให้สามารถจัดกลุ่มได้ตั้งแต่เครื่องเดียวไปจนถึงการใช้งานขนาดใหญ่ที่ครอบคลุมหลายเครื่อง
Couchbase Server ให้ความเข้ากัน ได้ของโปรโตคอลไคลเอ็นต์กับmemcached [ 3 ]แต่เพิ่มการคงอยู่ ของดิสก์ การจำลองข้อมูล การกำหนดค่าคลัสเตอร์แบบเรียลไท ม์การปรับสมดุล และการเช่าหลายรายพร้อม การแบ่งพาร์ติ ชัน ข้อมูล
ประวัติผลิตภัณฑ์
Membase ได้รับการพัฒนาโดยผู้นำหลายคนของ โครงการ memcachedซึ่งได้ก่อตั้งบริษัท NorthScale เพื่อพัฒนาระบบจัดเก็บข้อมูลแบบคีย์-ค่าที่มีความเรียบง่าย ความเร็ว และความสามารถในการขยายขนาดของ memcached รวมถึงความสามารถในการจัดเก็บ การคงอยู่ และการสืบค้นข้อมูลของฐานข้อมูลด้วย ซอร์สโค้ดดั้งเดิมของ membase ได้รับการบริจาคโดย NorthScale และผู้ร่วมสนับสนุนโครงการอย่างZyngaและNaver Corporation (ซึ่งในขณะนั้นรู้จักกันในชื่อ NHN) ให้กับโครงการใหม่บน membase.org ในเดือนมิถุนายน 2010 [ 4 ]
เมื่อวันที่ 8 กุมภาพันธ์ 2554 ผู้ก่อตั้งโครงการ Membase และ Membase, Inc. ประกาศการควบรวมกิจการกับ CouchOne (บริษัทที่มีผู้เล่นหลักหลายคนอยู่เบื้องหลังCouchDB ) พร้อมกับการควบรวมโครงการที่เกี่ยวข้อง บริษัทที่ควบรวมกันมีชื่อว่าCouchbase, Inc.ในเดือนมกราคม 2555 Couchbase ได้เปิดตัว Couchbase Server 1.8 ในเดือนกันยายน 2555 Orbitzกล่าวว่าได้เปลี่ยนระบบบางส่วนไปใช้ Couchbase [ 5 ] ในเดือนธันวาคม 2555 Couchbase Server 2.0 (ประกาศในเดือนกรกฎาคม 2554) ได้ถูกปล่อยออกมา ซึ่งรวมถึง ที่เก็บเอกสาร JSON ใหม่ การจัดทำดัชนีและการสืบค้นMapReduce แบบเพิ่มทีละน้อย และการจำลองแบบข้ามศูนย์ข้อมูล[ 6 ] [ 7 ]
สถาปัตยกรรม
แต่ละโหนดของ Couchbase ประกอบด้วยบริการข้อมูล บริการดัชนี บริการค้นหา และส่วนประกอบตัวจัดการคลัสเตอร์ ตั้งแต่เวอร์ชัน 4.0 เป็นต้นไป บริการทั้งสามสามารถกระจายไปทำงานบนโหนดที่แยกต่างหากของคลัสเตอร์ได้หากจำเป็น ตามทฤษฎีCAP ของ Eric Brewer แล้ว Couchbase โดยปกติจะเป็นระบบประเภท CP ซึ่งหมายความว่าให้ความสอดคล้องและความทนทานต่อการแบ่งพาร์ติชันหรือสามารถตั้งค่าเป็นระบบ AP ที่มีหลายคลัสเตอร์ได้
ผู้จัดการคลัสเตอร์
ตัวจัดการคลัสเตอร์ทำหน้าที่ควบคุมการกำหนดค่าและพฤติกรรมของเซิร์ฟเวอร์ทั้งหมดในคลัสเตอร์ Couchbase โดยจะกำหนดค่าและควบคุมพฤติกรรมระหว่างโหนด เช่น การจัดการสตรีมการจำลองข้อมูลและการปรับสมดุล นอกจากนี้ยังให้ฟังก์ชันการรวบรวมเมตริกและฟังก์ชันฉันทามติสำหรับคลัสเตอร์ และ อินเทอร์เฟซการจัดการคลัสเตอร์ แบบ RESTfulตัวจัดการคลัสเตอร์ใช้ภาษาโปรแกรม Erlangและแพลตฟอร์ม Open Telecom Platform
การจำลองแบบและการสำรองข้อมูลเมื่อเกิดข้อผิดพลาด
การจำลองข้อมูลภายในโหนดของคลัสเตอร์สามารถควบคุมได้ด้วยพารามิเตอร์หลายตัว ในเดือนธันวาคม พ.ศ. 2555 ได้มีการเพิ่มการสนับสนุนการจำลองระหว่างศูนย์ข้อมูลที่ แตกต่างกัน [ 6 ]
ผู้จัดการข้อมูล
ตัวจัดการข้อมูลจะจัดเก็บและเรียกค้นเอกสารเพื่อตอบสนองต่อการดำเนินการข้อมูลจากแอปพลิเคชัน โดยจะเขียนข้อมูลลงดิสก์แบบอะซิงโครนัสหลังจากยืนยันกับไคลเอ็นต์ ในเวอร์ชัน 1.7 และเวอร์ชันต่อมา แอปพลิเคชันสามารถเลือกที่จะตรวจสอบให้แน่ใจว่าข้อมูลถูกเขียนไปยังเซิร์ฟเวอร์มากกว่าหนึ่งเครื่องหรือลงดิสก์ก่อนที่จะยืนยันการเขียนกับไคลเอ็นต์ พารามิเตอร์จะกำหนดอายุของรายการที่มีผลต่อเวลาที่ข้อมูลจะถูกจัดเก็บ และวิธีการจัดการหน่วยความจำสูงสุดและการย้ายข้อมูลจากหน่วยความจำหลักไปยังดิสก์ ระบบรองรับชุดการทำงานที่มีขนาดใหญ่กว่าโควต้าหน่วยความจำต่อ "โหนด" หรือ "บัคเก็ต" ระบบภายนอกสามารถสมัครรับข้อมูลจากสตรีมข้อมูลที่กรองแล้ว ซึ่งรองรับตัวอย่างเช่นการจัดทำดัชนีการค้นหาข้อความเต็มการวิเคราะห์ข้อมูลหรือการเก็บถาวร[ 8 ]
รูปแบบข้อมูล
เอกสารเป็นหน่วยพื้นฐานที่สุดในการจัดการข้อมูลใน Couchbase Server เอกสารจะถูกจัดเก็บในรูปแบบเอกสาร JSON โดยไม่มีโครงสร้างข้อมูลที่กำหนดไว้ล่วงหน้า นอกจากนี้ยังสามารถจัดเก็บเอกสารที่ไม่ใช่ JSON ได้ใน Couchbase Server (เช่น ข้อมูลไบนารี ค่าที่ถูกแปลงเป็นรูปแบบอนุกรม XML เป็นต้น)
แคชที่จัดการโดยวัตถุ
Couchbase Server มี แคชแบบมัลติเธรดที่จัดการโดยอ็อบเจ็กต์ในตัวซึ่งใช้งาน API ที่เข้ากันได้กับ memcached เช่น get, set, delete, append, prepend เป็นต้น
เครื่องจัดเก็บข้อมูล
Couchbase Server ใช้การออกแบบการจัดเก็บข้อมูลแบบเพิ่มข้อมูลต่อท้าย (tail-append) ซึ่งทนทานต่อความเสียหายของข้อมูล ตัวจัดการหน่วยความจำไม่เพียงพอ (OOM killer)หรือไฟฟ้าดับกะทันหัน ข้อมูลจะถูกเขียนลงในไฟล์ข้อมูลในลักษณะเพิ่มข้อมูลต่อท้ายเท่านั้น ซึ่งช่วยให้ Couchbase สามารถเขียนข้อมูลแบบเรียงลำดับเป็นส่วนใหญ่สำหรับการอัปเดต และให้รูปแบบการเข้าถึงที่เหมาะสมที่สุดสำหรับการอ่าน/เขียนดิสก์
ผลงาน
การทดสอบประสิทธิภาพที่ดำเนินการโดยAltorosในปี 2012 ได้เปรียบเทียบ Couchbase Server กับเทคโนโลยีอื่นๆ[ 9 ] Cisco Systemsได้เผยแพร่การทดสอบประสิทธิภาพที่วัดความหน่วงและปริมาณงานของ Couchbase Server ด้วยภาระงานแบบผสมในปี 2012 [ 10 ]
การออกใบอนุญาตและการสนับสนุน
Couchbase Server เป็นเวอร์ชันที่บรรจุของ เทคโนโลยี ซอฟต์แวร์โอเพนซอร์ส ของ Couchbase และมีให้ใช้งานในเวอร์ชันชุมชนที่ไม่มีการแก้ไขข้อบกพร่องล่าสุดภายใต้ใบอนุญาต Apache 2.0 [ 11 ]และเวอร์ชันสำหรับการใช้งานเชิงพาณิชย์[ 12 ] Couchbase Server มีให้ใช้งานสำหรับระบบปฏิบัติการ Ubuntu, Debian, Red Hat, SUSE, Oracle Linux, Microsoft Windowsและ macOS
Couchbase รองรับชุดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ (SDK) สำหรับภาษาโปรแกรมต่างๆ ได้แก่. NET , PHP , Ruby , Python , C , Node.js , Java , GoและScala
SQL++
ภาษาสอบถามที่เรียกว่า SQL++ (เดิมเรียกว่า N1QL) ใช้สำหรับจัดการข้อมูล JSON ใน Couchbase เช่นเดียวกับที่ SQL จัดการข้อมูลใน RDBMS โดยมีคำสั่ง SELECT, INSERT, UPDATE, DELETE, MERGE สำหรับดำเนินการกับข้อมูล JSON มีการประกาศครั้งแรกในเดือนมีนาคม 2015 ในชื่อ "SQL สำหรับเอกสาร" [ 13 ]
แบบจำลองข้อมูล SQL++ เป็นรูปแบบที่ไม่ใช่รูปแบบปกติอันดับแรก (N1NF) โดยรองรับแอตทริบิวต์แบบซ้อนกันและการทำให้เป็นรูปแบบปกติ แบบเน้นโดเมน นอกจากนี้ แบบจำลองข้อมูล SQL++ ยังเป็นซูเปอร์เซตที่เหมาะสมและ เป็นการ ขยายความทั่วไปของแบบจำลองเชิงสัมพันธ์ อีกด้วย
ตัวอย่าง
{ "อีเมล" : "[email protected]" , "เพื่อน" : [ { "ชื่อ" : "Pavan" }, { "ชื่อ" : "Ravi" } ] }- เช่น การสอบถาม
SELECT*FROM`bucket`WHEREemailLIKE"%@example.org";
- การค้นหาอาร์เรย์
SELECT*FROM`bucket`WHEREANYxINfriendsSATISFIESx.name="Pavan"END;
Couchbase Mobile
Couchbase Mobile / Couchbase Lite เป็นฐานข้อมูลบนมือถือที่ให้บริการการจำลองข้อมูล[ 14 ]
Couchbase Lite (เดิมชื่อ TouchDB) มีไลบรารีพื้นฐานสำหรับฐานข้อมูล NoSQL แบบออฟไลน์ที่มีกลไกการจำลอง แบบ peer-to-peerหรือclient-server ในตัว [ 15 ] Sync Gatewayจัดการการเข้าถึงและการซิงโครไนซ์ข้อมูลอย่างปลอดภัยระหว่าง Couchbase Lite และ Couchbase Server [ 16 ]
Couchbase Lite เพิ่มการสนับสนุนการค้นหาเวกเตอร์ในเวอร์ชัน 3.2 [ 17 ]ทำให้รองรับการค้นหาเวกเตอร์จากคลาวด์ไปยังอุปกรณ์ปลายทางในแอปพลิเคชันมือถือ
การใช้งาน
Couchbase เริ่มต้นจากการพัฒนาต่อยอดจากMemcachedซึ่งเป็นแคชข้อมูลความเร็วสูง และสามารถใช้แทน Memcached ได้โดยตรง ทำให้แอปพลิเคชัน Memcached มีความพร้อมใช้งานสูงโดยไม่ต้องเปลี่ยนแปลงโค้ด[ 18 ]
Couchbase ใช้เพื่อรองรับแอปพลิเคชันที่ต้องการโมเดลข้อมูลที่ยืดหยุ่น ปรับขนาดได้ง่าย และประสิทธิภาพสูงอย่างสม่ำเสมอ เช่น การติดตามกิจกรรมของผู้ใช้แบบเรียลไทม์ หรือการจัดเก็บการตั้งค่าของผู้ใช้ หรือแอปพลิเคชันออนไลน์[ 19 ]
Couchbase Mobile ซึ่งจัดเก็บข้อมูลในเครื่องบนอุปกรณ์ (โดยปกติคืออุปกรณ์เคลื่อนที่) ใช้ในการสร้างแอปพลิเคชันแบบ "ออฟไลน์เป็นหลัก" ที่สามารถทำงานได้เมื่ออุปกรณ์ไม่ได้เชื่อมต่อกับเครือข่าย และซิงโครไนซ์กับ Couchbase Server เมื่อมีการเชื่อมต่อเครือข่ายอีกครั้ง[ 20 ]
ห้องปฏิบัติการ Catalyst ที่มหาวิทยาลัย Northwesternใช้ Couchbase Mobile เพื่อสนับสนุนแอปพลิเคชัน Evo ซึ่งเป็นโปรแกรมวิจัยเกี่ยวกับวิถีชีวิตที่มีสุขภาพดี โดยใช้ข้อมูลเพื่อช่วยให้ผู้เข้าร่วมปรับปรุงคุณภาพอาหาร กิจกรรมทางกาย ความเครียด หรือการนอนหลับ[ 21 ]
Amadeusใช้ Couchbase ร่วมกับApache Kafkaเพื่อสนับสนุนกลยุทธ์ "เปิดกว้าง เรียบง่าย และคล่องตัว" ในการบริโภคและบูรณาการข้อมูลเกี่ยวกับโปรแกรมสะสมคะแนนสำหรับสายการบินและพันธมิตรการเดินทางอื่นๆ[ 22 ]
เริ่มตั้งแต่ปี 2012 ระบบนี้มีบทบาทในระบบแคชของLinkedIn รวมถึง การแคชแบ็กเอนด์ สำหรับผลิตภัณฑ์ผู้สรรหาและงาน ตัวนับสำหรับกลไกการป้องกันความปลอดภัยสำหรับแอปพลิเคชันภายใน[ 23 ]
ทางเลือกอื่นๆ
สำหรับการแคช Couchbase แข่งขันกับMemcachedและRedisสำหรับฐานข้อมูลเอกสาร Couchbase แข่งขันกับ ระบบ ฐานข้อมูลแบบเอกสาร อื่นๆ โดยทั่วไปจะเปรียบเทียบกับMongoDB , Amazon DynamoDB , Oracle RDBMS , DataStax , Google Bigtable , MariaDB , IBM Cloudant , Redis Enterprise , SingleStoreและMarkLogic [ 24 ] [ 25 ]
บรรณานุกรม
- Brown, MC (22 มิถุนายน 2012). การเริ่มต้นใช้งาน Couchbase Server (ฉบับพิมพ์ครั้งที่ 1). O'Reilly Media. หน้า 88. ISBN 978-1449331061.
- ออสตรอฟสกี้, เดวิด; ฮาจิ, โมฮัมเหม็ด; Rodenski, Yaniv (26 พฤศจิกายน 2558), Pro Couchbase Server 2nd ed. (ฉบับพิมพ์ครั้งที่ 2), Apress , p. 349, ไอเอสบีเอ็น 978-1484211861
- Potsangbam, Henry (23 พฤศจิกายน 2558), Learning Couchbase (ฉบับพิมพ์ครั้งที่ 1), Packt , p. 202, ไอเอสบีเอ็น 978-1785288593
- โวห์รา, ดีปัก (3 สิงหาคม 2558), การพัฒนา Couchbase ระดับมืออาชีพ: แพลตฟอร์ม NoSQL สำหรับองค์กร (ฉบับพิมพ์ครั้งที่ 1), Apress , หน้า 331, ISBN 978-1484214350
- สันกุดี, เจอรัลด์; และคณะ (20 ตุลาคม 2017), N1QL: A Practical Guide (2nd Edition) (2nd ed.), Self-published , p. 423
- Vemulapalli, Sitaram และคณะ (10 พฤษภาคม 2018), คู่มือคุณลักษณะ N1QL ใน Couchbase 5.5: ฉบับพิเศษ , จัดพิมพ์เอง, หน้า 112
- Chamberlin, Don ; (19 ตุลาคม 2018) SQL++ สำหรับผู้ใช้ SQL: บทช่วยสอน, Couchbase
ลิงก์ภายนอก
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เซิร์ฟเวอร์ Couchbase
Couchbase Server ซึ่งเดิมรู้จักกันในชื่อ Membase เป็นซอฟต์แวร์แพ็กเกจ ฐานข้อมูล แบบ NoSQL หลายโมเดลแบบ กระจาย ( สถาปัตยกรรม แบบไม่มีการแชร์ทรัพยากร ) ที่มี ซอร์สโค้ดให้ใช้งานได้ [...
ประวัติผลิตภัณฑ์
Membase ได้รับการพัฒนาโดยผู้นำหลายคนของ โครงการ memcached ซึ่งได้ก่อตั้งบริษัท NorthScale เพื่อพัฒนา ระบบจัดเก็บข้อมูลแบบคีย์-ค่าที่ มีความเรียบง่าย ความเร็ว และความสามารถในการขยายขนาดของ memcached รวมถึงความสามารถในการจัดเก็บ การคงอยู่...
สถาปัตยกรรม
แต่ละโหนดของ Couchbase ประกอบด้วยบริการข้อมูล บริการดัชนี บริการค้นหา และส่วนประกอบตัวจัดการคลัสเตอร์ ตั้งแต่เวอร์ชัน 4.
ผู้จัดการคลัสเตอร์
ตัวจัดการคลัสเตอร์ทำหน้าที่ควบคุมการกำหนดค่าและพฤติกรรมของเซิร์ฟเวอร์ทั้งหมดในคลัสเตอร์ Couchbase โดยจะกำหนดค่าและควบคุมพฤติกรรมระหว่างโหนด เช่น การจัดการสตรีมการจำลองข้อมูลและการปรับสมดุล...