Note (หมายเหตุ)

คำจำกัดความในอภิธานศัพท์นี้เป็นแบบสั้นและเรียบง่าย มีจุดประสงค์เพื่อสื่อแนวคิดหลัก แต่ไม่ครอบคลุม รายละเอียดปลีกย่อยทั้งหมดของคำศัพท์ สำหรับรายละเอียดเพิ่มเติม โปรดดูการอ้างอิงไปยังเนื้อหาหลัก

asynchronous

การไม่รอให้สิ่งใดสิ่งหนึ่งเสร็จสมบูรณ์ (เช่น การส่งข้อมูลผ่านเครือข่ายไปยังโหนดอื่น) และไม่ตั้งสมมติฐาน ใดๆ เกี่ยวกับระยะเวลาที่จะใช้ ดูเพิ่มเติม "Synchronous Versus Asynchronous Replication" , "Synchronous Versus Asynchronous Networks" และ "System Model and Reality" .

atomic

  1. ในบริบทของ concurrency หมายถึงการดำเนินการที่ดูเหมือนจะเกิดผล ณ จุดเวลาเดียว ดังนั้น กระบวนการ concurrent อื่นจะไม่มีทางพบเห็นการดำเนินการในสถานะ "กำลังทำครึ่งเดียว" ดูเพิ่มเติม isolation .

  2. ในบริบทของ 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

  1. โหลดที่ไม่สมดุลระหว่าง shards ทำให้บาง shards มี requests หรือข้อมูลจำนวนมากและ shards อื่นมีน้อยกว่า รู้จักกันในชื่อ hot spots ดูเพิ่มเติม "Skewed Workloads and Relieving Hot Spots" .

  2. ความผิดปกติของ 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 .