maxubrq.
English
Tham khảo / từ điển của trang 41 mục · 42 lần dùng

từ điển.

Các từ kỹ thuật, từ mượn, những ẩn dụ. Mọi thuật ngữ được đánh dấu trong một bài viết đều về đây, kèm câu văn nơi mình dùng nó lần đầu.

Một thuật ngữ được đánh dấu trông thế nào

Rê chuột lên một thuật ngữ được đánh dấu, ví dụ associative khi đang đọc, thẻ định nghĩa sẽ mở ngay tại chỗ — không phải rời khỏi câu văn.

thuật ngữ
associative

Một phép gộp mà cách nhóm không quan trọng: gộp A với B rồi với C bằng gộp A với kết quả gộp của B và C.

xuất hiện trong 1 bài viết xem đầy đủ →
A — Z / mọi thuật ngữ ABCDEFGHIJKLMNOPQRSTUVWXYZ

A

1 mục
01

associative

×1
tính từ · hệ phân tán Software

Một phép gộp mà cách nhóm không quan trọng: gộp A với B rồi với C bằng gộp A với kết quả gộp của B và C.

chi tiết

Tính chất làm cho việc gom lô trở nên miễn phí. Nếu một phép gộp có tính kết hợp, một bản sao có thể gấp các cập nhật lại theo bất cứ bó nào mà mạng tình cờ chuyển tới — từng cái một, hay cả nghìn cái một lượt sau khi phân mảnh mạng lành lại — và vẫn về đúng một trạng thái, nên giao thức đồng bộ được phép chỉ là chi tiết hiện thực chứ không phải một phần của lập luận về tính đúng. Kết hợp, giao hoán và lũy đẳng cộng lại cho một nửa dàn có biên, và cấu trúc đó mới là định lý thật nằm sau câu "hội tụ mà không cần phối hợp": không cần thứ tự, không cần cách nhóm, không sợ trùng lặp, theo đúng thứ tự đó.

B

3 mục
02

bias

×1
danh từ · số học máy tính Software

Phần bù cố định được cộng vào số mũ trước khi lưu, để trường số mũ luôn là một số không dấu.

chi tiết

Số mũ của float32 chạy từ −126 tới +127, và lưu một số có dấu sẽ cần thêm một bit dấu riêng hoặc dùng bù hai — cả hai đều phá vỡ thứ tự. Thay vào đó, 127 được cộng vào trước, nên toàn bộ dải rơi vào 0…255 và các bit đã lưu tăng đơn điệu theo giá trị. Cái được là hai số thực dương có thể so sánh như hai số nguyên thường, mẫu bit đấu mẫu bit — đó là lý do phần cứng so sánh chỉ bằng một lệnh. Hai đầu của dải lưu trữ, toàn 0 và toàn 1, được dành riêng cho các giá trị đặc biệt.

03

biện minh quá mức

×1
danh từ · tâm lý học Science

Sự nhạt đi của một hứng thú vốn đã có, sau khi người ta hứa một phần thưởng cho nó — lý do bên ngoài chiếm chỗ của lý do bên trong.

chi tiết

Được Lepper, Greene và Nisbett đặt tên năm 1973, từ một thí nghiệm với các bé mẫu giáo vốn đã tự chọn vẽ trong giờ chơi tự do, chia làm ba nhóm: được hứa giấy khen trước khi vẽ, được tặng bất ngờ sau khi vẽ, và không có gì. Hai tuần sau chỉ nhóm được hứa là vẽ ít hẳn đi, và vẽ kém hơn — mà nhóm được hứa với nhóm được tặng bất ngờ đều cầm về cùng một tấm giấy khen, nên thứ gây hại không phải phần thưởng. Là lời hứa. Cái tên chính xác một cách khó chịu: vấn đề không phải thiếu lý do mà là thừa lý do. Có một lý do bên ngoài đủ tốt để giải thích hành vi rồi thì lý do bên trong thành ra không cần thiết nữa, và cái không cần thiết thì mờ dần.

04

Byzantine fault

×1
danh từ · hệ phân tán Software

Một nút không chỉ dừng lại mà nói dối — và có thể nói những lời dối khác nhau với những láng giềng khác nhau.

chi tiết

Mô hình lỗi mạnh nhất, và là mô hình mà cái giá của nó rất dễ bị đọc nhẹ đi từ công thức. N ≥ 3f + 1 nói rằng ba nút không sống sót nổi một kẻ phản bội, và lý do đáng nhớ: hai nút trung thực mỗi nút nhận một câu chuyện khác nhau và từ bên trong không có cách nào biết ai trong hai nút còn lại mới là kẻ dối. Mọi thứ đắt đỏ trong các giao thức BFT đều sinh ra từ việc phải phân biệt cho được chuyện đó. Điểm thực dụng là điểm chẩn đoán — lỗi thường gặp trên production là crash-stop hoặc grey, không phải ác ý, và trả giá Byzantine cho chúng thì không mua được gì.

Đ

2 mục
05

đọc đơn điệu

×1
danh từ · hệ phân tán Software

Một bảo đảm theo session: khi đã đọc được một phiên bản của dữ liệu, bạn không bao giờ đọc lại một phiên bản cũ hơn.

