在集群環境中讀取數據庫表的最快方法 (Fastest way to read from database table in cluster environment)


問題描述

在集群環境中讀取數據庫表的最快方法 (Fastest way to read from database table in cluster environment)

What would be a best approach to read from very big database table in clustered environment.

Lets say we need to read huge DB table as fast as we can and then send this data to jms queue. And we would like to avoid the same data to be read since it will require processing, so preferably no intersections. And this application to be deployed in jboss cluster so nodes should some how to communicate.

So in one node case ‑ non clustered environment I just can have one process reading the table. In two node case ‑ this reading should be some how coordinated to avoid the same data to be read by both nodes... Three nodes etc...

There is no knowledge on how many nodes would be in target environment, nodes can communicate using db table or jboss cache

So it is clear that read in blocks or pages per process will give maximum performance.

And it would be easy task in simple java multi threading environment since we know how many threads would be reading and it easy math how to divide in pages and assign read of page to a single thread.

But in unknown how many nodes scenario there should be some protocol between nodes to communicate and optimize reading.

‑‑‑‑‑

參考解法

方法 1:

As you have to keep huge DB data distributed I'd suggest you to take a look into some kind of distributed hash tables. I used GemFire in one of enterprise project with the same requirements and it's well‑proven. But you always have a limit of max DB connections so you can't grow limitless.

(by d3ni5Viktor Stolbin)

參考文件

  1. Fastest way to read from database table in cluster environment (CC BY‑SA 3.0/4.0)

#performance #cluster-computing #Database #jboss #multithreading






相關問題

為什麼 Document.html() 這麼慢? (Why is Document.html() so slow?)

Sql中的WHERE,結合兩個快速條件會成倍增加成本 (WHERE in Sql, combining two fast conditions multiplies costs many times)

Tối ưu hóa truy vấn MySQL PHP - Phản hồi (MySQL PHP Query Optimization - Feedbacks)

jGRASP 上的編譯時間很慢——為什麼? (Slow compile times on jGRASP -- why?)

Pandas - 將直方圖桶分配給每一行 (Pandas - assign histogram bucket to each row)

VB.NET 中 Dictionary(Of String, SomeReferenceType) 的性能 (Performance of Dictionary(Of String, SomeReferenceType) in VB.NET)

發送到 Web 客戶端需要多少 JSON? (How much is too much JSON to send over to a web client?)

過期/緩存控制標頭的問題 (Problem with Expires/Cache-Control Headers)

iOS UI 性能分析 (iOS UI performance profiling)

限制內存機器性能的技巧?IIS 應用程序 (Tips for limit memory machine performance? IIS application)

監控 Rails 中站點性能的最佳方法是什麼 (What is the best approach to monitor site performance in rails)

決定 HTTP 標頭的字符集。我應該簡單地把 utf-8 和 fuggedaboutit 放在一起嗎? (Deciding charset for HTTP Headers. Should i simply put utf-8 and fuggedaboutit?)







留言討論