2012-01-02 44 views
11

Tôi đang sử dụng iCloud với Dữ liệu cốt lõi, dựa trên thiết kế ứng dụng "Thư viện kiểu" SQLite theo quy định của Apple. Trong khi chức năng cơ bản hoạt động rất tốt, tôi quan tâm đến nhật ký giao dịch và cách chúng được quản lý.Quản lý dữ liệu lõi Bản ghi giao dịch iCloud

Trong khi cơ sở dữ liệu cho ứng dụng của tôi không lớn, nó rất hoạt động và ngăn xếp dữ liệu lõi được lưu nhiều lần trong khi ứng dụng đang được sử dụng. Tôi đã nhận thấy rằng nhật ký giao dịch mới được tạo để lưu mỗi dữ liệu cốt lõi. Kết quả cuối cùng là tôi có một TON nhật ký giao dịch và chúng chiếm nhiều không gian hơn so với cơ sở dữ liệu thực tế.

1) Các nhật ký giao dịch có được tự động cắt xén/coalesced hay chúng sẽ tiếp tục phát triển vô thời hạn, cuối cùng đánh số hàng nghìn và chiếm nhiều megabyte? Dường như cách duy nhất để thanh lọc thủ công nhật ký giao dịch và tạo lại tệp lưu trữ .baseline sẽ là tắt và sau đó bật lại iCloud (xóa vùng chứa phổ biến và bắt đầu mới). Nhưng điều này rõ ràng không phải là một giải pháp tốt.

2) Cấu trúc hiện tại của tôi lưu trữ dữ liệu lõi thường xuyên, ngay cả đối với những thay đổi nhỏ. Nói chung, điều này có ý nghĩa vì cơ sở dữ liệu của tôi nhỏ và tiết kiệm thường xuyên đảm bảo rằng tệp cơ sở dữ liệu luôn được cập nhật. Tuy nhiên, với các vấn đề trên với nhật ký giao dịch, tôi nghĩ rằng có lẽ tôi nên giảm thiểu tối đa việc lưu vào cơ sở dữ liệu. Có thể làm như vậy trên cơ sở theo thời gian và/hoặc trạng thái chuyển đổi ứng dụng.

3) Ngay cả khi tôi giảm thiểu số lượng nhật ký giao dịch bằng cách giảm tần suất tôi lưu cơ sở dữ liệu, có vẻ như có vấn đề ở đây, vì nhật ký sẽ tiếp tục tăng theo thời gian. Cuối cùng, lợi ích của thiết kế "nhật ký giao dịch" sẽ trở thành gánh nặng về lượng lưu trữ iCloud được sử dụng và đồng bộ iCloud ban đầu như một thiết bị mới được thêm vào.

Vì Apple đã cung cấp thông tin rất thưa thớt trên iCloud và hầu như không có gì dưới dạng "thực tiễn tốt nhất", tôi sẽ đánh giá cao bất kỳ thông tin chi tiết nào từ cộng đồng.

+1

Tôi nghĩ đây là một câu hỏi hay, nhưng tôi khuyên bạn nên đặt câu hỏi này trong Diễn đàn nhà phát triển Apple để bạn có thể nhận phản hồi từ các kỹ sư thực sự thiết kế và phát triển điều này. Họ có thể yêu cầu bạn cung cấp phản hồi cụ thể dưới dạng báo cáo lỗi/yêu cầu tính năng. –

Trả lời

3

Tôi đã gửi một radar về vấn đề này và nhận được trả lời sau. Họ lưu ý rằng nó sẽ hoạt động chính xác trong iOS 5.1, mặc dù tôi chưa tự mình xác minh điều này.

Làm rõ cho bất kỳ ai có thể hiểu lầm những điều sau đây. Nhật ký giao dịch sẽ được làm sạch bởi các phần tử dữ liệu cốt lõi. Đây KHÔNG phải là cái gì đó nên được thực hiện bởi chính ứng dụng đó.

Kỹ thuật đã cung cấp thông tin phản hồi sau về vấn đề này:

Các bản ghi giao dịch được dự định sẽ được xóa sau khi tất cả các đồng nghiệp tích cực đã có một cơ hội để đọc chúng, và chúng vượt một ngưỡng của không gian tiêu thụ. Đã xảy ra sự cố trước đó đã ngăn các thiết bị thực hiện đúng cách như vậy.

Các vấn đề liên quan