2013-07-23 30 views
18

Nếu ai đó xây dựng cơ sở dữ liệu trên cơ sở dữ liệu khác, chẳng hạn như twitter đã thực hiện, cơ sở dữ liệu đó có kế thừa các hạn chế và không hiệu quả của cơ sở dữ liệu cơ bản không?Cơ sở dữ liệu đồ thị có thể phân phối dữ liệu hiệu quả trên các nút không?

Tôi đặc biệt quan tâm đến titan db (http://thinkaurelius.com) vì yêu cầu của họ hỗ trợ chia tách tập dữ liệu một cách hiệu quả trên các nút.

Họ tuyên bố hỗ trợ phân phối dữ liệu trên các nút, vì hiệu quả của cassandra. Tuy nhiên, neo4j cho rằng lý do chúng không phân phối dữ liệu giữa các nút, nhưng thay vì sao chép toàn bộ tập dữ liệu trên mỗi nút, bởi vì bất kỳ quá trình truyền tải biểu đồ nào rời khỏi một nút và phải di chuyển qua mạng ethernet, là quá chậm thực tế.

Vì cassandra không có kiến ​​thức về biểu đồ, nên nó không thể tối ưu hóa để giữ cho quá trình truyền tải đồ thị trên một nút. Do đó, hầu hết các traversals đồ thị sẽ được trên các ranh giới nút.

Người khổng lồ có yêu cầu chia tỷ lệ hiệu quả trên các nút đúng không?

Trả lời

19

Titan xác định thứ tự sắp xếp chính của phụ trợ lưu trữ cơ bản (BOP cho Cassandra, mặc định cho HBase) và sau đó gán id cho đỉnh sao cho đỉnh được gán cho cùng một khối phân vùng có id được gán cho cùng một vật lý máy móc. Nói cách khác, Titan "hiểu" cách phụ trợ lưu trữ cơ bản phân phối dữ liệu và sử dụng các kỹ thuật phân vùng đồ thị khai thác nhận thức này. Titan sử dụng phân vùng bán tự động kết hợp kiến ​​thức miền.

Trong tiêu chuẩn Pearson (http://arli.us/edu-planet-scale) biểu đồ được phân đoạn theo các trường đại học là tiêu chí phân vùng tối ưu gần nhất cho tập dữ liệu cụ thể này. Nếu không có phân vùng, việc mở rộng tới 120 tỷ cạnh sẽ gần như không thể.

Titan xây dựng trên các công nghệ đã được chứng minh (cho quy mô, độ bền, sao lưu nóng, tính khả dụng, khôi phục thảm họa, v.v.) trong khi đổi mới trên lớp biểu đồ. Đây là cùng một tuyến đường mà cả hai, Twitter của Flock và Facebook của Tao, đã thực hiện. Trong khi điều này có nghĩa rằng Titan là chậm hơn ở những cuộc đi rất sâu, nó cho phép Titan để quy mô để đồ thị rất lớn hoặc rất nhiều giao dịch đồng thời (đọc và viết).

0

Câu hỏi hay. Tôi nghĩ rằng đây là tất cả về hiệu chuẩn. Twitter (sử dụng Cassandra) sử dụng một cơ sở dữ liệu đồ thị một cách thực sự cụ thể (chúng chỉ có hai mức độ "chiều sâu") để truy vấn không phải đi qua các đồ thị dài (và chúng không bị buộc phải sao chép toàn bộ tập dữ liệu). Tôi nghĩ cả Titan và Neo4j đều đúng, Neo4j cố gắng cung cấp một cơ sở dữ liệu đồ thị cho mục đích chung, vì vậy bạn có nhiều giải pháp tùy thuộc vào cách bạn sử dụng nó và họ không biết mọi người sẽ sử dụng nó như thế nào : sao chép toàn bộ tập dữ liệu.

Trong thực tế, nếu bạn không sao chép toàn bộ tập dữ liệu và bạn muốn di chuyển qua một đường dẫn dài trong biểu đồ của bạn, nó sẽ chậm.

Vì vậy, việc sử dụng của bạn sẽ như thế nào? Tôi không bao giờ sử dụng Titan nhưng một thử nghiệm tốt sẽ là để so sánh hiệu suất của nó với Neo4j tùy thuộc vào độ sâu "" của các truy vấn.

+0

Dường như Titan hỗ trợ bất kỳ loại biểu đồ nào, vì cassandra (được cho là) ​​không biết gì về đồ thị - chỉ là dữ liệu thô. Không may, tôi không có một vài máy chủ để sử dụng để thử nghiệm. Tôi không nghĩ rằng một điểm chuẩn trên 5 máy ảo đang chạy trên cùng ổ đĩa cứng, với một mạng nội bộ sẽ là một cách công bằng để kiểm tra điều này. –