Về tham số wsrep_auto_increment_control
TIL
498
Male avatar

manhdung viết ngày 20/07/2016

Về tham số wsrep_auto_increment_control trong Galera cluster

Bài viết bắt nguồn từ câu hỏi của một bạn dev bên mình khi quan sát thấy các gía trị id tự động của mỗi node trong galera cluster không đồng nhất liên tiếp nhau.

Lý do đằng sau hiện tượng này là các gía trị auto_increment_control và auto_increment_offset

Cần chú ý kiểm tra xem liệu wsrep_auto_increment_control có được on không
và các giá trị auto_increment_increment và auto_increment_offset trên từng server là bao nhiêu.Mặc định auto_increment_increment= 3 còn auto_increment_offset trên mỗi con sẽ khác nhau, thường là 1,2,3

vì vậy nếu record đến từ server khác nhau cho cùng table sẽ cho ra các id khác nhau:
1 4 7 10
2 5 8 11
3 6 9 12

Mục đích để đảm bảo việc insert record vào table từ các server khác nhau sẽ không dẫn đến trùng primary key.

kết quả dẫn đến trường id primary key auto increment sẽ thành:
1 3 5 6 9 10…
1 3 5 là các record đến từ ba server khác nhau
6 9 là các record đến từ cùng một server

Ví dụ
CREATE TABLE t1(c1 INT AUTO_INCREMENT PRIMARY KEY, c2 INT)ENGINE=InnoDB;

trên db có auto_increment_offset=3 tôi tạo record:
thì kết quả:
MariaDB [test_auto]> select * from t1;

+----+------+
| c1 | c2 |
+----+------+
| 3 | 1 |
| 6 | 2 |
+----+------+
2 rows in set (0.00 sec)

sang một db có auto_increment_offset=1 tôi tạo record thì kết quả:
MariaDB [test_auto]> select * from t1;

+----+------+
| c1 | c2 |
+----+------+
| 3 | 1 |
| 6 | 2 |
| 7 | 3 |
+----+------+
3 rows in set (0.00 sec)

Hoàn toàn đúng theo phân tích của tài liệu và suy đoán cá nhân.

Tham khảo:
https://mariadb.org/auto-increments-in-galera/

manhdung 20-07-2016

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

manhdung

44 bài viết.
240 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
67 11
Giới thiệu RabbitMQ là một message broker ( messageoriented middleware) sử dụng giao thức AMQP Advanced Message Queue Protocol (Đây là giao thức ph...
manhdung viết hơn 2 năm trước
67 11
Male avatar
45 4
Giả định bạn tiếp nhận một server mới toanh, bạn cần tìm một số thông tin về nó như loại CPU, loại main, loại memory, memory dùng của hãng nào... c...
manhdung viết hơn 1 năm trước
45 4
Male avatar
38 7
Giới thiệu MongoDB là một giải pháp nosql database. Data được lưu ở dạng các bson document. Hỗ trợ vertical scaling và horizontal scaling, dynamic...
manhdung viết hơn 2 năm trước
38 7
Bài viết liên quan
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
White
1 1
Chào mọi người, hôm nay mình viết một bài TIL nhỏ về cách lấy độ phân giải của màn hình hiện tại đang sử dụng. xdpyinfo | grep dimensions Kết quả...
namtx viết 7 tháng trước
1 1
White
8 0
Lấy fake path của file trong html input Ngữ cảnh: em cần làm một cái nút tải ảnh lên có preview. GIải pháp đầu: Dùng (Link) đọc file ảnh thành ba...
Hoàng Duy viết gần 2 năm trước
8 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
44 bài viết.
240 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!