From c458433041aafb48ae6d6e5fcf3e1e737dc3fda3 Mon Sep 17 00:00:00 2001 From: Jeff Darcy Date: Mon, 8 Feb 2016 13:30:49 -0500 Subject: experimental: add fdl (Full Data Logging) translator NSR needs logging that is different than our existing changelog in several ways: * Full data, not just metadata * Pre-op, not post-op * High performance * Supports the concept of time-bounded "terms" Others (for example EC) might need the same thing. This patch adds such a translator. It also adds code to dump the resulting journals, and to replay them using syncops, plus (very rudimentary) tests for all of the above. Change-Id: I29680a1b4e0a9e7d5a8497fef302c46434b86636 Signed-off-by: Jeff Darcy Reviewed-on: http://review.gluster.org/12450 Smoke: Gluster Build System CentOS-regression: Gluster Build System NetBSD-regression: NetBSD Build System --- api/src/gfapi.aliases | 1 + api/src/gfapi.map | 5 +++++ api/src/glfs.c | 12 ++++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) (limited to 'api') diff --git a/api/src/gfapi.aliases b/api/src/gfapi.aliases index 40b6ed21192..7181dd2f6e8 100644 --- a/api/src/gfapi.aliases +++ b/api/src/gfapi.aliases @@ -140,3 +140,4 @@ _priv_glfs_resolve _glfs_resolve$GFAPI_PRIVATE_3.7.0 _priv_glfs_process_upcall_event _glfs_process_upcall_event$GFAPI_PRIVATE_3.7.0 _pub_glfs_h_lookupat _glfs_h_lookupat$GFAPI_3.7.4 +_pub_glfs_ipc_xd _glfs_ipc_xd@GFAPI_4.0.4 diff --git a/api/src/gfapi.map b/api/src/gfapi.map index d42ae2b97af..b35984a088c 100644 --- a/api/src/gfapi.map +++ b/api/src/gfapi.map @@ -167,3 +167,8 @@ GFAPI_3.7.4 { global: glfs_h_lookupat; } GFAPI_PRIVATE_3.7.0; + +GFAPI_4.0.0 { + global: + glfs_ipc_xd; +} GFAPI_3.7.4; diff --git a/api/src/glfs.c b/api/src/glfs.c index b151936a6e8..037b579225f 100644 --- a/api/src/glfs.c +++ b/api/src/glfs.c @@ -1233,7 +1233,7 @@ invalid_fs: GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_get_volfile, 3.6.0); int -pub_glfs_ipc (struct glfs *fs, int opcode) +pub_glfs_ipc_xd (struct glfs *fs, int opcode, dict_t *xd_in, dict_t **xd_out) { xlator_t *subvol = NULL; int ret = -1; @@ -1248,7 +1248,7 @@ pub_glfs_ipc (struct glfs *fs, int opcode) goto out; } - ret = syncop_ipc (subvol, opcode, NULL, NULL); + ret = syncop_ipc (subvol, opcode, xd_in, xd_out); DECODE_SYNCOP_ERR (ret); out: @@ -1259,4 +1259,12 @@ invalid_fs: return ret; } +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ipc_xd, 4.0.0); + +int +pub_glfs_ipc (struct glfs *fs, int opcode) +{ + return pub_glfs_ipc_xd (fs, opcode, NULL, NULL); +} + GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ipc, 3.7.0); -- cgit