Đây sẽ là một câu hỏi khó nhưng tôi sẽ cố gắng: nhiệm vụ của chúng tôi là cho ăn ESP nhanh ESP với gigabyte dữ liệu. Số lượng cuối cùng của dữ liệu được lập chỉ mục là một nơi nào đó trong vùng lân cận của 50-60GB.Làm thế nào để có hiệu quả nạp ESP nhanh chóng với gigabyte dữ liệu với .NET
FAST có API .NET nhưng các thành phần cốt lõi được viết bằng Python (đường dẫn xử lý tới tài liệu chỉ mục). Thách thức là giao tiếp đáng tin cậy với hệ thống trong khi cho nó gigabyte dữ liệu để lập chỉ mục.
Những vấn đề nảy sinh với NHANH đây là:
hệ thống là kỳ quặc khi nó được cho ăn quá nhiều dữ liệu cùng một lúc vì nó muốn reindex dữ liệu của nó trong thời gian đó những gì còn lại hệ thống không thể truy cập trong nhiều giờ. Không thể chấp nhận.
không phải là tùy chọn để xếp hàng tất cả dữ liệu và cấp dữ liệu một cách liên tục một mục tại một thời điểm vì việc này sẽ mất quá nhiều thời gian (vài ngày).
khi một mục không thể được lập chỉ mục bởi NHANH khách hàng có để lại nuôi mục. Để làm việc này, hệ thống được yêu cầu gọi phương thức gọi lại để thông báo cho khách hàng về lỗi. Tuy nhiên, bất cứ khi nào hệ thống hết thời gian cho ăn, khách hàng không thể phản ứng với thời gian chờ vì cuộc gọi lại đó không bao giờ được gọi. Do đó khách hàng đang chết đói. Dữ liệu nằm trong hàng đợi nhưng không thể được chuyển vào hệ thống. Hàng đợi bị thu hẹp. Dữ liệu bị mất. Bạn có được ý tưởng.
Ghi chú:
- ăn một mặt hàng có thể mất vài giây cho một mục nhỏ và lên đến 5-8 giờ cho một mục lớn duy nhất.
- các mục được lập chỉ mục là cả nhị phân và văn bản.
- mục tiêu là để lập chỉ mục đầy đủ để thực hiện "chỉ" 48-72h, tức là phải xảy ra vào cuối tuần.
- Đường ống xử lý tài liệu FAST (mã Python) ở đây có khoảng 30 giai đoạn mỗi. Có tổng cộng 27 đường ống trong số này viết là .
Nói tóm lại:
Thách thức chính là để nuôi hệ thống với mục lớn nhỏ, tại chỉ là tốc độ phải (không quá nhanh vì nó có thể thu gọn hoặc chạy vào vấn đề bộ nhớ; không quá chậm vì quá trình này sẽ mất quá nhiều thời gian), đồng thời, theo cách song song như chuỗi chạy không đồng bộ. Trong ý kiến của tôi phải có một thuật toán quyết định khi nào cần ăn mục nào và số lượng cùng một lúc. Lập trình song song đến với tâm trí.
Cũng có thể có nhiều "hàng đợi" trong đó mỗi hàng đợi (quá trình) được dành riêng cho các mục có kích thước nhất định được tải trong hàng đợi và sau đó được cấp một (trong chuỗi công việc).
Tôi tò mò nếu có ai từng làm bất cứ điều gì như thế này hoặc bạn sẽ gặp phải vấn đề như thế nào.
EDIT: Một lần nữa, tôi không tìm cách "sửa" ESP nhanh hoặc cải thiện hoạt động bên trong . Thách thức là sử dụng hiệu quả nó!
Bạn có bao nhiêu "mục lớn"? Có vẻ như tất cả các vấn đề khác sang một bên có thể ngăn cản bạn đánh dấu 72 giờ của bạn. – Yuck
Bạn sẽ phải cung cấp một cái gì đó cho chúng tôi để làm việc với. Tại thời điểm này sẽ rất khó trả lời câu hỏi của bạn vì chúng tôi không có ngữ cảnh. Bạn cần cung cấp thêm thông tin chi tiết như bạn có thể. –
Hiện tại, thật khó để nói, liệu các sự cố của bạn có xuất phát từ lỗi trong sản phẩm của bên thứ 3 hay từ một thứ gì khác không. Mất dữ liệu vv âm thanh như lỗi trong sản phẩm này. Có lẽ một cách tiếp cận phi kỹ thuật sẽ là yêu cầu những lỗi đó được sửa chữa. –