diff options
author | Raghavendra G <rgowdapp@redhat.com> | 2013-08-02 11:08:15 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2013-08-08 11:42:53 +0530 |
commit | d7b3ab5b5d17427bef5012ab72086e2b44ba1364 (patch) | |
tree | 64581bc7e7ca8c8c28ac6ae20a85eb5aa84e0925 /rpc | |
parent | 171996ae57677f97546476094c866e868b7cebca (diff) |
features/quota: design changes
* hard and soft limits are persisted in xattrs of the
inode. Associating limits with inode instead of maintaining as a
global list helps us to scale better.
* quotad-aggregator acts as a special client to provide cluster view
through an rpc program. Quota enforcer loaded on brick uses this to get
aggregated directory sizes. Aggregated sizes are cached for a
timeout period in in-memory inode contexts.
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Change-Id: I2ab508d9d4fe224bc1d8cf01cf2b7969dd4200bb
BUG: 969461
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/rpc-lib/src/protocol-common.h | 10 | ||||
-rw-r--r-- | rpc/rpc-transport/socket/src/socket.c | 6 |
2 files changed, 13 insertions, 3 deletions
diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h index b80a52bb..3c576969 100644 --- a/rpc/rpc-lib/src/protocol-common.h +++ b/rpc/rpc-lib/src/protocol-common.h @@ -81,6 +81,12 @@ enum gf_pmap_procnum { GF_PMAP_MAXVALUE, }; +enum gf_aggregator_procnum { + GF_AGGREGATOR_NULL = 0, + GF_AGGREGATOR_LOOKUP, + GF_AGGREGATOR_MAXVALUE, +}; + enum gf_pmap_port_type { GF_PMAP_PORT_FREE = 0, GF_PMAP_PORT_FOREIGN, @@ -231,6 +237,10 @@ typedef enum { #define GLUSTER_FOP_VERSION 330 /* 3.3.0 */ #define GLUSTER_FOP_PROCCNT GFS3_OP_MAXVALUE +/* Aggregator */ +#define GLUSTER_AGGREGATOR_PROGRAM 29852134 /* Completely random */ +#define GLUSTER_AGGREGATOR_VERSION 1 + /* Second version */ #define GD_MGMT_PROGRAM 1238433 /* Completely random */ #define GD_MGMT_VERSION 2 /* 0.0.2 */ diff --git a/rpc/rpc-transport/socket/src/socket.c b/rpc/rpc-transport/socket/src/socket.c index e63c2701..c0fab31a 100644 --- a/rpc/rpc-transport/socket/src/socket.c +++ b/rpc/rpc-transport/socket/src/socket.c @@ -2469,7 +2469,7 @@ socket_server_event_handler (int fd, int idx, void *data, goto unlock; } - if (priv->nodelay) { + if (priv->nodelay && (new_sockaddr.ss_family != AF_UNIX)) { ret = __socket_nodelay (new_sock); if (ret == -1) { gf_log (this->name, GF_LOG_WARNING, @@ -2753,7 +2753,7 @@ socket_connect (rpc_transport_t *this, int port) } } - if (priv->nodelay) { + if (priv->nodelay && (sa_family != AF_UNIX)) { ret = __socket_nodelay (priv->sock); if (ret == -1) { @@ -2967,7 +2967,7 @@ socket_listen (rpc_transport_t *this) } } - if (priv->nodelay) { + if (priv->nodelay && (sa_family != AF_UNIX)) { ret = __socket_nodelay (priv->sock); if (ret == -1) { gf_log (this->name, GF_LOG_ERROR, |