chi tiết

Bảo đảm ngăn thời gian chạy ngược với một người đọc. Không có nó, hai lần đọc cách nhau một giây có thể rơi vào hai bản sao khác nhau và lần sau cũ hơn lần trước — đúng cái lần refresh làm mất đi bình luận bạn vừa thấy. Đây là lời hứa về một session, không phải về cả hệ thống, nên hai client vẫn có thể không khớp nhau; chính sự hẹp đó làm nó rẻ. Một đường đi sticky về một bản sao cho nó gần như miễn phí, còn một mức sàn phiên bản theo từng client cho nó mà không cần ghim đường đi.

06

độ lệch chuẩn mẫu

×1
danh từ · thống kê Science

Một quan sát đơn lẻ thường lệch khỏi trung bình bao xa, tính bằng đúng đơn vị của các quan sát.

chi tiết

Nó là căn bậc hai của phương sai mẫu, và trả lời được câu mà phương sai không trả lời nổi: lệch bao nhiêu thì vẫn là bình thường. Với đội trong bài dưới đây, con số là 6.23 point trên nền trung bình 40, tức một Sprint lệch sáu point khỏi trung bình không phải là biến cố — đó là chuyện thường ngày. Mọi thứ phía sau đều dựa vào nó: sai số chuẩn, ngưỡng phát hiện, và số Sprint mà một phép thử cần.

E

1 mục
07

effectively-once

×1
danh từ · hệ phân tán Software

Giao nhận at-least-once cộng tính lũy đẳng ở phía nhận: tin nhắn có thể tới hai lần, nhưng trạng thái chỉ đổi một lần.

chi tiết

Cái tên trung thực cho những gì các hệ thống đang chạy được thực sự có, và là lý do bài viết dành lời cảnh báo cho Kafka chứ không cho lý thuyết. Exactly-once đầu-cuối không phải một tính năng để bật lên; một bên gửi không phân biệt được tin nhắn bị mất với phản hồi bị mất thì buộc phải chọn giữa làm mất và làm trùng, và mọi đường ống thật đều chọn làm trùng. Thứ làm cho bản trùng trở nên vô hại là việc khử trùng ở phía consumer, nghĩa là bảo đảm đó nằm trong handler của bạn chứ không nằm trong broker. Những tác dụng phụ đi ra khỏi hệ thống — một email, một lần trừ tiền qua bên thứ ba — mỗi thứ cần khóa lũy đẳng riêng, vì giao dịch của broker không vươn tới được chúng.

F

2 mục
08

fencing token

×1
danh từ · hệ phân tán Software

Một con số tăng đơn điệu được cấp kèm với lease, để tầng lưu trữ dùng mà từ chối bất cứ ai đang giữ con số cũ hơn.

chi tiết

Nửa còn lại của lease, và là lý do cặp này hoạt động trong khi từng cái một thì không. Điểm sáng là chỗ kiểm tra phải dịch đi: dịch vụ khóa không ngăn được một client đang bị dừng ghi dữ liệu, nhưng *chính tài nguyên* thì từ chối được một lần ghi có token nhỏ hơn con số lớn nhất nó từng thấy. Tính đơn điệu gánh toàn bộ công việc — tầng lưu trữ không cần đồng hồ, không cần biết thành viên trong cụm, cũng không cần có ý kiến về việc ai nên làm leader, chỉ cần so sánh được hai số nguyên. Đây là lý do câu "bọn mình có khóa phân tán rồi" vẫn chưa phải một câu trả lời cho split-brain.

09

fixed-point

×1
danh từ · số học máy tính Software

Định dạng số cố định dấu chấm ở một vị trí đã thỏa thuận, nên mọi giá trị đều mang cùng một bước nhảy tuyệt đối.

chi tiết

Toàn bộ định dạng chỉ là một quy ước: các bit là một số nguyên bình thường, và người đọc thống nhất với nhau dấu chấm nằm ở đâu — Q16.16 nghĩa là mười sáu bit phần nguyên và mười sáu bit phần lẻ, bước nhảy 2⁻¹⁶ ở mọi nơi trên trục số. Chính sự đồng đều đó là mấu chốt. Tiền tệ được đếm bằng fixed-point (hoặc bằng số nguyên đơn vị xu) vì một xu phải nặng như nhau ở mức mười và ở mức mười triệu, còn một định dạng có bước nhảy phình theo giá trị thì không hứa được điều đó. Cái nó đánh đổi là dải giá trị: cùng số bit ấy, mua được bước nhảy đều ở gần 0 thì hết sạch từ sớm ở phía trên.

G

3 mục
10

ghi đơn điệu

×1
danh từ · hệ phân tán Software

Một bảo đảm theo session: các lần ghi của chính bạn được áp dụng theo đúng thứ tự bạn phát ra, không bao giờ đảo.

chi tiết

