<div dir="ltr">Thanks Brian. This is very helpful and informative!<div><br></div><div style>Only question is we do indeed have data files that are > 2GB that haven't merged. I have a data file at 2.1G, as of today. The last merged happened Jan 20, which was two days ago. </div>
<div style><br></div><div style>Anything we are missing here?</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Jan 19, 2013 at 2:01 PM, Brian Sparrow <span dir="ltr"><<a href="mailto:bsparrow@basho.com" target="_blank">bsparrow@basho.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                <div>
                    Hi Ian,
                </div><div><br></div><div>Q: Why does this happen on a restart only and not at other times, even though we have set our merge_window config setting to 'always'?</div><div><br></div><div>A: The merge_window setting defaults to always and that simply means that bitcask will merge anytime the merge_triggers and thresholds set in the app.config are satisfied on a closed bitcask file. A bitcask data file is closed when it reaches the max_file_size threshold set in app.config(default of 2GB) or the node is stopped. Merging is happening on restart because this file is now closed and eligible for merge. You are not seeing merging during normal operation because the files are not reaching the 2GB max_file_size.</div>
<div><br></div><div>Q: I'm assuming our config values are correct as the restart considers the thresholds met to go ahead with a merge.</div><div><br></div><div>A: I do not see anything wrong with your configuration with the exception of no max_file_size being set. If you want to merge more often, reduce the max_file size to 1GB or lower(the lower the file size, the more merging). A good way to estimate the appropriate size is to look at how large your .data files are getting in your bitcask data directory and deciding from there what size threshold you would like to set based on your disk usage needs.</div>
<div><br></div><div>Q: Also: Are there any tools out there that I can run on my data directory that will tell me the size of the dead byte ratios? Would be nice to see what the dead byte 'state' of my data dir is in so I can tell whether indeed merge conditions are met.</div>
<div><br></div><div>A: The command you are looking for is riak-admin vnode_status. This will list all partitions on the local node as well as the number of keys in each partition and a list of closed bitcask data files in the format:</div>
<div><br></div><div>{CLOSE_DATA_FILE_NAME, FRAG_PERCENTAGE, DEAD_BYTES, TOTAL_FILE_SIZE}</div><div><br></div><div>Again, a data file must be closed(reached max_file_size or closed by node stop) to be reported in this command.</div>
<div><br></div><div>Hope this answers all your questions.</div><div><br></div><div>Thanks!</div><div><br></div>
                <div><div><br></div><div>-- </div><div>Brian Sparrow</div><div>Customer Service Engineer</div><div>Basho Technologies</div><div><br></div></div><div><div class="h5">
                 
                <p style="color:#a0a0a8">On Friday, January 18, 2013 at 5:14 PM, Ian Ha wrote:</p>
                </div></div><blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px">
                    <span><div><div><div class="h5"><div><div dir="ltr">Hi,<div><br></div><div>In our production system, we notice that merges are not taking place. We have noticed, however, that when we restart riak (via a 'riak stop' then a 'riak start'), then the merges are triggered and our disk usage goes way day (which is what we want). We use bitcask.</div>

<div><br></div><div>Why does this happen on a restart only and not at other times, even though we have set our merge_window config setting to 'always'?</div><div><br></div><div>I'm assuming our config values are correct as the restart considers the thresholds met to go ahead with a merge.</div>

<div><br></div><div>Also: Are there any tools out there that I can run on my data directory that will tell me the size of the dead byte ratios? Would be nice to see what the dead byte 'state' of my data dir is in so I can tell whether indeed merge conditions are met.</div>

<div><br></div><div>Our bit cask configs are as follows in app.config:</div><div><br></div><div><div>{bitcask, [</div><div>                {data_root, "/var/lib/riak/bitcask"},</div><div>
                {dead_bytes_merge_trigger, 268435456},</div><div>                {dead_bytes_threshold, 134217728},</div><div>                {expiry_secs, 3888000},</div><div>                {frag_merge_trigger, 40},</div>

<div>                {frag_threshold, 20},</div><div>                {merge_window, always},</div><div>                {small_file_threshold, 10485760},</div><div>                {sync_strategy, none}</div><div>        ]},</div>

</div><div><br></div><div><br></div><div>Thanks!</div></div>
</div></div></div><div><div>_______________________________________________</div><div>riak-users mailing list</div><div><a href="mailto:riak-users@lists.basho.com" target="_blank">riak-users@lists.basho.com</a></div><div>
<a href="http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com" target="_blank">http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com</a></div></div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>
            </blockquote></div><br></div>