gluster / glusterfs

Gluster Filesystem : Build your distributed storage in minutes
https://www.gluster.org
GNU General Public License v2.0
4.51k stars 1.07k forks source link

Brick inode table size #4339

Open jkroonza opened 4 weeks ago

gluster-ant commented 4 weeks ago

Can one of the admins verify this patch?

gluster-ant commented 4 weeks ago

Can one of the admins verify this patch?

gluster-ant commented 4 weeks ago

Can one of the admins verify this patch?

gluster-ant commented 4 weeks ago

CLANG-FORMAT FAILURE: Before merging the patch, this diff needs to be considered for passing clang-format

index 3a85d7233..129af5eee 100644
--- a/libglusterfs/src/xlator.c
+++ b/libglusterfs/src/xlator.c
@@ -484,7 +484,7 @@ xlator_set_inode_table_size(xlator_t *this, void *data)
             goto out;
         }
         inode_table_size = *(int *)data;
-        //inode_table_set_table_size(this->itable, inode_table_size);
+        // inode_table_set_table_size(this->itable, inode_table_size);
         /* can we replace the table ? */
         /* alternatively, create a new table and migrate all entries? */
     }
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c
index d91f94749..41c491c8a 100644
--- a/xlators/protocol/server/src/server.c
+++ b/xlators/protocol/server/src/server.c
@@ -306,8 +306,8 @@ get_auth_types(dict_t *this, char *key, data_t *value, void *data)
             ret = dict_set_dynptr(auth_dict, tmp, NULL, 0);
             if (ret < 0) {
                 gf_msg_debug("server", 0,
-                            "failed to "
-                            "dict_set_dynptr");
+                             "failed to "
+                             "dict_set_dynptr");
             }
         }
     }
@@ -1486,9 +1486,9 @@ server_process_event_upcall(xlator_t *this, void *data)
             if (!client || strcmp(client->client_uid, client_uid))
                 continue;

-           /* Avoid upcall notification to client if disconnect is in
-              progress
-            */
+            /* Avoid upcall notification to client if disconnect is in
+               progress
+             */
             if (GF_ATOMIC_GET(xprt->disconnect_progress))
                 continue;
gluster-ant commented 4 weeks ago

CLANG-FORMAT FAILURE: Before merging the patch, this diff needs to be considered for passing clang-format

index 3a85d7233..129af5eee 100644
--- a/libglusterfs/src/xlator.c
+++ b/libglusterfs/src/xlator.c
@@ -484,7 +484,7 @@ xlator_set_inode_table_size(xlator_t *this, void *data)
             goto out;
         }
         inode_table_size = *(int *)data;
-        //inode_table_set_table_size(this->itable, inode_table_size);
+        // inode_table_set_table_size(this->itable, inode_table_size);
         /* can we replace the table ? */
         /* alternatively, create a new table and migrate all entries? */
     }
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c
index d91f94749..41c491c8a 100644
--- a/xlators/protocol/server/src/server.c
+++ b/xlators/protocol/server/src/server.c
@@ -306,8 +306,8 @@ get_auth_types(dict_t *this, char *key, data_t *value, void *data)
             ret = dict_set_dynptr(auth_dict, tmp, NULL, 0);
             if (ret < 0) {
                 gf_msg_debug("server", 0,
-                            "failed to "
-                            "dict_set_dynptr");
+                             "failed to "
+                             "dict_set_dynptr");
             }
         }
     }
@@ -1486,9 +1486,9 @@ server_process_event_upcall(xlator_t *this, void *data)
             if (!client || strcmp(client->client_uid, client_uid))
                 continue;

-           /* Avoid upcall notification to client if disconnect is in
-              progress
-            */
+            /* Avoid upcall notification to client if disconnect is in
+               progress
+             */
             if (GF_ATOMIC_GET(xprt->disconnect_progress))
                 continue;
gluster-ant commented 3 weeks ago

CLANG-FORMAT FAILURE: Before merging the patch, this diff needs to be considered for passing clang-format

index 84b0ce925..6c35a89e2 100644
--- a/libglusterfs/src/xlator.c
+++ b/libglusterfs/src/xlator.c
@@ -486,9 +486,10 @@ xlator_set_inode_table_size(xlator_t *this, void *data)
         inode_table_size = *(int *)data;

         if (inode_table_size != this->itable->inode_hashsize) {
-            inode_table_t* tmp = inode_table_with_invalidator(this->itable->lru_limit,
-                    this, this->itable->invalidator_fn, this->itable->invalidator_xl,
-                    this->itable->dentry_hashsize, inode_table_size);
+            inode_table_t *tmp = inode_table_with_invalidator(
+                this->itable->lru_limit, this, this->itable->invalidator_fn,
+                this->itable->invalidator_xl, this->itable->dentry_hashsize,
+                inode_table_size);
             if (tmp->inode_hashsize != this->itable->inode_hashsize) {
                 inode_table_destroy(this->itable);
                 this->itable = tmp;
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c
index d91f94749..41c491c8a 100644
--- a/xlators/protocol/server/src/server.c
+++ b/xlators/protocol/server/src/server.c
@@ -306,8 +306,8 @@ get_auth_types(dict_t *this, char *key, data_t *value, void *data)
             ret = dict_set_dynptr(auth_dict, tmp, NULL, 0);
             if (ret < 0) {
                 gf_msg_debug("server", 0,
-                            "failed to "
-                            "dict_set_dynptr");
+                             "failed to "
+                             "dict_set_dynptr");
             }
         }
     }