Người song sinh ở phía ghi, và là thứ làm cho một chuỗi thao tác sửa từ một client hành xử như một chuỗi chứ không phải một tập. Không có nó, hai lần ghi phát ra theo thứ tự có thể tới một bản sao theo thứ tự ngược lại và lần trước thắng, nên một lần sửa âm thầm lùi về giá trị trước đó. Như mọi bảo đảm theo session, nó chỉ có phạm vi trong một người ghi: nó không nói gì về việc xen kẽ với một client khác, và mua phiên bản theo-từng-người-ghi của tính chất này rẻ hơn rất nhiều so với mua một thứ tự toàn cục để có nó.

11

giao hoán

×1
tính từ · hệ phân tán Software

Một thao tác mà thứ tự thực hiện không làm thay đổi kết quả cuối cùng.

chi tiết

Tính chất cho phép các bản sao áp dụng cùng một tập cập nhật theo thứ tự nào chúng nhận được cũng được mà vẫn đồng ý với nhau. Bộ đếm và phép hợp tập có tính này; một phép nhân trộn lẫn với một phép cộng thì không, và chỉ một thao tác phi giao hoán trong hỗn hợp đó là đủ để buộc thứ tự quay lại với hệ thống — nghĩa là cần phối hợp, nghĩa là độ trễ và một leader. Đây là tính chất đầu tiên trong ba tính chất nằm sau CRDT, và là tính chất hay hỏng một cách im lặng nhất: một thao tác trông như phép tăng nhưng lại đọc giá trị hiện tại trước khi ghi thì hoàn toàn không giao hoán.

12

grey failure

×1
danh từ · hệ phân tán Software

Một nút đã suy giảm hoặc đang trả về lỗi, nhưng vẫn vượt qua chính những bài kiểm tra sức khỏe của nó.

chi tiết

Dạng lỗi sống lâu hơn cả lần sập mà đúng ra nó nên trở thành, vì mọi cơ chế xử lý tự động đều đang chờ một tín hiệu không bao giờ tới. Cơ chế của nó là một khoảng lệch trong quan sát: hệ thống tự phán sức khỏe của mình bằng một phép đo khác với phép đo mà client trải nghiệm, và grey failure đúng là vùng mà hai phép đo đó không khớp. Hệ quả thiết kế rất cụ thể — một health-check trả lời thay cho nút chứ không trả lời thay cho yêu cầu thì không phải một bộ phát hiện, và thêm nhiều cái như thế nữa cũng không thành. Hãy đo đúng thứ mà người gọi thực sự đang phải chờ.

H

2 mục
13

happens-before

×1
danh từ · hệ phân tán Software

Thứ tự bộ phận mà tính nhân quả cho: trong cùng một tiến trình, từ một lần gửi tới lần nhận tương ứng, và bắc cầu qua cả hai.

chi tiết

Câu trả lời của Lamport cho việc không có đồng hồ toàn cục. Để ý rằng quan hệ này được định nghĩa bằng ba quy tắc và không gì khác, nghĩa là phần lớn các cặp sự kiện trong một hệ thống thật đơn giản là không xếp được thứ tự — không phải đồng thời, không phải bằng nhau, mà là *đồng thời xảy ra (concurrent)*, và không có sự thật nào về việc cái nào trước. Đó là chủ ý chứ không phải một lỗ hở của định nghĩa: một hệ thống chưa trao đổi tin nhắn nào thì không có cách nào biết được, và mọi thứ tự bạn in ra cho một cặp như thế đều là bịa. Mọi cơ chế nhân quả phía sau — vector clock, version vector, CRDT delivery — đều là một cách mã hóa đúng ba quy tắc này.

14

hệ số biến thiên

×1
danh từ · thống kê Science

Độ lệch chuẩn tính theo tỉ lệ phần trăm của trung bình — độ phân tán đã bỏ đơn vị đi, nên hai thứ đo bằng thang khác nhau vẫn so được.

chi tiết

Độ lệch chuẩn bằng 6 chẳng nói lên điều gì cho tới khi biết trung bình là 40 hay 4.000. Chia cho trung bình biến nó thành phần trăm và mang đi đâu cũng dùng được: đội trong bài dưới đây dao động khoảng 15%, và con số đó đặt cạnh được một đội chấm điểm trên thang hoàn toàn khác. Nó cũng là thứ gánh toàn bộ chi phí của một phép thử — cỡ mẫu cần thiết tăng theo *bình phương* của nó, nên giảm dao động của đội đi một nửa thì thời gian chờ còn một phần tư.

L

3 mục
15

lease

×1
danh từ · hệ phân tán Software

Quyền được thao tác lên một thứ, cấp kèm thời điểm hết hạn — một cái khóa có TTL, chứ không phải khóa giữ tới khi nào nhả.

chi tiết

Cái TTL có ở đó để giải một bài toán: một người giữ khóa thường mà chết trong lúc đang giữ thì chặn tài nguyên đó mãi mãi, và không bên thứ ba nào lấy lại được một cách an toàn. Một thời điểm hết hạn làm cho việc cấp quyền tự lành lại mà không cần ai phải phán xét xem người giữ có thật là đã chết hay chưa. Cái nó *không* giải được là cách nhìn thời gian của chính người giữ. Một tiến trình bị dừng quá hạn không có cách nào nhận ra, nên nó tỉnh lại và hành động trên một lease đã được cấp lại cho người khác — đó là lý do một mình lease chỉ là nửa thiết kế, và nửa còn lại nằm ở tầng lưu trữ.

