การเปิดตัว DBMS Apache CouchDB 3.0 เชิงเอกสาร

ไปยังสถานที่ การเปิดตัวฐานข้อมูลเชิงเอกสารแบบกระจาย อาปาเช่ โซฟาดีบี 3.0ที่อยู่ในคลาสของระบบ NoSQL แหล่งที่มาของโครงการ การแพร่กระจาย ได้รับอนุญาตภายใต้ Apache 2.0

การปรับปรุงใช้งานใน Apache CouchDB 3.0:

  • การกำหนดค่าเริ่มต้นได้รับการปรับปรุงแล้ว
    เมื่อเริ่มต้น จะต้องกำหนดผู้ใช้ผู้ดูแลระบบ โดยที่เซิร์ฟเวอร์จะยุติการทำงานด้วยข้อผิดพลาด (ช่วยให้คุณสามารถแก้ไขปัญหาในการเปิดเซิร์ฟเวอร์ที่ออกจากการเข้าถึงโดยไม่ตั้งใจโดยไม่มีการตรวจสอบสิทธิ์) ขณะนี้การเรียกไปยัง "/_all_dbs" ต้องใช้สิทธิ์ของผู้ดูแลระบบ และฐานข้อมูลทั้งหมดจะถูกสร้างขึ้นโดยค่าเริ่มต้นเฉพาะผู้ใช้ที่เป็นผู้ดูแลระบบเท่านั้นที่สามารถเข้าถึงได้ (พารามิเตอร์การเข้าถึงสามารถเปลี่ยนแปลงได้ผ่านวัตถุ "_security") ตามค่าเริ่มต้น ห้ามแก้ไขออบเจ็กต์ในฐานข้อมูล _users

  • เพิ่ม ความสามารถในการสร้างฐานข้อมูลแบบเซ็กเมนต์ที่ผู้ใช้กำหนด (แบ่งพาร์ติชัน) ทำให้สามารถกำหนดกฎของคุณเองสำหรับการกระจายเอกสารข้ามเซ็กเมนต์ (ช่วงส่วนแบ่ง) เพิ่มการเพิ่มประสิทธิภาพพิเศษสำหรับฐานข้อมูลที่แบ่งส่วนไปยังมุมมองและดัชนี Mango
  • ดำเนินการแล้ว โหมดการแบ่งส่วนอัตโนมัติระหว่างการแบ่งส่วน (การแบ่งส่วน) ในฐานข้อมูล ขณะนี้สามารถแจกจ่ายข้อมูลระหว่างส่วนต่างๆ ได้โดยคำนึงถึงการเพิ่มมูลค่าของปัจจัย q ที่ใช้ในการกำหนดระดับการแยกย่อย
  • เพิ่ม ระบบย่อย ken สำหรับการจัดทำดัชนีพื้นหลังอัตโนมัติและการรักษาดัชนีรอง (JavaScript, Mango, ดัชนีการค้นหาข้อความ) ให้ทันสมัยอยู่เสมอโดยไม่ต้องเริ่มดำเนินการก่อสร้างอย่างชัดเจน
  • กระบวนการราบรื่นที่ใช้สำหรับการบรรจุฐานข้อมูลอัตโนมัติได้รับการเขียนใหม่ทั้งหมด
  • เสนอระบบย่อยใหม่ ไอโอคิวใช้เพื่อเปลี่ยนลำดับความสำคัญ I/O สำหรับการดำเนินการบางอย่าง
  • นำระบบการทดสอบการถดถอยไปใช้
  • เพิ่มการสนับสนุนอย่างเป็นทางการสำหรับแพลตฟอร์ม arm64v8 (aarch64) และ ppc64le (ppc64el)
  • เพิ่มการรองรับสำหรับการเชื่อมโยงกับเอ็นจิ้น JavaScript SpiderMonkey 1.8.5 (สาขา ESR ของ Firefox 60) พร้อมการรองรับที่ได้รับการปรับปรุงสำหรับ ES5, ES6 และ ES2016+;
  • รวมเครื่องมือค้นหา เดรย์ฟั อิงจาก Lucene ซึ่งช่วยให้การปรับใช้เครื่องมือค้นหาตาม CouchDB ง่ายขึ้นอย่างมาก
  • เพิ่มแบ็กเอนด์สำหรับการบันทึกโดยใช้ systemd-journald;
  • เพิ่มการตั้งค่า "[couchdb] single_node" เมื่อตั้งค่าแล้ว CouchDB จะสร้างฐานข้อมูลระบบโดยอัตโนมัติหากไม่มีฐานข้อมูลเหล่านั้น
  • ประสิทธิภาพของกระบวนการ couch_server ได้รับการปรับให้เหมาะสมแล้ว
  • ตัวติดตั้งสำหรับแพลตฟอร์ม Windows ได้รับการปรับปรุงอย่างมาก
  • การดูจำกัดอยู่ที่ 2^28 (268435456) ผลลัพธ์ ขีดจำกัดนี้สามารถกำหนดค่าแยกกันสำหรับมุมมองปกติและแบบแบ่งส่วนได้โดยใช้ตัวเลือก query_limit และ partition_query_limit ในส่วน "[query_server_config]"
  • อินเทอร์เฟซการจัดการโหนดท้องถิ่น HTTP แยกต่างหากซึ่งเปิดตัวบนพอร์ตเครือข่าย 5986 ได้ถูกลบออกแล้ว ซึ่งขณะนี้ฟังก์ชันการทำงานพร้อมใช้งานผ่านอินเทอร์เฟซการจัดการคลัสเตอร์ทั่วไป
  • ขนาดเอกสารสูงสุดลดลงเหลือ 8 MB ซึ่งอาจทำให้เกิดปัญหากับการจำลองข้อมูลจากเซิร์ฟเวอร์รุ่นเก่าหลังจากอัปเกรดเป็น CouchDB 3.0 หากต้องการเพิ่มขีดจำกัด คุณสามารถใช้การตั้งค่า "[couchdb] max_document_size"
  • มีการดำเนินการล้างข้อมูลคุณลักษณะที่ล้าสมัยครั้งใหญ่ เช่น การเรียก _replicator และ _external ฟิลด์ disk_size และ data_size และอ็อพชันล่าช้า_commits
  • การเรียกใช้ CouchDB ต้องใช้ Erlang/OTP 20.3.8.11+, 21.2.3+ หรือ 22.0.5 ตามทฤษฎีแล้ว ฟังก์ชันการทำงานของสาขา Erlang/OTP 19 จะยังคงอยู่ แต่จะมีการทดสอบครอบคลุมอยู่

