No announcement yet.

Intel Has Been Working On A New User-Space File-System For Persistent Memory

  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Originally posted by mslusarz View Post
    You are not paying attention - I already told you that multi-threading works fine. And if it's not clear - multi threading means that data structures are shared and you need locks. If I count correctly "write" in pmemfile takes 3 locks.
    Adding multi-process support doesn't mean more locking, it means sharing runtime state between processes. And that's something the underlying library (libpmemobj) currently does not support.
    I said multi threaded and multi process. You have to remember both ext4-dax and nova have multi process enabled so this is going to kick the teeth in when writing. So nova and ext4-dax have sharing run-time state enabled already.

    To share state between cpu/processes under linux like it or not means running into a stack of extra locking in kernel you do not have to see. You may not have to implement this locking and get to pretend its not there. But the performance effect of all these locks will show themselves. Locking effects are worst on writes than reads. Reads are almost transparent.

    This leads us back to a horrible fact how well a file system is going to perform be it userspace or kernel space supporting multi processes is going to depend on how well the kernel itself handles memory management and state of memory management.

    Nova and Ext4-dax lower write performance is showing an area that need optimisation if you want multi processes file system user space or kernel space to work well. So finding that implementing multi process support is a lot slower performance is no surprise.

    The high read and the slow write of nova is not because nova is in kernel space because it has multi process support enabled. improving multi process speeds will require working on the kernel be the file system implemented in user-space or kernel space..