16

liveness

×1
danh từ · hệ phân tán Software

Lớp tính chất nói rằng cuối cùng sẽ có điều gì tốt xảy ra — hệ thống tiếp tục tiến triển chứ không đứng lại.

chi tiết

Nửa không thể bị phản chứng bởi bất cứ lần chạy hữu hạn nào: bạn ngồi xem bao lâu mà không có gì xảy ra thì chữ "cuối cùng" vẫn chưa sai, nên liveness là nửa khó kiểm chứng và dễ mất. Gần như mọi bảo đảm có chữ "cuối cùng" trong tên đều là một tuyên bố về liveness, và gần như không cái nào kèm theo một cái biên — đúng cái khoảng trống mà bài viết chỉ ra ở phần eventual consistency. Ghép nó với safety để đọc một thiết kế một cách trung thực: safety nói hệ thống sẽ không sai, liveness nói hệ thống sẽ không vô dụng.

17

lũy đẳng

×1
tính từ · hệ phân tán Software

Một thao tác mà kết quả sau khi thực hiện nhiều lần giống hệt như sau khi thực hiện một lần.

chi tiết

Tính chất làm cho việc thử lại trở nên an toàn, và vì thế là tính chất mà mọi đường ống at-least-once âm thầm dựa lên. Phép thử là *hiệu ứng* của thao tác, không phải hình dạng của nó: SET A 5 đạt còn ADD A 5 thì không, và không có lượng logic retry cẩn thận nào biến cái sau thành cái trước. Sai lầm thường gặp là thừa hưởng nó từ một tầng không cho được nó — HTTP gọi PUT và DELETE là idempotent ở mức giao thức, điều đó chẳng nói gì về việc handler của bạn có ghi thêm một dòng mỗi lần gọi hay không. Nó cũng không phải tính giao hoán: lũy đẳng nói về sự lặp lại, giao hoán nói về thứ tự, và một hệ thống phát lại tin nhắn không theo thứ tự thì cần cả hai.

M

1 mục
18

monotonic

×1
tính từ · hệ phân tán Software

Một giá trị hay trạng thái chỉ đi theo một chiều — về trước, mới hơn, lớn hơn — và không bao giờ quay lại hay dùng lại thứ nó đã đi qua.

chi tiết

Một từ nhỏ chở theo một định lý lớn. CALM phát biểu sự tương đương theo cả hai chiều: một chương trình có cách hiện thực phân tán không cần phối hợp nếu và chỉ nếu logic của nó là đơn điệu. Chiều làm thay đổi quyết định là chiều thứ hai — logic phi đơn điệu không chỉ *được lợi* từ việc phối hợp, nó *chứng minh được* là đòi hỏi phối hợp, nên một thao tác buộc phải quan sát sự vắng mặt (một phép đếm, một giá trị nhỏ nhất, "chưa ai khác giành chỗ này") chính là chỗ độ trễ sinh ra và không lượng kỹ thuật nào bỏ được nó. Nước đi thực tế là thiết kế lại về dạng đơn điệu, không phải tối ưu cái rào chắn.

N

3 mục
19

NaN

×1
danh từ · số học máy tính Software

Not a Number — giá trị mà IEEE 754 trả về cho một phép tính không có câu trả lời, như 0/0 hay ∞ − ∞.

chi tiết

Nó là một giá trị, không phải một lỗi: phép tính vẫn trả về, và chương trình vẫn chạy tiếp. NaN có tính lây lan — mọi phép tính chạm vào nó đều sinh ra một NaN khác — nên một bước vô nghĩa duy nhất ở đầu một chuỗi tính toán dài vẫn còn nhìn thấy được ở cuối, thay vì bị lặng lẽ nuốt mất. Nó cũng là giá trị duy nhất không bằng chính nó, và x != x là phép thử trung thực để nhận ra nó, bởi vì bằng nhau với một thứ không phải là số thì không thể đúng. Bất đẳng thức ấy là hệ quả của định nghĩa chứ không phải một điều kỳ quặc, và đó là lý do một NaN sắp xếp rất lạ, cũng như lý do một bảng tra khóa theo số float có thể mất một mục vì nó.

20

nhất quán cuối cùng

×1
danh từ · hệ phân tán Software

Lời hứa rằng nếu ngừng ghi thì mọi bản sao sẽ hội tụ về cùng một trạng thái — và không hứa gì thêm nữa.

chi tiết

Hãy đọc định nghĩa để thấy nó *không* nói gì. Nó không xếp thứ tự các lần ghi trên đường đi, và nó không chặn biên cho chữ "cuối cùng" là bao lâu; cả hai đều để cho bản hiện thực quyết, và cả hai đều phải hỏi thẳng tên ra chứ đừng mặc định là vài milli giây. Cái điều kiện cũng quan trọng: hội tụ được hứa *nếu ngừng ghi*, còn một hệ thống đang chịu tải ghi liên tục thì không có thời điểm nào để kiểm chứng được bảo đảm đó. Đây là mức sàn đúng cho giỏ hàng hay số lượt thích, và là mức sai cho bất cứ thứ gì mà một người đọc thứ hai sẽ dựa vào để ra quyết định.