@@ -1486,9 +1486,9 @@ server_process_event_upcall(xlator_t *this, void *data)
             if (!client || strcmp(client->client_uid, client_uid))
                 continue;

-           /* Avoid upcall notification to client if disconnect is in
-              progress
-            */
+            /* Avoid upcall notification to client if disconnect is in
+               progress
+             */
             if (GF_ATOMIC_GET(xprt->disconnect_progress))
                 continue;
jkroonza commented 3 weeks ago

@mykaul @mohit84

Whilst this isn't ready yet, and has only been compile-tested so far, I would really appreciate some feedback as to whether I'm on the correct track here or not. I kept it to a commit per "idea" as per #4335 discussion.

The outstanding bit is "Ability to set the dentry_hashsize (network.dentry-hash-size ?)." - which I think will take a re-hash approach rather than the same just dump everything approach I'm currently taking elsewhere.

gluster-ant commented 3 weeks ago

CLANG-FORMAT FAILURE: Before merging the patch, this diff needs to be considered for passing clang-format

index e5ca927be..e90af425f 100644
--- a/libglusterfs/src/inode.c
+++ b/libglusterfs/src/inode.c
@@ -2419,8 +2419,8 @@ unlock:
     return;
 }

-static
-size_t __itable_count_dentry_hash_entries(inode_table_t *itable)
+static size_t
+__itable_count_dentry_hash_entries(inode_table_t *itable)
 {
     size_t ret = 0;
     int i;
@@ -2451,7 +2451,8 @@ inode_table_dump(inode_table_t *itable, char *prefix)
     gf_proc_dump_build_key(key, prefix, "dentry_hashsize");
     gf_proc_dump_write(key, "%" GF_PRI_SIZET, itable->dentry_hashsize);
     gf_proc_dump_build_key(key, prefix, "dentry_hashentries");
-    gf_proc_dump_write(key, "%" GF_PRI_SIZET, __itable_count_dentry_hash_entries(itable));
+    gf_proc_dump_write(key, "%" GF_PRI_SIZET,
+                       __itable_count_dentry_hash_entries(itable));
     gf_proc_dump_build_key(key, prefix, "inode_hashsize");
     gf_proc_dump_write(key, "%" GF_PRI_SIZET, itable->inode_hashsize);
     gf_proc_dump_build_key(key, prefix, "name");
diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c
index 84b0ce925..6c35a89e2 100644
--- a/libglusterfs/src/xlator.c
+++ b/libglusterfs/src/xlator.c
@@ -486,9 +486,10 @@ xlator_set_inode_table_size(xlator_t *this, void *data)
         inode_table_size = *(int *)data;

         if (inode_table_size != this->itable->inode_hashsize) {
-            inode_table_t* tmp = inode_table_with_invalidator(this->itable->lru_limit,
-                    this, this->itable->invalidator_fn, this->itable->invalidator_xl,
-                    this->itable->dentry_hashsize, inode_table_size);
+            inode_table_t *tmp = inode_table_with_invalidator(
+                this->itable->lru_limit, this, this->itable->invalidator_fn,
+                this->itable->invalidator_xl, this->itable->dentry_hashsize,
+                inode_table_size);
             if (tmp->inode_hashsize != this->itable->inode_hashsize) {
                 inode_table_destroy(this->itable);
                 this->itable = tmp;
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c
index d91f94749..41c491c8a 100644
--- a/xlators/protocol/server/src/server.c
+++ b/xlators/protocol/server/src/server.c
@@ -306,8 +306,8 @@ get_auth_types(dict_t *this, char *key, data_t *value, void *data)
             ret = dict_set_dynptr(auth_dict, tmp, NULL, 0);
             if (ret < 0) {
                 gf_msg_debug("server", 0,
-                            "failed to "
-                            "dict_set_dynptr");
+                             "failed to "
+                             "dict_set_dynptr");
             }
         }
     }
@@ -1486,9 +1486,9 @@ server_process_event_upcall(xlator_t *this, void *data)
             if (!client || strcmp(client->client_uid, client_uid))
                 continue;

-           /* Avoid upcall notification to client if disconnect is in
-              progress
-            */
+            /* Avoid upcall notification to client if disconnect is in
+               progress
+             */
             if (GF_ATOMIC_GET(xprt->disconnect_progress))
                 continue;