序言:節點JS中的最大可寫入流
我正在試驗「多租戶」平面文件數據庫系統。在啓動應用程序之前,在啓動服務器之前,每個平面文件數據庫(我稱之爲日誌)都被轉換爲內存中的大型javascript對象。從那裏應用程序開始它的服務。
應用程序運行時行爲將服務於來自許多不同數據庫(每個域一個數據庫)的請求。所有讀取僅來自內存對象。雖然任何CRUD都修改內存對象並將其流式傳輸到日誌。
問題: 如果我在內存中有N個已經從平面文件中加載的數據庫對象(假設每個平均大約有1MB),那麼我將通過N個寫入流來處理什麼樣的限制?
用於什麼可寫流?你說你將數據讀入內存,所以我不瞭解可寫流的作用。這些流是否具有文件句柄,或者它們只是您自己的對內存中數據的自定義流抽象? – jfriend00
這跟日誌文件沒什麼兩樣。我正在將內存中的數據庫更改傳輸到一個平面文件中......像這樣'fs.createWriteStream('log.txt',{'flags':'a'})''。我可能有1000個這樣的流打開。我沒有使用已經從日記序列化到內存的數據庫的流。日誌包含數據庫的整個歷史記錄,內存對象只包含最新狀態。我還應該提到。 – Kevin
我問的原因是,如果你使用的只是內存的自定義流,那麼除了來自表示流的Javascript對象的內存之外,沒有任何系統資源被消耗,你唯一的限制就是內存。如果流後面有一個文件句柄,那麼對打開的文件句柄有系統限制,因操作系統和配置而異。 – jfriend00