21

nhất quán nhân quả

×1
danh từ · hệ phân tán Software

Các thao tác có quan hệ nhân quả được thấy theo cùng một thứ tự ở mọi nơi; các thao tác không liên quan có thể thấy theo thứ tự nào cũng được, và khác nhau ở các bản sao khác nhau.

chi tiết

Mô hình khớp với cách con người thực sự đọc một hệ thống, nên nó đủ cho phần lớn sản phẩm mạng xã hội: một bình luận không bao giờ xuất hiện trước thứ nó bình luận, và không ai để ý hay quan tâm trong hai bài không liên quan thì bài nào về trước. Cái nó nhường lại là thứ tự toàn cục duy nhất, và đây là một sự nhường thật chứ không phải chuyện câu chữ — hai bản sao có thể mãi mãi không đồng ý với nhau về các lần ghi đồng thời mà cả hai vẫn đúng. Bộ máy của nó là version vector hoặc vector clock theo từng bản sao, không leader và không vòng quorum, nên nó sống sót qua một lần phân mảnh mạng trong khi linearizability thì không.

P

3 mục
22

phần định trị

×1
danh từ · số học máy tính Software

Các chữ số có nghĩa của một số dấu chấm động — phần mang độ chính xác, trong khi số mũ mang dải giá trị.

chi tiết

Còn gọi là significand. Trong IEEE 754, phần định trị được lưu ở dạng đã chuẩn hóa, như phần lẻ đứng sau một bit 1 ngầm định — đó là lý do trường 23 bit của float32 lại cho 24 bit độ chính xác: bit đầu tiên không bao giờ được ghi ra vì nó không bao giờ là gì khác. Đây cũng là lý do độ chính xác là một *số lượng chữ số* cố định chứ không phải một bước nhảy cố định: phần định trị nói có bao nhiêu chữ số, số mũ nói chúng nằm ở đâu. Nhân đôi một giá trị không đụng tới phần định trị mà chỉ cộng một vào số mũ, nên khoảng cách tới số biểu diễn được kế tiếp cũng nhân đôi theo.

23

phân phối chuẩn

×1
danh từ · thống kê Science

Hình chuông mà các giá trị trung bình có xu hướng tiến về — đối xứng, và được mô tả trọn vẹn bằng một tâm và một độ rộng.

chi tiết

Chỗ hữu dụng của nó ở đây không phải là velocity có hình chuông, mà là *giá trị trung bình* thì gần như luôn có, bất kể nó lấy trung bình của thứ gì. Khi đó hai con số mô tả trọn bức tranh, và khoảng cách được đọc bằng đơn vị độ rộng: khoảng 68% hình chuông nằm trong một độ rộng quanh tâm, 95% nằm trong 1.96 độ rộng. Con số thứ hai chính là nơi ngưỡng phát hiện sinh ra, và là lý do duy nhất khiến một quy tắc kiểu "dưới 7 point thì đừng nói gì" có thể suy ra được thay vì đoán.

24

phương sai mẫu

×1
danh từ · thống kê Science

Trung bình bình phương khoảng cách tới giá trị trung bình, chia cho n−1 thay vì n, vì chính giá trị trung bình cũng được ước lượng từ dữ liệu đó.

chi tiết

Bình phương là thứ khiến các độ lệch không triệt tiêu lẫn nhau, và cũng là lý do kết quả mang đơn vị bình phương — point bình phương, thứ chẳng có gì trên đời được đo bằng. Đó là lý do duy nhất khiến độ lệch chuẩn tồn tại: nó là căn bậc hai, lấy để quay về đúng đơn vị ban đầu. Con số n−1 không phải mẹo vặt: nếu chia cho n thì độ phân tán sẽ bị khai thấp, bởi trung bình mẫu nằm gần chính dữ liệu của nó hơn là trung bình thật.

Q

1 mục
25

quorum

×1
danh từ · hệ phân tán Software

Số lượng nút tối thiểu phải tham gia vào một thao tác để nó được tính — thường được chọn sao cho tập đọc và tập ghi buộc phải giao nhau.

chi tiết

Toàn bộ cơ chế chỉ là nguyên lý Dirichlet khoác áo thiết kế hệ thống: nếu R + W > N thì tập đọc và tập ghi không thể rời nhau, nên ít nhất một nút trong mỗi lần đọc đã thấy lần ghi mới nhất. Có hai điều theo sau mà người ta hay bỏ qua. Thứ nhất, quorum không phải đa số — đa số chỉ là một cách tiện để chọn R và W, không phải định nghĩa, và R=1, W=N là một quorum hoàn toàn hợp lệ với đặc tính hiệu năng rất khác. Thứ hai, phần giao bảo đảm rằng *có mặt* một bản sao mới, chứ không bảo đảm người đọc chọn đúng nó; chuyện đó vẫn cần đánh số phiên bản hoặc read repair.

R

1 mục
26

read-your-writes

×1
danh từ · hệ phân tán Software

