Tất cả nhật ký · Đăng ngày 2026-10-29
Dữ liệu học tập lớn đến mức đám mây không chứa nổi
Một ngày nọ, tiến độ của một bạn học viên đột nhiên không sao lưu được nữa, cả trên điện thoại lẫn trên máy tính. Nguyên nhân không phải do mạng, cũng không phải do ứng dụng bị lỗi, mà vì dữ liệu học tập đã lớn quá, vượt qua giới hạn mà đám mây có thể lưu cho một bản ghi. Mà chỉ vượt một chút xíu. Bài này kể lại chúng tôi đã tìm ra nguyên nhân như thế nào, và sắp tới chúng tôi làm gì để không ai bị kẹt ở đó nữa.
Một bản ghi, và giới hạn của nó
Toàn bộ tiến độ của bạn trong Chinh Phục 990, gồm các câu đã làm, các từ đã học, mục đã lưu và ghi chú, số ngày luyện tập liên tiếp, đều được lưu trên đám mây thành một bản ghi duy nhất. Khi bạn đăng nhập trên thiết bị khác, ứng dụng sẽ tải bản ghi này về; luyện tập xong, ứng dụng lại gửi bản đã cập nhật lên.
Bản ghi này có một giới hạn cứng: khoảng 1 MB. Bản ghi của hầu hết mọi người chỉ từ vài chục đến vài trăm KB, còn rất xa giới hạn. Nhưng bạn luyện tập càng lâu, lưu càng nhiều mục và viết càng nhiều ghi chú thì bản ghi càng dài ra.
Bản ghi của bạn học viên này đã vượt giới hạn 231 byte, chừng một hai câu ghi chú.
Chuyện gì xảy ra khi vượt giới hạn
Gặp bản ghi vượt giới hạn, đám mây không nhận một phần mà từ chối toàn bộ. Vì vậy, kể từ lúc đó:
- lần sao lưu nào cũng bị từ chối, và cứ lưu thêm một câu hay viết thêm một ghi chú là bản ghi lại lớn hơn, càng khó lọt qua;
- ngay sau khi chuyển sang thiết bị khác, ứng dụng phải chờ tải xong tiến độ mới nhất trên đám mây mới cho bạn luyện tập, nên cứ kẹt mãi ở màn hình đó;
- màn hình chỉ hiện một thông báo chung chung kiểu "Đồng bộ không thành công, hãy kiểm tra kết nối", khiến người dùng tưởng là lỗi mạng và cứ bấm thử lại.
Thật ra ban đầu chúng tôi cũng chưa chắc đây là nguyên nhân. Cho đến khi tìm thấy trong báo cáo lỗi (bản ghi kỹ thuật mà ứng dụng tự động gửi về khi có sự cố, không chứa nội dung học tập của bạn) câu mà đám mây ghi lại khi từ chối: bản ghi này có kích thước 1,048,807 byte, vượt mức cho phép là 1,048,576. Lúc đó mới chắc chắn, chính là nó.
Lần sửa này: hai việc
Thứ nhất: dù không sao lưu được, bạn cũng không còn bị kẹt.
Khi bản ghi quá lớn, ứng dụng vẫn tải tiến độ của các thiết bị khác trên đám mây về, gộp vào, rồi cho bạn tiếp tục luyện tập. Tiến độ mới trên thiết bị này vẫn được giữ nguyên trong máy, và sẽ được gửi lên khi có thể. Lời nhắn trên màn hình cũng được đổi lại cho đúng sự thật: "Dữ liệu học tập của bạn quá lớn nên tạm thời chưa thể sao lưu lên đám mây. Mọi dữ liệu trên thiết bị này vẫn còn nguyên, bạn có thể tiếp tục luyện tập."
Ứng dụng cũng không còn thử lại cứ vài giây một lần. Trước đây mỗi lần thử lại đều phải tải lại toàn bộ bản ghi gần 1 MB, tốn dữ liệu di động mà chẳng được gì. Giờ ứng dụng chỉ thử lại khi bạn mở lại ứng dụng, bấm đồng bộ, hoặc khi thiết bị khác có cập nhật.
Thứ hai: giúp bạn học viên này sao lưu lại được.
Xem kỹ bản ghi của bạn học viên này, chúng tôi thấy gần một nửa dung lượng nằm ở hai bản sao cũ bị trùng: một là danh sách mục đã lưu, một là ghi chú cho các mục đó. Đây là định dạng cũ từ trước bản cập nhật tháng 8. Sau bản cập nhật đó, mọi mục đã lưu và ghi chú đều đã được lưu riêng theo định dạng mới; hai bản cũ chỉ còn giữ lại cho các phiên bản ứng dụng cũ chưa cập nhật.
Vì vậy, với những tài khoản đã từng bị đám mây từ chối, trước khi gửi lên, ứng dụng sẽ kiểm tra để chắc chắn định dạng mới thật sự có đủ mọi mục đã lưu và mọi ghi chú, không thiếu một mục nào, rồi mới bỏ hai bản cũ đó ra khỏi lần gửi. Bản ghi của bạn học viên này giảm từ khoảng 1,06 MB xuống khoảng 600 KB, và việc sao lưu hoạt động trở lại.
Có một điều chúng tôi muốn nói rõ: không có dữ liệu nào bị xóa. Thứ được bỏ ra chỉ là "nội dung gửi lên lần đó"; dữ liệu trên thiết bị của bạn không bị động đến một chữ nào, và không có mục đã lưu hay ghi chú nào biến mất.
Nhưng thật lòng mà nói
- Đây là cách nới thêm chỗ, chưa phải giải pháp triệt để. Mục đã lưu, ghi chú và lịch sử luyện tập sẽ còn tăng mãi, nên những bạn luyện tập chăm nhất sớm muộn cũng sẽ chạm lại giới hạn này. Giải pháp thật sự là tách những phần quá lớn thành nhiều phần nhỏ để lưu riêng, khiến giới hạn không còn là vấn đề. Việc này cần điều chỉnh phía đám mây trước, rồi chờ các phiên bản ứng dụng cũ được thay thế, nên sẽ làm dần qua vài phiên bản.
- Các phiên bản ứng dụng rất cũ sẽ chịu thiệt một chút. Các phiên bản trước tháng 8 chỉ đọc được định dạng cũ. Trên những tài khoản "đã bị từ chối", chúng có thể không hiện các mục mới lưu; bản thân dữ liệu không mất, cập nhật ứng dụng là sẽ hiện ra. Chúng tôi đã kiểm tra: hiện tại không có ai đăng ký trả phí hay mua trọn đời mà còn dùng phiên bản cũ đến thế.
- Cả hai thiết bị đều cần cập nhật. Bản sửa sẽ có trong phiên bản tiếp theo. Thiết bị nào còn ở phiên bản cũ thì phải cập nhật xong mới gửi được tiến độ mới của chính nó lên.
- Giờ đây chúng tôi sẽ biết trước bạn. Khi bản ghi chạm 640 KB, rồi 850 KB, ứng dụng sẽ gửi về cho chúng tôi một lời nhắc ở mỗi mốc. Lần tới khi có người sắp chạm giới hạn, chúng tôi mong sẽ thấy trước khi chính người đó nhận ra.
Lần sửa này bắt đầu từ một báo cáo gửi từ trong ứng dụng. Cảm ơn bạn học viên ấy đã kiên nhẫn trả lời từng câu hỏi của chúng tôi, và chưa từng xóa ứng dụng hay đăng xuất. Nhờ vậy mà tiến độ trên cả hai thiết bị vẫn còn nguyên vẹn. Để báo lỗi, hãy dùng mục "Báo cáo sự cố" trong ứng dụng: báo cáo gửi từ đó có kèm số phiên bản, giúp chúng tôi lần ra nguyên nhân ngay.