Note (หมายเหตุ)
คำจำกัดความในอภิธานศัพท์นี้เป็นแบบสั้นและเรียบง่าย มีจุดประสงค์เพื่อสื่อแนวคิดหลัก แต่ไม่ครอบคลุม รายละเอียดปลีกย่อยทั้งหมดของคำศัพท์ สำหรับรายละเอียดเพิ่มเติม โปรดดูการอ้างอิงไปยังเนื้อหาหลัก
asynchronous
การไม่รอให้สิ่งใดสิ่งหนึ่งเสร็จสมบูรณ์ (เช่น การส่งข้อมูลผ่านเครือข่ายไปยังโหนดอื่น) และไม่ตั้งสมมติฐาน ใดๆ เกี่ยวกับระยะเวลาที่จะใช้ ดูเพิ่มเติม "Synchronous Versus Asynchronous Replication" , "Synchronous Versus Asynchronous Networks" และ "System Model and Reality" .
atomic
-
ในบริบทของ concurrency หมายถึงการดำเนินการที่ดูเหมือนจะเกิดผล ณ จุดเวลาเดียว ดังนั้น กระบวนการ concurrent อื่นจะไม่มีทางพบเห็นการดำเนินการในสถานะ "กำลังทำครึ่งเดียว" ดูเพิ่มเติม isolation .
-
ในบริบทของ transactions หมายถึงการจัดกลุ่มชุดของการเขียนที่ต้องถูก commit ทั้งหมดหรือ rollback ทั้งหมด แม้จะเกิด fault ขึ้น ดูเพิ่มเติม "Atomicity" และ "Two-Phase Commit" .
backpressure
การบังคับให้ผู้ส่งข้อมูลชะลอความเร็วลงเมื่อผู้รับไม่สามารถรับข้อมูลได้ทัน รู้จักกันในชื่อ flow control ดูเพิ่มเติม "When an Overloaded System Won't Recover" .
batch process
การคำนวณที่รับข้อมูลนำเข้าชุดคงที่ (และมักจะมีขนาดใหญ่) เป็น input และสร้างข้อมูลอื่นเป็น output โดยไม่เปลี่ยนแปลง input ดูเพิ่มเติม Chapter 11 .
bounded
มีขีดจำกัดสูงสุดหรือขนาดที่ทราบแน่นอน ใช้ ตัวอย่างเช่น ในบริบทของความหน่วงของเครือข่าย (ดู "Timeouts and Unbounded Delays" ) และชุดข้อมูล (ดูบทนำของ Chapter 12 ).
Byzantine fault
fault ที่มีลักษณะเฉพาะคือโหนดมีพฤติกรรมผิดพลาดในลักษณะที่ไม่สามารถคาดเดาได้ (เช่น การส่งข้อความที่ขัดแย้งกัน หรือเป็นอันตรายไปยังโหนดอื่น) ดูเพิ่มเติม "Byzantine Faults" .
cache
คอมโพเนนต์ที่จดจำข้อมูลที่ถูกใช้ล่าสุดเพื่อเพิ่มความเร็วในการอ่านข้อมูลเดียวกันในอนาคต โดยทั่วไป cache จะไม่สมบูรณ์ ข้อมูลใดที่ขาดหายไปจาก cache จะต้องถูกดึงมาจากระบบจัดเก็บข้อมูลพื้นฐานที่ช้ากว่า ซึ่ง มีข้อมูลที่สมบูรณ์
CAP theorem
ทฤษฎีบทที่ถูกเข้าใจผิดอย่างกว้างขวาง ซึ่งไม่มีประโยชน์ในทางปฏิบัติ ดูเพิ่มเติม "The CAP theorem" .
causality
การพึ่งพากันระหว่าง events ที่เกิดขึ้นเมื่อสิ่งหนึ่ง "เกิดขึ้นก่อน" (happens before) อีกสิ่งหนึ่งในระบบ — ตัวอย่างเช่น event ที่เกิดขึ้นทีหลังซึ่งเกิดขึ้นเพื่อตอบสนอง, สร้างบน, หรือควรจะเข้าใจในบริบทของ event ที่เกิดขึ้นก่อนหน้านั้น ดูเพิ่มเติม "The happens-before relation and concurrency" .
consensus
ปัญหาพื้นฐานใน distributed computing เกี่ยวกับการทำให้หลายโหนดตกลงกันในบางสิ่ง (เช่น โหนดใดควรเป็น leader สำหรับ database cluster) ปัญหานี้ยากกว่าที่เห็นในครั้งแรกมาก ดูเพิ่มเติม "Consensus" .
data warehouse
ฐานข้อมูลที่รวบรวมข้อมูลจากระบบ OLTP หลายระบบและถูกเตรียมพร้อมเพื่อใช้สำหรับการวิเคราะห์ ดูเพิ่มเติม "Data Warehousing" .
declarative
อธิบายคุณสมบัติที่สิ่งใดสิ่งหนึ่งควรมี แต่ไม่ใช่ขั้นตอนที่แน่นอนสำหรับการทำให้สำเร็จ ในบริบทของ database queries, query optimizer จะรับ declarative query และตัดสินใจว่าควรจะ execute มันอย่างไรให้ดีที่สุด ดูเพิ่มเติม "Terminology: Declarative Query Languages" .
denormalize
การเพิ่มความซ้ำซ้อนหรือการทำซ้ำบางส่วนลงในชุดข้อมูลที่ถูก normalize ไว้แล้ว โดยทั่วไปในรูปแบบของ cache หรือ index เพื่อเพิ่มความเร็วในการอ่าน ค่าที่ถูก denormalize เป็นผลลัพธ์ของ query ที่ถูกคำนวณไว้ล่วงหน้า คล้ายกับ materialized view ดูเพิ่มเติม "Normalization, Denormalization, and Joins" .
derived data
ชุดข้อมูลที่ถูกสร้างขึ้นจากข้อมูลอื่นผ่านกระบวนการที่สามารถทำซ้ำได้ ซึ่งคุณสามารถรันอีกครั้งได้หากจำเป็น โดยทั่วไป derived data ถูกใช้เพื่อเพิ่มความเร็วในการอ่านข้อมูลในรูปแบบเฉพาะเจาะจง Indexes, caches และ materialized views เป็นตัวอย่างของ derived data ดูเพิ่มเติม "Systems of Record and Derived Data" .
deterministic
อธิบายฟังก์ชันที่ให้ output เดียวกันเสมอหากได้รับ input เดียวกัน นั่นหมายความว่ามันไม่สามารถพึ่งพา ตัวเลขสุ่ม, เวลา, การสื่อสารผ่านเครือข่าย หรือสิ่งอื่นที่ไม่สามารถคาดเดาได้ ดูเพิ่มเติม "The Power of Determinism" .
distributed
การทำงานบนหลายโหนดที่เชื่อมต่อกันด้วยเครือข่าย มีลักษณะเฉพาะคือ partial failures : ส่วนหนึ่งของระบบอาจเสียในขณะที่ส่วนอื่นยังทำงานได้ และบ่อยครั้งที่ซอฟต์แวร์ไม่สามารถรู้ได้ว่าส่วนไหนเสีย ดูเพิ่มเติม "Faults and Partial Failures" .
durable
การจัดเก็บข้อมูลในลักษณะที่คุณเชื่อมั่นว่าข้อมูลจะไม่สูญหาย แม้จะเกิด fault ต่างๆ ขึ้น ดูเพิ่มเติม "Durability" .
ETL
Extract–transform–load กระบวนการในการดึงข้อมูลจาก source database, แปลงให้อยู่ในรูปแบบ ที่เหมาะสมสำหรับ analytical queries, และโหลดเข้าสู่ data warehouse หรือ batch processing system ดูเพิ่มเติม "Data Warehousing" .
failover
ในระบบที่มี leader เพียงตัวเดียว failover คือกระบวนการย้ายบทบาทผู้นำจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง ดูเพิ่มเติม "Handling Node Outages" .
fault-tolerant
ความสามารถในการกู้คืนโดยอัตโนมัติหากมีสิ่งผิดปกติเกิดขึ้น (เช่น ถ้าเครื่อง Crash หรือลิงก์เครือข่ายล้มเหลว) ดูเพิ่มเติม "Reliability and Fault Tolerance" .
flow control
ดู backpressure .
follower
Replica ที่ไม่รับ write จาก clients โดยตรง แต่จะประมวลผลการเปลี่ยนแปลงข้อมูลที่ได้รับจาก leader เท่านั้น รู้จักกันในชื่อ secondary , read replica หรือ hot standby ดูเพิ่มเติม "Single-Leader Replication" .
full-text search
การค้นหาข้อความด้วยคีย์เวิร์ดที่กำหนด มักมีฟีเจอร์เพิ่มเติม เช่น การจับคู่คำที่สะกดคล้ายกัน หรือคำพ้องความหมาย full-text index เป็น secondary index ชนิดหนึ่งที่รองรับการค้นหาแบบนี้ ดูเพิ่มเติม "Full-Text Search" .
graph
โครงสร้างข้อมูลที่ประกอบด้วย vertices (สิ่งที่คุณสามารถอ้างอิงถึง หรือรู้จักในชื่อ nodes หรือ entities ) และ edges (การเชื่อมต่อจาก vertex หนึ่งไปยังอีก vertex หนึ่ง หรือรู้จักในชื่อ relationships หรือ arcs ) ดูเพิ่มเติม "Graph-Like Data Models" .
hash
A ฟังก์ชันที่เปลี่ยน input ให้เป็นตัวเลขที่ดูเหมือนสุ่ม input เดียวกันจะให้ output เป็นตัวเลขเดียวกันเสมอ input ที่ต่างกันสองตัวมักจะให้ output เป็นตัวเลขที่แตกต่างกันสองตัว แม้ว่า input ที่ต่างกันสองตัว อาจให้ output เดียวกันได้ (เรียกว่า collision ) ดูเพิ่มเติม "Sharding by Hash of Key" .
idempotent
อธิบายการดำเนินการที่สามารถลองทำซ้ำได้อย่างปลอดภัย ถ้ามันถูก execute มากกว่าหนึ่งครั้ง มันจะให้ผลลัพธ์เหมือนกับว่ามันถูก execute เพียงครั้งเดียว ดูเพิ่มเติม "Idempotence" .
index
โครงสร้างข้อมูลที่ช่วยให้คุณค้นหาทุก record ที่มีค่าเฉพาะในฟิลด์ใดฟิลด์หนึ่งได้อย่างมีประสิทธิภาพ ดูเพิ่มเติม "Storage and Indexing for OLTP" .
isolation
ในบริบทของ transactions อธิบายระดับที่ transactions ที่ทำงานพร้อมกันสามารถรบกวนซึ่งกันและกันได้ Serializable isolation ให้การรับประกันที่แข็งแกร่งที่สุด แต่ก็มีการใช้ isolation levels ที่อ่อนแอกว่าด้วยเช่นกัน ดูเพิ่มเติม "Isolation" .
join
การนำ records ที่มีสิ่งที่เหมือนกันมารวมกัน มักใช้เมื่อ record หนึ่งมีการอ้างอิงไปยังอีก record หนึ่ง (foreign key, document reference, edge ใน graph) และ query จำเป็นต้องดึง record ที่การอ้างอิงชี้ไป ดูเพิ่มเติม "Normalization, Denormalization, and Joins" และ "Joins and Grouping" .
leader
เมื่อข้อมูลหรือบริการถูก replicated ข้ามหลายโหนด leader คือ replica ที่ถูกกำหนดให้สามารถทำการเปลี่ยนแปลงได้ Leader อาจถูกเลือกผ่าน protocol หรือถูกเลือกด้วยตนเองโดยผู้ดูแลระบบ รู้จักกันในชื่อ primary หรือ source ดูเพิ่มเติม "Single-Leader Replication" .
linearizable
การทำงานเสมือนว่ามีข้อมูลเพียงสำเนาเดียวในระบบ ซึ่งถูกอัปเดตด้วยการดำเนินการแบบ atomic ดูเพิ่มเติม "Linearizability" .
locality
การเพิ่มประสิทธิภาพโดยการวางข้อมูลหลายชิ้นไว้ในที่เดียวกันหากมักจะถูกใช้งานพร้อมกันบ่อยๆ ดูเพิ่มเติม "Data locality for reads and writes" .
lock
กลไกเพื่อให้แน่ใจว่ามีเพียง thread, node หรือ transaction เดียวเท่านั้นที่สามารถเข้าถึงบางสิ่งได้ และใครก็ตามที่ต้องการเข้าถึงสิ่งเดียวกันต้องรอจนกว่า lock จะถูกปล่อย ดูเพิ่มเติม "Two-Phase Locking" และ "Distributed Locks and Leases" .
log
ไฟล์แบบ append-only สำหรับจัดเก็บข้อมูล Write-ahead log ใช้เพื่อทำให้ storage engine ทนทานต่อการ Crash (ดู "Making B-trees reliable" ), log-structured storage engine ใช้ log เป็นรูปแบบการจัดเก็บข้อมูลหลัก (ดู "Log-Structured Storage" ), replication log ใช้สำหรับคัดลอก write จาก leader ไปยัง followers (ดู "Single-Leader Replication" ) และ event log สามารถใช้แทน data stream (ดู "Log-Based Message Brokers" ).
materialize
การคำนวณผลลัพธ์ทันทีและเขียนผลลัพธ์นั้นออกมา แทนที่จะคำนวณเมื่อมีการร้องขอ ดูเพิ่มเติม "Event Sourcing and CQRS" .
node
อินสแตนซ์ของซอฟต์แวร์ที่ทำงานบนคอมพิวเตอร์ ซึ่งสื่อสารกับ nodes อื่นผ่านเครือข่ายเพื่อทำงานให้สำเร็จ
normalized
การจัดโครงสร้างในลักษณะที่ไม่มีความซ้ำซ้อนหรือการทำซ้ำ ใน normalized database เมื่อข้อมูลเปลี่ยนแปลง คุณต้องเปลี่ยนแปลงมันในที่เดียวเท่านั้น ไม่ใช่หลายสำเนาในหลายที่ ดูเพิ่มเติม "Normalization, Denormalization, and Joins" .
OLAP
Online analytical processing รูปแบบการเข้าถึงที่มีลักษณะเฉพาะคือการรวมข้อมูล (เช่น count, sum, average) จากจำนวน records จำนวนมาก ดูเพิ่มเติม "Operational Versus Analytical Systems" .
OLTP
Online transaction processing รูปแบบการเข้าถึงที่มีลักษณะเฉพาะคือ queries ที่รวดเร็วซึ่งอ่านหรือเขียน จำนวน records น้อย มักจะถูก index ด้วย key ดูเพิ่มเติม "Operational Versus Analytical Systems" .
percentile
วิธีการวัดการกระจายของค่าโดยการนับว่ามีค่ากี่ค่าที่อยู่เหนือหรือต่ำกว่าเกณฑ์ที่กำหนด ตัวอย่างเช่น ค่า response time ที่เปอร์เซ็นไทล์ที่ 95 ในช่วงเวลาหนึ่งคือเวลา t ที่ทำให้ 95% ของ requests ในช่วงเวลานั้นเสร็จในเวลาที่น้อยกว่า t และ 5% ใช้เวลานานกว่า t ดูเพิ่มเติม "Describing Performance" .
primary key
ค่า (โดยทั่วไปคือตัวเลขหรือ string) ที่ระบุ record ได้อย่างไม่ซ้ำกัน ในหลายแอปพลิเคชัน primary keys ถูกสร้างโดยระบบเมื่อ record ถูกสร้าง (เช่น แบบเรียงลำดับหรือสุ่ม) โดยปกติแล้วผู้ใช้จะไม่เป็นคนตั้งค่า ดูเพิ่มเติม secondary index .
quorum
จำนวน nodes ขั้นต่ำที่ต้องลงคะแนนในการดำเนินการก่อนที่จะถือว่าสำเร็จ ดูเพิ่มเติม "Using quorums for reading and writing" .
rebalance
การย้ายข้อมูลหรือบริการจากโหนดหนึ่งไปยังอีกโหนดหนึ่งเพื่อกระจายโหลดอย่างเป็นธรรม ดูเพิ่มเติม "Sharding of Key-Value Data" .
replication
การเก็บสำเนาของข้อมูลเดียวกันไว้บนหลายโหนด ( replicas ) เพื่อให้ข้อมูลยังคงเข้าถึงได้หากโหนดใดโหนดหนึ่งไม่สามารถเข้าถึงได้ ดูเพิ่มเติม Chapter 6 .
schema
คำอธิบายโครงสร้างของข้อมูล รวมถึงฟิลด์และชนิดข้อมูล (datatypes) การตรวจสอบว่าข้อมูลเป็นไปตาม schema หรือไม่สามารถทำได้ ณ จุดต่างๆ ในวงจรชีวิตของข้อมูล (ดู "Schema flexibility in the document model" ) และ schema สามารถเปลี่ยนแปลงได้เมื่อเวลาผ่านไป (ดู Chapter 5 ).
secondary index
โครงสร้างข้อมูลเพิ่มเติมที่ถูกดูแลรักษาควบคู่ไปกับที่จัดเก็บข้อมูลหลัก และช่วยให้คุณค้นหา records ที่ตรงตามเงื่อนไขบางประเภทได้อย่างมีประสิทธิภาพ ดูเพิ่มเติม "Multicolumn and Secondary Indexes" และ "Sharding and Secondary Indexes" .
serializable
การรับประกัน isolation ว่าถ้า transactions หลายตัวทำงานพร้อมกัน พวกมันจะมีพฤติกรรมเหมือนกับว่าถูก execute ทีละตัวตามลำดับ (serial order) ดูเพิ่มเติม "Serializability" .
sharding
การแบ่งชุดข้อมูลขนาดใหญ่หรือการคำนวณที่ใหญ่เกินไปสำหรับเครื่องเดียวออกเป็นส่วนย่อยๆ และกระจายไปยังหลายเครื่อง รู้จักกันในชื่อ partitioning ดูเพิ่มเติม Chapter 7 .
shared-nothing
สถาปัตยกรรมที่ nodes อิสระ—แต่ละตัวมี CPU, หน่วยความจำ และดิสก์ของตัวเอง—เชื่อมต่อกันผ่าน เครือข่ายทั่วไป ตรงกันข้ามกับสถาปัตยกรรมแบบ shared-memory หรือ shared-disk ดูเพิ่มเติม "Shared-Memory, Shared-Disk, and Shared-Nothing Architectures" .
skew
-
โหลดที่ไม่สมดุลระหว่าง shards ทำให้บาง shards มี requests หรือข้อมูลจำนวนมากและ shards อื่นมีน้อยกว่า รู้จักกันในชื่อ hot spots ดูเพิ่มเติม "Skewed Workloads and Relieving Hot Spots" .
-
ความผิดปกติของ timing ที่ทำให้ events ปรากฏในลำดับที่ไม่คาดคิดและไม่เรียงต่อเนื่องกัน ดูการอภิปรายเรื่อง read skew ใน "Snapshot Isolation and Repeatable Read" , write skew ใน "Write Skew and Phantoms" และ clock skew ใน "Timestamps for ordering events" .
split brain
สถานการณ์ที่สอง nodes เชื่อพร้อมกันว่าตนเองเป็น leader ซึ่งอาจทำให้การรับประกันของระบบถูกละเมิด ดูเพิ่มเติม "Handling Node Outages" และ "The Majority Rules" .
stored procedure
วิธีการเข้ารหัส logic ของ transaction เพื่อให้สามารถ execute ทั้งหมดบน database server โดยไม่ต้องสื่อสารกลับไปกลับมากับ client ระหว่าง transaction ดูเพิ่มเติม "Actual Serial Execution" .
stream process
การคำนวณที่ทำงานต่อเนื่องซึ่งบริโภคสตรีมของ events ที่ไม่มีที่สิ้นสุดเป็น input และสร้าง output จากมัน ดูเพิ่มเติม Chapter 12 .
synchronous
ตรงกันข้ามกับ asynchronous .
system of record
ระบบที่เก็บข้อมูลเวอร์ชันหลักที่เชื่อถือได้ (authoritative version) หรือรู้จักในชื่อ source of truth การเปลี่ยนแปลงจะถูกเขียนที่นี่เป็นอันดับแรก และชุดข้อมูลอื่นอาจถูก derived จาก system of record ดูเพิ่มเติม "Systems of Record and Derived Data" .
timeout
หนึ่งในวิธีที่ง่ายที่สุดในการตรวจจับ fault—คือการสังเกตว่าไม่มีการตอบกลับภายในระยะเวลาที่กำหนด อย่างไรก็ตาม เป็นไปไม่ได้ที่จะรู้ว่า timeout เกิดจากปัญหาที่ remote node หรือปัญหาในเครือข่าย ดูเพิ่มเติม "Timeouts and Unbounded Delays" .
total order
วิธีการเปรียบเทียบสองสิ่ง (เช่น timestamps) ที่ทำให้คุณสามารถบอกได้เสมอว่าสิ่งไหนมากกว่าและสิ่งไหนน้อยกว่า การเรียงลำดับที่บางสิ่งไม่สามารถเปรียบเทียบกันได้ (คุณไม่สามารถบอกได้ว่าอันไหนมากกว่าหรือน้อยกว่า) เรียกว่า partial order .
transaction
การจัดกลุ่ม reads และ writes หลายๆ ครั้งเข้าด้วยกันเป็นหน่วยเชิงตรรกะเพื่อลดความซับซ้อนของ การจัดการข้อผิดพลาดและปัญหา concurrency ดูเพิ่มเติม Chapter 8 .
two-phase commit (2PC)
อัลกอริทึมเพื่อให้แน่ใจว่า database nodes หลายตัวจะ atomically commit หรือ abort transaction พร้อมกันทั้งหมด ดูเพิ่มเติม "Two-Phase Commit" .
two-phase locking (2PL)
อัลกอริทึมสำหรับการบรรลุ serializable isolation ที่ทำงานโดย transaction จะได้รับ lock บนข้อมูลทั้งหมดที่มันอ่านหรือเขียน และถือ lock นั้นไว้ จนกว่า transaction จะสิ้นสุด ดูเพิ่มเติม "Two-Phase Locking" .
unbounded
ไม่มีขีดจำกัดสูงสุดหรือขนาดที่ทราบแน่นอน ตรงกันข้ามกับ bounded .