Một bảo đảm theo session: một client vừa ghi thứ gì thì thấy được thay đổi của chính mình ở lần đọc kế tiếp.

chi tiết

Bảo đảm rẻ nhất với tỉ lệ khiếu nại được giải quyết cao nhất, và bài viết đặt con số ở chín trên mười. Gần như mọi báo lỗi đọc lên thành "hệ thống không nhất quán" thực chất chỉ là thiếu đúng tính chất này: người dùng lưu, trang tải lại từ một bản sao follower, và thay đổi không có ở đó. Để ý điều nó *không* hứa — chưa ai khác được bảo đảm là thấy lần ghi đó, và không có thứ tự toàn cục nào. Đó là sự đánh đổi giữ nó ở mức một session sticky hoặc một token phiên bản nằm trong client, chứ không phải một vòng đồng thuận.

S

11 mục
27

safety

×1
danh từ · hệ phân tán Software

Lớp tính chất nói rằng không có gì xấu xảy ra — hệ thống không bao giờ rơi vào một trạng thái sai hoặc không hợp lệ.

chi tiết

Một nửa của cặp dùng để phân tích một hệ thống, và về mặt hình thức là nửa có thể bị vi phạm bởi một đoạn đầu hữu hạn của một lần thực thi: một bước sai là bằng chứng, vĩnh viễn. Đó là điều làm cho safety kiểm chứng được và làm cho một phản ví dụ trở nên hữu dụng. Người song sinh của nó không phải đối nghịch của nó, và hai cái không phải một cái núm để đánh đổi — một hệ thống không bao giờ làm gì sai vì nó không bao giờ làm gì cả thì thỏa mãn safety hoàn toàn mà vẫn là hỏng. Cả hai đều phải đúng; bất cứ thiết kế nào tuyên bố có đánh đổi giữa chúng thì đã gọi sai tên một thứ khác.

28

sai loại I

×1
danh từ · thống kê Science

Báo động giả — kết luận là có thay đổi thật trong khi chẳng có gì xảy ra, chỉ là nhiễu vô tình rơi cao.

chi tiết

Không thể đưa rủi ro này về 0, chỉ có thể chọn nó: đặt ở mức 5% chính là thứ đẩy ngưỡng ra xa tâm 1.96 độ rộng, còn đòi 1% thì ngưỡng còn xa hơn nữa. Vậy nên mọi ngưỡng đều là một quyết định về việc bạn chấp nhận bị đánh lừa bao nhiêu lần, đưa ra trước khi có dữ liệu. Chỉ đề phòng loại sai này thôi thì chưa đủ — đẩy ngưỡng ra xa cho chắc lại làm loại sai còn lại dễ xảy ra hơn.

29

sai loại II

×1
danh từ · thống kê Science

Bỏ lỡ — cải thiện là thật, nhưng rơi xuống dưới ngưỡng vì nhiễu tình cờ kéo nó xuống.

chi tiết

Hai loại sai đánh đổi lẫn nhau: một ngưỡng đặt thật xa để tránh báo động giả cũng đúng là ngưỡng mà một tác động thật khó lòng vượt qua. Một tác động nằm đúng ngay trên ngưỡng thì chỉ bắt được một nửa số lần — sự thật khó chịu này là thứ làm cho câu "chúng ta đạt chỉ tiêu rồi" trở nên yếu ớt. Chọn bắt được tác động thật 80% số lần — lựa chọn thông thường — chính là thứ đẩy mức chênh lệch cần có vượt xa ngưỡng, và kéo theo nó là lượng dữ liệu mà một câu trả lời trung thực đòi hỏi.

30

sai số chuẩn của trung bình

×1
danh từ · thống kê Science

Giá trị *trung bình* của một mẫu thường lệch khỏi trung bình thật bao xa — độ lệch chuẩn chia cho căn bậc hai của cỡ mẫu.

chi tiết

Chỗ khác biệt với độ lệch chuẩn là chỗ người ta hay bỏ qua rồi hiểu sai: độ lệch chuẩn nói các quan sát riêng lẻ tản mát ra sao, còn sai số chuẩn nói cái trung bình của chúng đáng tin tới đâu. Lấy trung bình thì ổn định hơn thật, nhưng chỉ nhanh bằng √n — gấp bốn lần dữ liệu mới giảm được một nửa độ lung lay, và đó là lý do đo một tác động nhỏ đắt lên rất nhanh. Đây chính là con số quyết định chênh lệch giữa hai trung bình có nghĩa gì hay không.

31

sequential consistency

×1
danh từ · hệ phân tán Software

Một thứ tự toàn cục duy nhất mà mọi nút đều thống nhất và khớp với program order của từng tiến trình — nhưng không cần khớp thời gian thực.

chi tiết

