2013-10-18 15 views
7

Nhìn vào công nhân ZEO của tôi, tôi có thể nhìn thấy khá nhiều:Làm thế nào để thoát khỏi ConflictError trên công nhân ZEO?

2013-10-18T11:59:54 INFO ZPublisher.Conflict ConflictError at 
/VirtualHostBase/http/www.domain.com:80/Plone/VirtualHostRoot/: 
database conflict error (oid 0x533cd5, class 
persistent.mapping.PersistentMapping) (78 conflicts (0 unresolved) 
since startup at Mon Oct 14 04:09:45 2013) 

Khi họ được ghi lại như INFO tôi nên cho rằng không có hại gì cả?

Và tôi đoán rằng nếu có xung đột là do có quá nhiều ghi trên ZODB?

Trả lời

9

Xung đột thực sự là do hai yêu cầu đang cố gắng thay đổi PersistentMapping cùng một lúc. Một trong số này sau đó buộc phải thử lại cam kết.

Sử dụng các mục nhập này để xác định tắc nghẽn trong ứng dụng của bạn; có lẽ thay thế ánh xạ cụ thể bằng một số BTree.OOBTree để giảm thiểu xung đột bằng cách truyền các cặp khóa-giá trị ra ngoài các nhóm liên tục riêng biệt.

Không có dữ liệu về lưu lượng truy cập và những gì ứng dụng của bạn thực hiện, không thể nói nếu 78 xung đột trong 4 ngày là rất nhiều hoặc một chút và nếu nó đáng giá trong khi bạn chuyển sang thùng đựng hàng.

6

Lỗi xung đột không phải là - bản thân họ - có hại. Máy chủ ZEO sẽ thử lại vài lần để khắc phục lỗi. Nhưng chúng là một dấu hiệu của sự tranh chấp trong cơ sở dữ liệu và rất nhiều trong số chúng sẽ chỉ ra rằng bạn có một nút cổ chai trong cấu hình hiện tại của bạn. Người dùng của bạn sẽ sớm phàn nàn về hiệu suất kém.

Bạn có lẽ nên bắt đầu phân tích để xác định xem bạn có một số gói phần mềm bổ trợ đang ghi quá mức hoặc không hiệu quả cho cơ sở dữ liệu hay không. Trường hợp xấu nhất, ví dụ, sẽ là một số mã đang cố gắng ghi vào cơ sở dữ liệu trên mọi tải trang như một trình ghi lưu lượng truy cập. ZODB được tối ưu hóa cho việc đọc, không phải bằng văn bản và các hoạt động đó phải được thiết kế lại để lưu trữ dữ liệu của chúng ở đâu đó khác với ZODB.

Nếu đó chỉ là viết nội dung có vấn đề, hãy tìm cách giảm chỉ mục danh mục và siêu dữ liệu. Nếu có thể, hãy thay thế nội dung kiểu Archetypes cũ bằng các loại nội dung Thủ Thuật. Thủ thuật hiệu quả hơn nhiều trong việc tạo nội dung.

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