ให้เราระลึกว่า CouchDB จัดเก็บข้อมูลในรูปแบบรายการสั่งซื้อและอนุญาตให้มีการจำลองข้อมูลบางส่วนระหว่างฐานข้อมูลต่างๆ ในโหมดมาสเตอร์-มาสเตอร์พร้อมการตรวจจับและแก้ไขสถานการณ์ข้อขัดแย้งพร้อมกัน เซิร์ฟเวอร์แต่ละเครื่องจะจัดเก็บชุดข้อมูลในเครื่องของตัวเอง ซึ่งซิงโครไนซ์กับเซิร์ฟเวอร์อื่น ๆ ซึ่งสามารถออฟไลน์ได้และทำซ้ำการเปลี่ยนแปลงเป็นระยะ ๆ โดยเฉพาะอย่างยิ่งฟีเจอร์นี้ทำให้ CouchDB เป็นโซลูชั่นที่น่าสนใจสำหรับการซิงโครไนซ์การตั้งค่าโปรแกรมระหว่างคอมพิวเตอร์หลายเครื่อง โซลูชันที่ใช้ CouchDB ได้ถูกนำไปใช้ในบริษัทต่างๆ เช่น BBC, Apple และ CERN

การสืบค้น CouchDB และการจัดทำดัชนีข้อมูลสามารถทำได้ตามกระบวนทัศน์ แผนที่ลดโดยใช้ JavaScript เพื่อสร้างตรรกะการสุ่มตัวอย่างข้อมูล แกนหลักของระบบเขียนด้วยภาษา Erlang ซึ่งได้รับการปรับให้เหมาะสมสำหรับการสร้างระบบแบบกระจายที่รองรับคำขอหลายรายการแบบขนาน เซิร์ฟเวอร์การดูเขียนด้วยภาษา C และอิงตามเอ็นจิ้น JavaScript จากโครงการ Mozilla การเข้าถึงฐานข้อมูลดำเนินการโดยใช้โปรโตคอล HTTP โดยใช้ RESTful JSON API ซึ่งช่วยให้คุณเข้าถึงข้อมูล รวมถึงจากเว็บแอปพลิเคชันที่ทำงานในเบราว์เซอร์

หน่วยจัดเก็บข้อมูลคือเอกสารที่มีตัวระบุ เวอร์ชัน และมีชุดฟิลด์ที่มีชื่อในรูปแบบคีย์/ค่าตามต้องการ ในการจัดระเบียบชุดข้อมูลที่มีโครงสร้างหลอกจากเอกสารที่กำหนดเอง (การรวมและการเลือก) จะใช้แนวคิดของการสร้างมุมมอง (มุมมอง) เพื่อกำหนดว่าจะใช้ภาษา JavaScript ใด JavaScript ยังสามารถกำหนดฟังก์ชันเพื่อตรวจสอบข้อมูลเมื่อเพิ่มเอกสารใหม่ภายในมุมมองเฉพาะ

ที่มา: opennet.ru

เพิ่มความคิดเห็น