Dòng mà người ta hay bỏ qua, và cũng là dòng cho thấy tấm bản đồ này có hai trục chứ không phải một. Sequential consistency giữ nguyên thứ tự toàn cục duy nhất và chỉ bỏ ràng buộc thời gian thực: mọi người thấy cùng một chuỗi, nhưng một lần ghi vừa được xác nhận có thể nằm sau một lần đọc bắt đầu muộn hơn nó. Điều đó làm nó yếu hơn hẳn linearizability và mạnh hơn hẳn causal — và là lý do câu "causal là sequential trừ thời gian thực" là sai. Causal bỏ luôn cả cái thứ tự toàn cục duy nhất, một sự thả lỏng hoàn toàn khác. Chỗ ở của nó là các mô hình shared-memory, không phải cơ sở dữ liệu.

32

split-brain

×1
danh từ · hệ phân tán Software

Dạng lỗi khi hai nút hoặc nhiều hơn đều tin mình là leader, và mỗi nút đều nhận ghi.

chi tiết

Đây là cách kinh điển để một hệ thống có sao bản tự làm hỏng dữ liệu của mình thay vì chỉ đơn giản dừng lại, nên nó đáng sợ hơn một lần sập hẳn. Nguyên nhân kích hoạt thường chẳng lạ lùng gì: một lần phân mảnh mạng cắt leader cũ ra, hoặc một lần GC pause đóng băng nó đủ lâu để diễn ra một cuộc bầu chọn, rồi nó tỉnh lại và vẫn tin mình đang giữ vai. Không có gì leader cũ tự kiểm tra được mà phát hiện ra chuyện này — nó không có cách nào biết thời gian đã trôi qua. Vậy nên cách sửa không bao giờ là "bầu chọn cẩn thận hơn"; mà là làm cho tầng lưu trữ từ chối những lần ghi mang theo fencing token đã cũ.

33

Sprint

×1
danh từ · agile Software

Cửa sổ thời gian cố định mà đội lên kế hoạch và bàn giao trong đó — đơn vị biến công việc thành một chuỗi đếm được.

chi tiết

Một Sprint thì ngắn, và quan trọng hơn, luôn dài bằng nhau — chính điều đó mới làm cho các con số của những Sprint khác nhau so được với nhau. Nó cũng là cỡ mẫu của mọi lập luận dựng trên velocity: một quý sáu Sprint là sáu điểm dữ liệu, và sáu là một con số nhỏ để suy luận. Mọi câu hỏi dạng "đội có nhanh hơn không?" thật ra là câu hỏi đã quan sát được bao nhiêu Sprint.

34

static stability

×1
danh từ · hệ phân tán Software

Tính chất mà đường phục vụ vẫn chạy được suốt một sự cố mà không cần control plane phải làm gì.

chi tiết

Phát biểu như một tính chất thì nghe nhẹ; phát biểu như một nguyên tắc thì rất khắt khe — data plane phải tiếp tục phục vụ bằng những gì nó đã biết, nên không thứ gì trên đường phục hồi được phép phụ thuộc vào một việc phải thành công *ngay trong lúc* sự cố. Điều đó loại bỏ chuyện mở rộng dung lượng khi lỗi vừa xảy ra, chuyện đi lấy cấu hình mới, và chuyện gọi đúng cái API đang suy giảm. Cái giá được trả trước và trông như lãng phí trong một ngày bình thường: dung lượng cấp sẵn mà không dùng, trạng thái cache lại trước khi cần. Đó là hình dạng của thỏa thuận này, và là lý do control plane với data plane buộc phải độc lập với nhau.

35

StoryPoint

×2
danh từ · agile Software

Đơn vị ước lượng công sức, do đội tự thống nhất chứ không đo được — kích cỡ tương đối, không phải số giờ.

chi tiết

Story point cố tình không phải đơn vị thời gian: đội so một việc với những việc đã từng làm rồi gán cho nó một con số, nên thang điểm là của riêng đội đó và không có nghĩa gì khi đem so giữa các đội. Rắc rối bắt đầu khi con số này bị nhấc ra khỏi việc lập kế hoạch — chỗ nó có ích — và đặt vào việc đo năng suất, nơi nó thành một chỉ tiêu mà chính những người gán điểm có thể xê dịch. Kể cả bỏ qua chuyện đó, tổng điểm vẫn là một phép đo đầy nhiễu, và đó là nội dung của bài dưới đây.

36

strict serializability

×1
danh từ · hệ phân tán Software

Serializability cộng thời gian thực: thứ tự tuần tự mà hệ thống chọn còn phải khớp với thứ tự mà mọi việc thực sự đã xảy ra.

chi tiết

Cái tên tồn tại vì hai tính chất nó ghép lại là độc lập với nhau, và một hệ thống có thể chỉ giữ một trong hai. Strict serializability là thứ mà người đọc thường *muốn nói* khi bảo "cơ sở dữ liệu này nhất quán": giao dịch là nguyên tử trên nhiều đối tượng, và một lần commit đã được thông báo thì thấy được với mọi thứ bắt đầu sau đó. Nó cũng là điểm đắt nhất trên bản đồ, vì thừa hưởng vòng đồng thuận từ nửa thời gian thực và bộ máy nhiều đối tượng từ nửa còn lại. Spanner là bản hiện thực tham chiếu, và cửa sổ bất định mà nó phải chờ hết chính là cái giá in trên nhãn.

37

subnormal

×1
tính từ · số học máy tính Software

