{"push_id":612495216,"size":49,"distinct_size":8,"ref":"refs/heads/master","head":"fb81ee019655f8ce56f1610568526e51c49e8a11","before":"20fdd9c0b299e4fbdcf59b9f6ce66fc70461757e","commits":[{"sha":"4737584fffcd25dbe35d17b076c95bf90a422cf2","author":{"email":"78a921d2249fa39da59d1342df10fbdfc586e02b@redhat.com","name":"Venky Shankar"},"message":"features/changelog: RPC'fy {libgf}changelog\n\nThis patch introduces RPC based communication between the changelog\ntranslator and libgfchangelog. It replaces the old pathetic stream\nbased interaction that existed earlier (due to time constraints :-/).\n\nChangelog, upon initialization starts a RPC server (rpcsvc) allowing\nclients to invoke a probe API as a bootup mechanism to request for\nevent notifications. During probe, clients can choose an event\nfilter specifying the type(s) of events they are interested in. As\nof now there is no way to change the event notification set once\nthe probe RPC call is made, but that is easier to implement.\n\nThe actual event notifications is done on a separate RPC session.\nThe client (libgfchangelog) itself starts and RPC server which the\nchangelog translator \"connects back\" during probe. Notifications\nare dispatched by a bunch of threads from the server (translator)\nand the client optionally orders them if ordered notifications\nare requried. FOPs fill in their respective event details in a\nbuffer (rot-buffs to be particular) and a bunch of threads\n(consumers) swap the buffers out of roatation and dispatch them\nvia RPC. To avoid writer starvation, then number of dispatcher\nthreads is one less than the number of buffer list in rot-buffs.x\n\nlibgfchangelog becomes purely callback based -- upon event\nnotification from the server (and re-ordering them if required)\ninvoke a callback routine specified by consumer(s).\n\nA major part of the patch is also aimed at providing backward\ncompatibility for geo-replication, which was one of the main\nconsumer of the stream based API. Also, this patch does not\\\n\"turn on\" event notifications for all fops, just a bunch which\nis currently in requirement. Another pain point is that the\nserver does not filter events before dispatching it to the\nclients. That load is taken up by the client itself (although\nit's done at the library layer rather than making it hard on\nthe callback implementor). This needs improvement and care\nneeds to be taken to not load the server up with expensive\nfiltering mechanisms.\n\nChange-Id: Ibf60a432b68f2dfa60c6f9add2bcfd37a9c41395\nBUG: 1170075\nSigned-off-by: Venky Shankar <vshankar@redhat.com>\nReviewed-on: http://review.gluster.org/9708\nReviewed-by: Jeff Darcy <jdarcy@redhat.com>\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/4737584fffcd25dbe35d17b076c95bf90a422cf2"},{"sha":"fa50fcb6dddf4d7d0094c26cee802fd942f62727","author":{"email":"78a921d2249fa39da59d1342df10fbdfc586e02b@redhat.com","name":"Venky Shankar"},"message":"geo-rep / gsyncd: use RTLD_GLOBAL while loading libgfchangelog\n\nWith the RPC based changes to {libgf}changelog, loading shared\nobjects dynamically would need symbols to be available from\nother shared libraries. As an example, creating an RPC listner\nloads the RPC transport shared object which requires symbols\nto be available from already loaded shared objects.\n\nUsing RTLD_GLOBAL makes the symbols available for symbol\nresolution of subsequently loaded libraries.\n\nChange-Id: I3d3ef790eded82911f05836c707509157680645c\nBUG: 1170075\nSigned-off-by: Venky Shankar <vshankar@redhat.com>\nReviewed-on: http://review.gluster.org/9814\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/fa50fcb6dddf4d7d0094c26cee802fd942f62727"},{"sha":"3e18f093974c85ac92a4c48f0cd13aa9ff9c5cac","author":{"email":"36ab91862badf129e22a0765506a8b181227d4e1@redhat.com","name":"vmallika"},"message":"features/quota : Introducing inode quota\n\n==========================================================================\n                             Inode quota\n==========================================================================\n= Currently, the only way to retrieve the number of files/objects in a   =\n= directory or volume is to do a crawl of the entire directory/volume.   =\n= This is expensive and is not scalable.                                 =\n=                                                                        =\n= The proposed mechanism will provide an easier alternative to determine =\n= the count of files/objects in a directory or volume.                   =\n=                                                                        =\n= The new mechanism proposes to store count of objects/files as part of  =\n= an extended attribute of a directory. Each directory's extended        =\n= attribute value will indicate the number of files/objects present      =\n= in a tree with the directory being considered as the root of the tree. =\n=                                                                        =\n= The count value can be accessed by performing a getxattr().            =\n= Cluster translators like afr, dht and stripe will perform aggregation  =\n= of count values from various bricks when getxattr() happens on the key =\n= associated with file/object count.                                     =\n\nA new interface is introduced:\n------------------------------\n        limit-objects  : limit the number of inodes at directory level\n        list-objects   : list the directories where the limit is set\n        remove-objects : remove the limit from the directory\n\n==========================================================================\n\nCLI COMMAND:\ngluster volume quota <volname> limit-objects <path> <number> [<percent>]\n\n* <number> is a hard-limit for number of objects limitation for path \"<path>\"\n  If hard-limit is exceeded, creation of file/directory is no longer\npermitted.\n\n* <percent> is a soft-limit for number of objects creation for path \"<path>\"\n  If soft-limit is exceeded, a warning is issued for each creation.\n\nCLI COMMAND:\ngluster volume quota <volname> remove-objects [path]\n\n==========================================================================\n\nCLI COMMAND:\ngluster volume quota <volname> list-objects [path] ...\n\nSample output:\n------------------\n  Path                   Hard-limit Soft-limit   Used  Available\nSoft-limit exceeded?\nHard-limit exceeded?\n  ------------------------------------------------------------------------\n--------------------------------------\n  /dir                      10       80%          10       0\nYes\n        Yes\n\n==========================================================================\n\n[root@snapshot-28 dir]# ls\na  b  file11  file12  file13  file14  file15  file16  file17\n[root@snapshot-28 dir]# touch a1\ntouch: cannot touch `a1': Disk quota exceeded\n* Nine files are created in directory \"dir\" and directory is included in\n* the\ncount too. Hence the limit \"10\" is reached and further file creation\nfails\n\n==========================================================================\n\nNote: We have also done some re-factoring in cli for volume name\nvalidation. New function cli_validate_volname is created\n\n==========================================================================\n\nChange-Id: I1823497de4f790a2a20ebb1770293472ea33ee2b\nBUG: 1190108\nSigned-off-by: Sachin Pandit <spandit@redhat.com>\nSigned-off-by: vmallika <vmallika@redhat.com>\nReviewed-on: http://review.gluster.org/9769\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/3e18f093974c85ac92a4c48f0cd13aa9ff9c5cac"},{"sha":"7c4461329bba38b72536ee71a8172bc861ddf890","author":{"email":"9e157012ae67f4ec8906b0ba0acc39e7756f1e97@redhat.com","name":"Avra Sengupta"},"message":"snapshot/scheduling: A cron based scheduler for snapshot scheduling\n\nGlusterFS volume snapshot provides point-in-time copy\nof a GlusterFS volume. Currently, GlusterFS volume\nsnapshots can be easily scheduled by setting up \ncron jobs on one of the nodes in the GlusterFS\ntrusted storage pool. This has a single point failure (SPOF),\nas scheduled jobs can be missed if the node running the cron\njobs dies.\n\nThe solution to the above problems is addressed in this patch.\nThe snap_scheduler.py helper script expects the user to install\nthe argparse python module before using it.\n\nFurther details for the same are available at:\n\nhttp://www.gluster.org/community/documentation/index.php/Features/Scheduling_of_Snapshot\n\nChange-Id: I2c357af5b7d3e66f270d20eef50cdeecdcbe15c7\nBUG: 1198027\nSigned-off-by: Avra Sengupta <asengupt@redhat.com>\nSigned-off-by: Aravinda VK <avishwan@redhat.com>\nReviewed-on: http://review.gluster.org/9788\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/7c4461329bba38b72536ee71a8172bc861ddf890"},{"sha":"d236b01a8bf68b83c76ea1cfa8351833e19695f7","author":{"email":"b0dd69fb7ba2c5cfd2d694f0b7e843fab3cfe01f@redhat.com","name":"Gaurav Kumar Garg"},"message":"cli/glusterd: cli command implementation for bitrot features\n\nCLI command for bitrot features.\n\nvolume bitrot <volname> enable|disable\n\nAbove command will enable/disable bitrot feature for particular volume.\n\nBUG: 1170075\nChange-Id: Ie84002ef7f479a285688fdae99c7afa3e91b8b99\nSigned-off-by: Gaurav Kumar Garg     <ggarg@redhat.com>\nSigned-off-by: Anand nekkunti        <anekkunt@redhat.com>\nSigned-off-by: Dominic P Geevarghese <dgeevarg@redhat.com>\nReviewed-on: http://review.gluster.org/9866\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/d236b01a8bf68b83c76ea1cfa8351833e19695f7"},{"sha":"87a9d23627586a5d5cd8a502a08ecbdb6f0f7bb2","author":{"email":"78a921d2249fa39da59d1342df10fbdfc586e02b@redhat.com","name":"Venky Shankar"},"message":"libglusterfs/rot-buffs: rotational buffers\n\nThis patch introduces rotational buffers aiming at the classic\nmultiple producer and multiple consumer problem. A fixed set\nof buffer list is allocated during initialization, where each\nlist consist of a list of buffers. Each buffer is an iovec\npointing to a memory region of fixed allocation size. Multiple\nproducers write data to these buffers. A buffer list starts with\na single buffer (iovec) and allocates more when required (although\nthis can be preallocatd in multiples of k).\n\nrot-buffs allow multiple producers to write data parallely with\na bit of extra cost of taking locks. Therefore, it's much suited\nfor large writes. Multiple producers are allowed to write in the\nbuffer parallely by \"reserving\" write space for selected number\nof bytes and returning pointer to the start of the reserved area.\nThe write size is selected by the producer before it starts the\nwrite (which is often known). Therefore, the write itself need not\nbe serialized -- just the space reservation needs to be done safely.\n\nThe other part is when a consumer kicks in to consume what has\nbeen produced. At this point, a buffer list switch is performed.\nThe \"current\" buffer list pointer is safely pointed to the next\navailable buffer list. New writes are now directed to the just\nswitched buffer list (the old buffer list is now considered out\nof rotation). Note that the old buffer still may have producers\nin progress (pending writes), so the consumer has to wait till\nthe writers are drained. Currently this is the slow path for\nproducers (write completion) and needs to be improved.\n\nCurrently, there is special handling for cases where the number\nof consumers match (or exceed) the number of producers, which\ncould result in writer starvation. In this scenario, when a\nconsumers requests a buffer list for consumption, a check is\nperformed for writer starvation and consumption is denied\nuntil at least another buffer list is ready of the producer\nfor writes, i.e., one (or more) consumer(s) completed, thereby\nputting the buffer list back in rotation.\n\n[\n   NOTE:\n   I've not performance tested this producer-consumer model\n   yet. It's being used in changelog for event notification.\n   The list of buffers (iovecs) are directly passed to RPC\n   layer.\n]\n\nChange-Id: I88d235522b05ab82509aba861374a2312bff57f2\nBUG: 1170075\nSigned-off-by: Venky Shankar <vshankar@redhat.com>\nReviewed-on: http://review.gluster.org/9706\nTested-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/87a9d23627586a5d5cd8a502a08ecbdb6f0f7bb2"},{"sha":"2bf23b5b9be9ad600d71474a8f94b62765344b7c","author":{"email":"8666478417b23a05777ccdb0da96ce6896073c19@redhat.com","name":"Kotresh HR"},"message":"geo-rep: Ignore .trashcan during xsync crawl.\n\nWith trash feature, .trashcan directory gets created\nat each export directory. Xsync picks .trashcan to sync\nand fails with EPERM. Xsync should ignore .trashcan\ndirectory.\n\nChange-Id: I45bd226c96011ace2c40dd2de878d886c7d34ce5\nBUG: 1203293\nSigned-off-by: Kotresh HR <khiremat@redhat.com>\nReviewed-on: http://review.gluster.org/9934\nReviewed-by: Vijay Bellur <vbellur@redhat.com>\nReviewed-by: Aravinda VK <avishwan@redhat.com>\nReviewed-by: Venky Shankar <vshankar@redhat.com>\nTested-by: Gluster Build System <jenkins@build.gluster.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/2bf23b5b9be9ad600d71474a8f94b62765344b7c"},{"sha":"5394f3cf60b0815d2919d24e9945ba47e3bb1f9b","author":{"email":"78a921d2249fa39da59d1342df10fbdfc586e02b@redhat.com","name":"Venky Shankar"},"message":"contrib/timer-wheel: import linux kernel timer-wheel\n\nThis patch imports timer-wheel[1] algorithm from the linux\nkernel (~/kernel/time/timer.c) with some modifications.\n\nTimer-wheel is an efficent way to track millions of timers for\nexpiry. This is a variant of the simple but RAM heavy approach\nof having a list (timer bucket) for every future second.\nTimer-wheel categorizes every future second into a logarithmic\narray of arrays. This is done by splitting the 32 bit \"timeout\"\nvalue into fixed \"sliced\" bits, thereby each category has a\nfixed size array to which buckets are assigned.\n\nA classic split would be 8+6+6+6 (used in this patch) which\nresults in 256+64+64+64 == 512 buckets. Therefore, the entire\n32 bit futuristic timeouts have been mapped into 512 buckets.\n\n[\n   NOTE:\n     There are other possible splits, such as \"8+8+8+8\", but\n     this patch sticks to the widely used and tested default.\n]\n\nTherfore, the first category \"holds\" timers whose expiry range\nis between 1..256, the next cateogry holds 257..16384, third\ncategory 16385..1048576 and so on. When timers are added,\nunless it's in the first category, timers with different\ntimeouts could end up in the same bucket. This means that the\ntimers are \"partially sorted\" -- sorted in their highest bits.\n\nThe expiry code walks the first array of buckets and exprires\nany pending timers (1..256). Next, at time value 257, timers\nin the first bucket of the second array is \"cascaded\" onto\nthe first category and timers are placed into respective\nbuckets according to the thier timeout values. Cascading\n\"brings down\" the timers timeout to the coorect bucket\nof their respective category. Therefore, timers are sorted\nby their highest bits of the timeout value and then by the\nlower bits too.\n\n[1] https://lwn.net/Articles/152436/\n\nChange-Id: I1219abf69290961ae9a3d483e11c107c5f49c4e3\nBUG: 1170075\nSigned-off-by: Venky Shankar <vshankar@redhat.com>\nReviewed-on: http://review.gluster.org/9707\nReviewed-by: Vijay Bellur <vbellur@redhat.com>\nTested-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/5394f3cf60b0815d2919d24e9945ba47e3bb1f9b"},{"sha":"a1755ee2765f3d1c9c26d51a49ad63d133932710","author":{"email":"7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","name":"Niels de Vos"},"message":"glusterfsd: add \"print-netgroups\" and \"print-exports\" command\n\nNFS now has the ability to use a separate file for \"netgroups\" and\n\"exports\". An administrator should have the ability to check the\nvalidity of the files before applying the configuration.\n\nThe \"glusterfsd\" command now has the following additional arguments that\ncan be used to check the configuration:\n\n   --print-netgroups: Validate the netgroups file and print it out\n   --print-exports: Validate the exports file and print it out\n\nBUG: 1143880\nChange-Id: I24c40d50110d49d8290f9fd916742f7e4d0df85f\nURL: http://www.gluster.org/community/documentation/index.php/Features/Exports_Netgroups_Authentication\nOriginal-author: Shreyas Siravara <shreyas.siravara@gmail.com>\nCC: Richard Wareing <rwareing@fb.com>\nCC: Jiffin Tony Thottan <jthottan@redhat.com>\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/9365\nReviewed-by: Vijay Bellur <vbellur@redhat.com>\nTested-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/a1755ee2765f3d1c9c26d51a49ad63d133932710"},{"sha":"b4a0db5ee3b827268fe1aeeed32ad7d417460c50","author":{"email":"4ebaf12f8eb60146d1a7d1c28a5683964a11a39d@redhat.com","name":"Joseph Fernandes"},"message":"Adding ChangeTimeRecorder(CTR) Xlator to GlusterFS\n\n**********************************************************************\n                            ChangeTimeRecorder(CTR) Xlator           |\n**********************************************************************\nChangeTimeRecorder(CTR) is server side xlator(translator) which sits\njust above posix xlator. The main role of this xlator is to record the\naccess/write patterns on a file residing the brick. It records the\nread(only data) and write(data and metadata) times and also count on\nhow many times a file is read or written. This xlator also captures\nthe hard links to a file(as its required by data tiering to move\nfiles).\n\nCTR Xlator is the consumer of libgfdb.\n\nTo Enable/Disable CTR Xlator:\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n gluster volume set <volume-name> features.ctr-enabled {on/off}\n\nTo Enable/Disable Frequency Counter Recording in CTR Xlator:\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n gluster volume set <volume-name> features.record-counters {on/off}\n\nChange-Id: I5d3cf056af61ac8e3f8250321a27cb240a214ac2\nBUG: 1194753\nSigned-off-by: Joseph Fernandes <josferna@redhat.com>\nReviewed-on: http://review.gluster.org/9935\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/b4a0db5ee3b827268fe1aeeed32ad7d417460c50"},{"sha":"c270d4da8d0cc0a3856969f10ef6415be5615544","author":{"email":"7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","name":"Niels de Vos"},"message":"gfapi: space/tab conversion in gfapi.map\n\nThe last two patches incorrectly add symbols indented by spaces. The\nrest of the file uses tabs. This change corrects these occurences.\n\nChange-Id: Ibfb057b78c1203a594bfeb73a2955e798e86c8e1\nBUG: 1185654\nReported-by: Kaleb S. Keithley <kkeithle@redhat.com>\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/9937\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/c270d4da8d0cc0a3856969f10ef6415be5615544"},{"sha":"99586305f66d6b5e81542139d84fbf111ace2554","author":{"email":"145615fbac7c5189e559d92d352779af072b5c5f@redhat.com","name":"Anuradha"},"message":"doc: heal info and split-brain resolution document\n\nDocumentation for gluster volume heal info and split-brain\nresolution.\n\nChange-Id: Iacb30dff939c1acf06c24bd8844294d4a90ab38d\nBUG: 1154599\nSigned-off-by: Anuradha <atalur@redhat.com>\nReviewed-on: http://review.gluster.org/9595\nReviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>\nTested-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/99586305f66d6b5e81542139d84fbf111ace2554"},{"sha":"6f71bc02df5bd177c2f5dbf4e54b2af1525ab979","author":{"email":"c76ab867872ae894584851095ba033ec647884ae@redhat.com","name":"Dan Lambright"},"message":"glusterd: CLI commands to create and manage tiered volumes.\n\nA tiered volume is a normal volume with some number of new bricks\nrepresenting \"hot\" storage. The \"hot\" bricks can be attached or\ndetached dynamically to a normal volume. When this happens, a new graph\nis constructed. The root of the new graph is an instance of the tier\ntranslator. One subvolume of the tier translator leads to the old volume,\nand another leads to the new hot bricks.\n\nattach-tier <VOLNAME> [<replica> <COUNT>] <NEW-BRICK> ... [force]\n\nvolume detach-tier <VOLNAME> [replica <COUNT>] <BRICK>\n... <start|stop|status|commit|force>\n\ngluster volume rebalance <volume> tier start\n\ngluster volume rebalance <volume> tier stop\n\ngluster volume rebalance <volume> tier status\n\nThe \"tier start\" CLI command starts a server side daemon. The daemon\ninitiates file level migration based on caching policies. The daemon's\nstatus can be monitored and stopped.\n\nNote development on the \"tier status\" command is incomplete. It will be\nadded in a subsequent patch.\n\nWhen the \"hot\" storage is detached, the tier translator is removed\nfrom the graph and the tiered volume reverts to its original state as\ndescribed in the volume's info file.\n\nFor more background and design see the feature page [1].\n\n[1]\nhttp://www.gluster.org/community/documentation/index.php/Features/data-classification\n\nChange-Id: Ic8042ce37327b850b9e199236e5be3dae95d2472\nBUG: 1194753\nSigned-off-by: Dan Lambright <dlambrig@redhat.com>\nReviewed-on: http://review.gluster.org/9753\nReviewed-by: Vijay Bellur <vbellur@redhat.com>\nTested-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/6f71bc02df5bd177c2f5dbf4e54b2af1525ab979"},{"sha":"d06692d1deec425f74747e2c463e56f7eca981c8","author":{"email":"145615fbac7c5189e559d92d352779af072b5c5f@redhat.com","name":"Anuradha"},"message":"cluster/afr : enable inspection & resolution of files in split-brain\n\nPart 2/2 patch to enable users analyze and resolve\nsplit-brain.\n\nThis patch enables :\n1) Users to inspect the files in data and metadata split-brain.\n2) Resolve the split-brain.\nBoth using a series of setfattr commands.\n\nConsider a volume \"test\" with 2 bricks.\n\n1) To inspect a file f1:\nsetfattr -n replica.split-brain-choice -v test-client-0 f1\n        After the execution of this command, if no read_subvol\nis found, reads will be served from test-client-0 (corresponding\nto brick-0).\n\n2) To resolve split-brain :\nsetfattr -n replica.split-brain-heal-finalize -v test-client-0 f1\n        Execution of this command will lead to the resolution\nof data and metadata split-brain with subvol mentioned in the\ncommand (test-client-0 here) as the source and the rest as sink.\n\nChange-Id: Ia20f3ee5abd3119e3d54fcc599f1e55ac65fd179\nBUG: 1191396\nSigned-off-by: Anuradha <atalur@redhat.com>\nReviewed-on: http://review.gluster.org/9743\nReviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>\nTested-by: Gluster Build System <jenkins@build.gluster.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/d06692d1deec425f74747e2c463e56f7eca981c8"},{"sha":"61489c1725f048c2e34a08e73f0ab367bbf673c1","author":{"email":"7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","name":"Niels de Vos"},"message":"build: correctly install the snap_scheduler tools\n\nThe current way of installing the snap-scheduler tools breaks the\nbuilding of RPMs. The tools should be installed in /usr/sbin and there\nis no need to change the attributes/permissions after the installation.\n\nChange-Id: I1b8e206748617fb000d956b1b5da52d126971c29\nBUG: 1203557\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/9939\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/61489c1725f048c2e34a08e73f0ab367bbf673c1"},{"sha":"32ed7aa5ad7049a9d85c795f997336c0366151a8","author":{"email":"10460665c63c1e41b922ea2cdf63084aa1a91e2a@redhat.com","name":"Ravishankar N"},"message":"afr: arbiter xlator\n\nThis patch adds the arbiter translator into the tree. This is a server\nside xlator used for replica 3 volumes. It sits above posix and will be\nloaded on the 3rd (last) brick of every afr subvolume in a replica 3\nconfiguration. It intercepts inode read/write operations: reads are\nunwound with ENOTCONN, inode writes are unwound with success without\nactually passing them down to posix. Metadata operations are allowed to\npass through.\n\nThe CLI for creating a 3 way replica with arbiter is also added but kept\ndisabled (A 'normal' 3 way replica is created instead).\n\nThis patch is a part of the arbiter logic implementation for 3 way AFR,\ndetails of which can be found at http://review.gluster.org/#/c/9656/\n\nChange-Id: I395b81f49d5da52c466daf5c8518f1bbad9c16fa\nBUG: 1199985\nSigned-off-by: Ravishankar N <ravishankar@redhat.com>\nReviewed-on: http://review.gluster.org/9840\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/32ed7aa5ad7049a9d85c795f997336c0366151a8"},{"sha":"6f389fbb812b384bdd9bf4a20e86930505531996","author":{"email":"652d1e34e1876dd82d643021ce9a3641bdac3966@redhat.com","name":"Krutika Dhananjay"},"message":"features/shard: Introducing sharding translator\n\nBased on the high-level design by Anand V. Avati which can be found @\nhttps://gist.github.com/avati/af04f1030dcf52e16535#sharding-xlator-stripe-20\n\nStill to-do:\n        * complete implementation of inode write fops - [f]truncate,\n          zerofill, fallocate, discard\n        * introduce transaction mechanism in inode write fops\n        * complete readv\n        * Handle open with O_TRUNC\n        * Handle unlinking of all shards during unlink/rename\n        * Compute total ia_size and ia_blocks in lookup, readdirp, etc\n        * wind fsync/flush on all shards\n\n        Note: Most of the items above are related. Once we come up\n        with a clean way to determine the last shard/shard count for\n        a file/file size and the mgmt of sparse regions of the file,\n        implementing them becomes trivial.\n\nChange-Id: Id871379b53a4a916e4baa2e06f197dd8c0043b0f\nBUG: 1200082\nSigned-off-by: Krutika Dhananjay <kdhananj@redhat.com>\nReviewed-on: http://review.gluster.org/9841\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/6f389fbb812b384bdd9bf4a20e86930505531996"},{"sha":"e3f2ebfe6b621e84b0386d5a0613829241401d93","author":{"email":"7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","name":"Niels de Vos"},"message":"build: pass the correct CFLAGS and LDFLAGS when linking (to) libgfdb\n\nChange-Id: Id9a7d0f457d9759ab7d0a52a4000b5ae36d211f8\nBUG: 1194753\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/9946\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/e3f2ebfe6b621e84b0386d5a0613829241401d93"},{"sha":"7fea544079c0fdc2d1d6a29e039cc925f81b2117","author":{"email":"7bda0c0ee7f47171cc808e9e60292cbc5d8140dd@redhat.com","name":"Niels de Vos"},"message":"build: remove broken and unused _la_LIBADD variable\n\nWhile building, the following warning is displayed:\n\n  xlators/features/arbiter/src/Makefile.am:7: variable `_la_LIBADD' is defined but no program or\n  xlators/features/arbiter/src/Makefile.am:7: library has `_la' as canonical name (possible typo)\n\nThe _la_LIBADD really seems like a typo, dropping it should not be harmful to\nanything, except for the warning that will now be gone.\n\nBUG: 1199985\nChange-Id: I3f3ba911f59df2e51fdc6387295fff4bbcc5a12d\nSigned-off-by: Niels de Vos <ndevos@redhat.com>\nReviewed-on: http://review.gluster.org/9950\nReviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>\nTested-by: Gluster Build System <jenkins@build.gluster.com>\nReviewed-by: Ravishankar N <ravishankar@redhat.com>\nReviewed-by: Vijay Bellur <vbellur@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/7fea544079c0fdc2d1d6a29e039cc925f81b2117"},{"sha":"f10dd13a285adb287fda452f9f3557f35ba178e1","author":{"email":"dc8ba7e82a7df22725dedec9b10c7aaab9ec713f@redhat.com","name":"Humble Devassy Chirammal"},"message":"doc: adding logging details in admin guide.\n\nChange-Id: I4552d98ff6b51e8171865cd0a569f6e793db9dd0\nBUG: 1194640\nSigned-off-by: Humble Devassy Chirammal <hchiramm@redhat.com>\nReviewed-on: http://review.gluster.org/9876\nReviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>\nReviewed-by: Lalatendu Mohanty <lmohanty@redhat.com>\nTested-by: Lalatendu Mohanty <lmohanty@redhat.com>","distinct":false,"url":"https://api.github.com/repos/gaurav36/glusterfs/commits/f10dd13a285adb287fda452f9f3557f35ba178e1"}]}