Bài học chính
Quá trình di chuyển Sổ cái Binance của chúng tôi nhằm giải quyết vấn đề tài khoản nóng cố hữu trên máy chủ cơ sở dữ liệu quan hệ trước đây của chúng tôi.
Một sàn giao dịch tiền điện tử hoạt động 24/7, 365 ngày trong năm mà không cần bảo trì để tận dụng đòn bẩy, không giống như một sàn giao dịch thông thường có giờ nghỉ hàng ngày.
Việc di chuyển sang Sổ cái Binance mới phải diễn ra trực tuyến, đảm bảo an toàn cho tài sản của người dùng và không gây ra bất kỳ tác động kinh doanh nào, vì vậy trải nghiệm của người dùng cuối vẫn được liền mạch.
Chúng tôi đã chọn chiến lược di chuyển dần dần theo từng tài khoản thay vì chiến lược chuyển đổi toàn bộ cùng một lúc như được sử dụng bởi công cụ gh-ost.
Tìm hiểu thêm về quá trình di chuyển Sổ cái Binance của chúng tôi cũng như các công cụ và kỹ thuật được sử dụng trong suốt quá trình.
Binance Ledger củng cố các hoạt động kỹ thuật của chúng tôi và xử lý hàng triệu giao dịch hàng ngày trên cơ sở người dùng rộng lớn. Bạn có thể tìm hiểu thêm về hệ thống, mục tiêu và thách thức của nó trong Cách Sổ cái Binance hỗ trợ blog Trải nghiệm Binance của bạn. Quá trình chuyển đổi từ phiên bản cũ sang phiên bản mới của chúng tôi gặp phải một thách thức điển hình: làm thế nào chúng tôi có thể nâng cấp động cơ khi máy bay vẫn đang bay? Chúng tôi phải di chuyển tài sản của người dùng và giữ tiền SAFU là ưu tiên hàng đầu của chúng tôi.
Những thách thức di chuyển chính của Binance
Danh sách các thách thức sau đây phải được giải quyết để đạt được các mục tiêu đã thiết lập của chúng tôi:
Đảm bảo tính chính xác đầy đủ của sổ cái mới
Có thể phát hiện mọi vấn đề về quỹ và khắc phục kịp thời và chính xác
Không phát sinh thời gian chết cho thượng nguồn
So sánh sứ mệnh di chuyển của chúng tôi với cơ sở dữ liệu trực tuyến DDL
Trước khi đi sâu vào chi tiết về giải pháp của mình, hãy xem vấn đề thường gặp khi thực hiện DDL (ngôn ngữ định nghĩa dữ liệu) trực tuyến cho một bảng lớn. Chính xác thì DDL là gì? Chà, hãy tưởng tượng một bảng có hàng trăm triệu hàng mà chúng ta cần thêm một cột khác. Chúng tôi muốn thực hiện việc này trực tuyến mà không làm gián đoạn hoạt động kinh doanh.
Công cụ gh-ost được sử dụng rộng rãi để giải quyết vấn đề này và bạn có thể thấy nó hoạt động như thế nào trong sơ đồ sau.
Quá trình này về cơ bản bao gồm hai giai đoạn:
Giai đoạn đồng bộ hóa tiếp tục cho đến khi bảng mới hoàn toàn giống với bảng gốc. Có hai loại dữ liệu được đồng bộ hóa:
Dữ liệu hiện có
Dữ liệu gia tăng (dữ liệu mới được tạo từ bảng gốc trong quá trình di chuyển đang diễn ra)
Giai đoạn chuyển đổi hoán đổi bảng gốc với bảng mới mà không làm gián đoạn bất kỳ giao dịch nào đang diễn ra.
Vấn đề của sổ cái Binance khác nhau ở đâu
Mặc dù có một số điểm tương đồng, Binance Ledger vẫn có một số thách thức đặc biệt trong sứ mệnh di chuyển trực tuyến của chúng tôi.
Thứ nhất, hệ thống phụ trợ của Binance hoạt động trong môi trường phân tán, trong khi cơ sở dữ liệu trực tuyến DDL hoạt động trong môi trường nguyên khối. Thứ hai, chúng tôi không đủ khả năng áp dụng phương pháp cắt giảm tất cả cùng một lúc vì dữ liệu là tài sản của người dùng. Cuối cùng, chúng tôi cần đảm bảo rằng tất cả các dịch vụ liên quan đều hoạt động tổng thể trước khi bắt đầu thực hiện di chuyển hàng loạt.
Như trong ví dụ DDL trực tuyến trước đó, quá trình di chuyển của chúng tôi cũng có hai giai đoạn:
Giai đoạn đồng bộ hóa, trong đó dịch vụ sao chép chuyên dụng được xây dựng đặc biệt để đồng bộ hóa số dư từ sổ cái cũ sang sổ cái mới
Giai đoạn chuyển đổi theo tài khoản
Phương pháp tiếp cận dựa trên giai đoạn
Nhiệm vụ rất lớn và như người ta nói, Rome không được xây dựng trong một ngày. Cách tiếp cận chia để trị thường có tác dụng như một sự quyến rũ khi đối mặt với một phạm vi vấn đề lớn và phức tạp.
Giai đoạn 1: Nhân rộng
Tại sao
Chúng ta có thể tóm tắt quá trình suy nghĩ của mình ở đây thành hai điểm chính:
Chúng tôi đã mô hình hóa Binance Ledger như một nô lệ mới tham gia cụm MySQL hiện có, hỗ trợ hệ thống sổ cái hiện tại. Bằng cách tận dụng các kỹ thuật sao chép, chúng tôi có thể giữ cho số dư của người dùng được đồng bộ hóa hoàn toàn một cách không đồng bộ.
Sau đó, chúng tôi có thể định tuyến nguyên văn lưu lượng sản xuất tới Sổ cái Binance để xác thực tính chính xác và mạnh mẽ của nó. Ngay cả khi mọi thứ trở nên tồi tệ trong giai đoạn này thì cũng không có tác động gì đến chúng tôi và người dùng của chúng tôi.
cái gì
Dưới đây, chúng tôi đã minh họa quy trình sao chép tổng thể. Con đường quan trọng cần chú ý là:
Chuyển khoản → Sổ cái → Trình sao chép sổ cái Binance → Sổ cái Binance
Làm thế nào
Chúng tôi chia nhỏ quá trình sao chép thành hai bước riêng biệt:
Kết xuất ảnh chụp nhanh DB sổ cái và sau đó nhập nó vào Sổ cái Binance
Sao chép nhật ký bin của sổ cái DB sau thời điểm ảnh chụp nhanh bị kết xuất.
Cuối cùng, dữ liệu về số dư và nhật ký số dư sẽ được giữ đồng bộ hoàn toàn giữa sổ cái cũ và Sổ cái Binance, điều này có thể được xác thực thêm bằng mô-đun đối chiếu đầy đủ.
Khi nào
Binance Ledger đi vào hoạt động vào đầu tháng 8 năm 2022. Sau đó, chúng tôi bắt đầu quá trình sao chép, kéo dài đến giữa tháng 11 năm 2022. Quá trình này là một giai đoạn quan trọng đối với chúng tôi vì tính chính xác của hệ thống sổ cái mới cần được xác thực 100%. Không thể bỏ qua bước này trước khi tiếp tục giai đoạn di chuyển tiếp theo.
Cuối cùng, chúng tôi không tìm thấy vấn đề gì và thực hiện một số quy trình phát hành để cảm thấy thoải mái hơn với tình huống này. Quá trình ba tháng không diễn ra quá nhanh nhưng nó cần thiết cho mục tiêu SAFU của chúng tôi.
Giai đoạn 2: di chuyển trực tuyến
Tại sao
Để di chuyển hàng trăm triệu tài khoản, chúng tôi đã xây dựng công việc di chuyển tùy chỉnh.
cái gì
Dưới đây, chúng tôi mô tả quy trình di chuyển cốt lõi cho một tài khoản:
Dưới đây là một số lưu ý chính cần ghi nhớ:
Hệ thống tài khoản duy trì ánh xạ quyền sở hữu cho từng tài khoản.
Tài khoản A → sổ cái
Tài khoản B → Sổ cái Binance
Tài khoản C → bị cấm
Trước khi di chuyển tài khoản, nếu tồn tại bất kỳ giao dịch đồng thời nào đang chờ xử lý thì giao dịch đó sẽ bị bỏ qua để giảm tác động đến hoạt động kinh doanh.
Chúng tôi đã thay đổi ánh xạ quyền sở hữu từ sổ cái sang bị cấm, không cho phép bất kỳ cập nhật số dư nào nữa, do đó làm cho nó không thể thay đổi được.
Chúng tôi đã đối chiếu số dư giữa sổ cái cũ và sổ cái Binance.
Chúng tôi đã thay đổi ánh xạ quyền sở hữu từ bị cấm sang Sổ cái Binance, cho phép cập nhật số dư trong tương lai được chuyển trực tiếp tới Sổ cái Binance.
Theo chỉ số hiệu suất của chúng tôi, mất trung bình 150 mili giây từ bước 3 đến bước 5. Về lý thuyết, người dùng không thể thực hiện bất kỳ giao dịch nào trong khoảng thời gian di chuyển 150 mili giây này. Hóa ra là không có giao dịch nào bị ảnh hưởng.
Việc thực thi
Tại Binance, chúng tôi ủng hộ nguyên tắc “thực thi tốt hơn là lập kế hoạch tỉ mỉ”. Việc thực thi vững chắc là điều quan trọng đối với sự thành công của chúng tôi và an toàn quỹ luôn là ưu tiên hàng đầu của chúng tôi. Chúng tôi đã áp dụng chiến lược di chuyển dần dần trong khoảng thời gian ba tuần để phát hiện các vấn đề càng sớm càng tốt, từ đó giúp giảm mức độ tác động tiêu cực.
Quá trình hòa giải
Việc đối chiếu là cực kỳ quan trọng trong việc phát hiện kịp thời các bất thường về cân bằng tiềm ẩn từ góc độ khách quan. Chúng tôi có thể tiến hành quy trình theo cách gần như thời gian thực để có hành động kịp thời trước khi mọi việc trở nên tồi tệ hơn. Hai loại mô-đun đối chiếu được phát triển riêng cho quá trình di chuyển trực tuyến: thời gian thực và đầy đủ.
Thời gian thực
Quá trình đối chiếu dựa trên cấp độ giao dịch được xây dựng để phát hiện mọi vấn đề về quỹ trong thời gian thực.
Đầy
Chúng tôi có thể thực hiện đối chiếu đầy đủ theo định kỳ dựa trên ảnh chụp nhanh được đồng bộ hóa với kho dữ liệu. Quá trình này đảm bảo tất cả số dư giữa sổ cái cũ và sổ cái Binance đều giống nhau.
Ví dụ: giả sử chúng ta có 10 triệu người dùng vẫn nằm trên sổ cái cũ. Chúng ta có thể sử dụng sự đối chiếu đầy đủ này để xác minh rằng số dư và nhật ký số dư giữa sổ cái cũ và Sổ cái Binance có giống nhau không.
Kết thúc quá trình di chuyển
Tóm lại, nhiệm vụ được hoàn thành bằng 1) sử dụng các kỹ thuật sao chép để xác thực tính chính xác của Sổ cái Binance mới 2) thực hiện chiến lược di chuyển theo từng tài khoản để nâng cấp công cụ một cách chậm rãi, an toàn nhưng chắc chắn.
Chúng tôi tin rằng mô hình di chuyển trực tuyến nói trên có thể được sử dụng lại trong các nhiệm vụ tương tự. Nếu các quy trình và chủ đề được thảo luận đã khơi dậy sự quan tâm của bạn, tại sao bạn không cân nhắc việc tham gia nhóm? Chúng tôi luôn tìm kiếm những cá nhân tận tâm với quan điểm mới mẻ về những thách thức hàng ngày của chúng tôi tại Binance.
Người giới thiệu
Sổ cái Binance hỗ trợ trải nghiệm Binance của bạn như thế nào
Công cụ di chuyển lược đồ trực tuyến của GitHub cho MySQL
Đọc thêm
Sử dụng MLOps để xây dựng quy trình học máy từ đầu đến cuối theo thời gian thực | Blog Binance
Binance có phải là nơi phù hợp với bạn? Lý do không tham gia Binance | Blog Binance