Số float quá nhỏ để chuẩn hóa, được lưu với bit 1 ngầm định bị bỏ đi — đánh đổi độ chính xác để tiến gần 0 hơn.

chi tiết

Dưới giá trị chuẩn hóa nhỏ nhất, số mũ không còn chỗ để đi nữa, và nếu không có subnormal thì trục số sẽ nhảy thẳng từ giá trị đó về 0 — một khoảng trống lớn hơn khoảng cách giữa bất kỳ hai số liền kề nào ở phía trên. Vì vậy số mũ toàn 0 được dành riêng: bit 1 không còn ngầm định nữa, và phần định trị được đọc như một phân số thường. Các con số với tới gần 0 hơn, và trả giá bằng cách mất dần một bit độ chính xác cho mỗi lũy thừa của hai đi xuống, cho tới khi không còn gì. Cái nó mua được là tính chất a − b == 0 khi và chỉ khi a == b, điều không đúng trong một định dạng làm tròn thẳng về 0.

T

2 mục
38

tính tuần tự

×1
danh từ · hệ phân tán Software

Bảo đảm rằng các giao dịch đồng thời kết thúc với cùng kết quả như khi chạy lần lượt theo một thứ tự tuần tự nào đó — thứ tự nào cũng được.

chi tiết

Nửa phía cơ sở dữ liệu của cặp khái niệm, và chữ "nào đó" chính là toàn bộ câu chuyện. Serializability chốt *kết quả* vào một thứ tự tuần tự mà không chốt *thứ tự nào*, nên nó không bao giờ phải viện đến đồng hồ: hai giao dịch chạy đồng thời có thể được tuần tự hóa theo chiều nào cũng được và cả hai đáp án đều đúng. Đó là lý do nó ghép được trên nhiều đối tượng, chỗ mà linearizability không làm được, và cũng là lý do một mình nó không cho bạn biết một giao dịch commit một giây trước giờ có thấy được hay chưa. Cộng lại yêu cầu thời gian thực đó là một tính chất khác, mạnh hơn, và có tên riêng.

39

tính tuyến tính

×1
danh từ · hệ phân tán Software

Bảo đảm rằng mọi thao tác trên một đối tượng đều trông như xảy ra tại một thời điểm duy nhất nằm giữa lúc gọi và lúc trả về, theo đúng thứ tự thời gian thực.

chi tiết

Là tính chất nhất quán mạnh nhất mà bạn thực sự xây được, và cũng là thứ bị mua quá nhiều nhất. Hai chỗ trong định nghĩa gánh toàn bộ cái giá: *một đối tượng*, và *thời gian thực*. Vì nó theo từng đối tượng, nó không nói gì về hai đối tượng cùng đổi một lượt — đó là câu hỏi giao dịch, và viện tới linearizability để trả lời là mua sai bảo đảm với giá đắt hơn. Vì nó tôn trọng thời gian thực, một lần ghi đã xác nhận buộc phải thấy được với mọi người đọc sau đó, thứ đẩy một vòng đồng thuận hoặc một đồng hồ có biên vào đường đi tới hạn. Phần lớn yêu cầu "nhất quán mạnh" thực ra được thỏa bằng read-your-writes, thứ chỉ tốn một đường đi sticky.

U

1 mục
40

ULP

×1
danh từ · số học máy tính Software

Unit in the last place — khoảng cách từ một số biểu diễn được tới số kế tiếp, tức là độ phân giải của định dạng tại giá trị đó.

chi tiết

ULP(v) = 2^(E−p): nó phụ thuộc vào số mũ, tức là phụ thuộc vào việc giá trị lớn cỡ nào. Đây chính là sự thật duy nhất khiến số dấu chấm động hành xử theo cách của nó. Độ chính xác là *tương đối* — tỉ lệ ULP(v)/v xấp xỉ 2^−p ở mọi nơi, nên một số float giữ được xấp xỉ cùng số chữ số có nghĩa ở 0,001 cũng như ở một tỉ — và đó mới là đơn vị đúng để nói về sai số: "đúng trong phạm vi một ULP" là một phát biểu về định dạng, còn "đúng trong phạm vi 0,0001" là phát biểu sẽ thôi đúng khi các con số lớn lên.

V

1 mục
41

velocity

×1
danh từ · agile Software

Số story point một đội hoàn thành trong một Sprint — một tốc độ, nên nó là một chuỗi số chứ không phải một con số.

chi tiết

Velocity được đo sau khi làm xong chứ không phải được lên kế hoạch: nó là những gì đội thực sự đóng lại được. Vì là phép đếm trên một cửa sổ cố định, nó dao động vì những lý do chẳng liên quan gì tới năng lực — một người nghỉ ốm, một Story hoá ra dễ hơn tưởng, một Sprint bị một sự cố nuốt mất. Chính dao động đó khiến một quý là một *chuỗi* chứ không phải một con số, và khiến mọi tuyên bố "velocity đã tăng" phải vượt qua được nhiễu trước khi có nghĩa.

Một tài liệu sống. Cập nhật lần cuối vào ngày mình dùng một từ mới.

maxubrq.space / glossary Một cuốn sổ tay công khai · est. 2024 © 2026