nodejs เปิดไฟล์ nfs โดย inode (หรือวิธีที่เร็วที่สุดในการเปิดไฟล์อีกครั้ง)

ขณะนี้ฉันกำลังเขียนระบบแคชที่จะเก็บข้อมูลซีเรียลไลซ์ (json) ไว้ในดิสก์และในหน่วยความจำเพื่อลดภาระ I/O บนฐานข้อมูล

ระบบจะทำงานโดยเก็บไฟล์ที่เข้าถึงจำนวน X สุดท้ายไว้ในหน่วยความจำและอ่านไฟล์อื่นจากดิสก์

ฉันได้อ่านแล้วว่ามีระบบที่ลดภาระ I/O บนระบบ nfs (ซึ่งอาจใช้ในอนาคต) ด้วยการเปิดไฟล์ด้วย inode

คำถามของฉันคือ:

  1. มีวิธีเปิดไฟล์บนระบบไฟล์ nfs โดย inode ใน nodejs หรือไม่? ถ้าไม่ ฉันจะต้องทำการบ้านอะไรจึงจะสำเร็จ
    2. เป็นไปไม่ได้เลยที่จะเปิดไฟล์บนระบบไฟล์ในเครื่องด้วย inode?
    3. หากในความเป็นจริงมันเป็นไปไม่ได้ จะมีวิธีที่เร็วกว่าในการเปิดไฟล์อีกครั้งหรือไม่ เนื่องจากดูเหมือนว่าจะซ้ำซ้อนโดยไม่จำเป็นเพื่อให้ OS stat ไฟล์ซ้ำไปซ้ำมา?

person work4liberty    schedule 24.04.2012    source แหล่งที่มา
comment
ฉันขอแนะนำให้คุณพิจารณาแนวทางที่ได้รับการทดลองและทดสอบแล้ว เช่น memcached หรือ redis ก่อนที่คุณจะเริ่มการผจญภัยครั้งนี้ ทั้งสองสามารถใช้เป็นแคช LRU ได้ ซึ่งน่าจะเหมาะสำหรับคุณเนื่องจากฉันรวบรวมไว้ คุณจะสร้างข้อมูลจากฐานข้อมูลของคุณใหม่หรือไม่   -  person Linus Thiel    schedule 24.04.2012
comment
ขอบคุณลินัส! memcached เกือบจะตรงกับที่ฉันวางแผนไว้ ฉันยังคงคิดว่าฉันควรกลับไปใช้ร้านค้า nfs หากคีย์ไม่อยู่ใน memcached ดังนั้นส่วนหนึ่งของคำถามของฉันจึงยังคงอยู่   -  person work4liberty    schedule 25.04.2012


คำตอบ (1)


  1. ไม่ ไม่มีวิธีที่ผู้ใช้เข้าถึงได้ในการเปิดไฟล์ด้วย inode เพราะในบางกรณี การทำเช่นนี้จะทำให้ผู้ใช้สามารถข้าม ACL ของระบบไฟล์ได้

  2. ใช่. เหตุผลเดียวกัน

  3. ไคลเอนต์ NFS ที่มีความสามารถส่วนใหญ่ รวมถึงเคอร์เนล Linux จะแคชผลลัพธ์ทางสถิติในเครื่อง

person Community    schedule 24.04.2012
comment
ไม่ได้พยายามหมุนรอบที่นี่เพียงต้องการแสดงให้เห็นว่าคำถามของฉันไม่ได้ไร้สาระเลย เห็นได้ชัดว่าเด็กใหญ่ทำเคล็ดลับนี้กับแฮ็กเกอร์เคอร์เนล ตัวอย่าง: perspectives.mvdirona.com/2008/06/30/ พวกเขาได้ขยายเคอร์เนล Linux เพื่อให้ไฟล์ NFS เปิดผ่านหมายเลขไอโหนดแทนที่จะเป็นชื่อไฟล์ ตอนที่ฉันโพสต์ครั้งแรก ฉันไม่รู้ว่าจำเป็นต้องมีการแฮ็กเคอร์เนลเพื่อทำให้สิ่งนี้เกิดขึ้น ดังนั้นเว้นแต่จะมีใครรู้ว่าระบบ nfs ที่ถูกแฮ็กซึ่งฉันใช้แบบเย็น ฉันจะอยู่ต่อไปโดยไม่มี FTM - person work4liberty; 25.04.2012