
我在本地使用 Cassandra 進行開發已經有一段時間了,查詢回應時間約為 50 毫秒。
我已經從 cassandra 社區 ami 設置了一個 5 節點 EC2 集群,一切都很順利,opscenter 已啟動並運行,沒有任何問題。
當我從 aws 網路外部的機器執行任何查詢時,無論是建立鍵空間,還是在空表上執行 select *,回應時間都超過 20 秒。
當我從同一區域的機器查詢時,回應時間在1到2秒之間,仍然很慢。
EC2 機台皆為 m1.large eu-west-1a
您知道為什麼會發生這種情況或我應該在哪裡尋找問題嗎?
答案1
目前版本的 DevCenter 旨在支援作為主要場景運行(較長的)CQL 腳本(相對於一個接一個執行查詢的互動式控制台)。 DevCenter 使用 Cassandra 的 DataStax Java 驅動程式作為底層連接器。
對於上面提到的場景,為了確保不存在“衝突”,每次執行都會創建一個新的Session。當Session初始化時,驅動器會執行自動節點發現,創建連接池等。根據從客戶端電腦到 EC2 節點的延遲、叢集的大小以及這些節點的配置(請參閱連線需求),此初始化階段可能會非常昂貴。
正如您可以想像的那樣,準備時間並不代表執行 DDL 腳本和相當大的插入/更新的時間。但對於互動式場景,它將導致次優行為(您所描述的行為)
DevCenter 的下一個版本將解決互動式場景並對其進行最佳化,以便使用者體驗達到您的預期。支持這種情況是我們的首要任務。