I failed to mention these links that give additional details concerning the
timed grooming feature:
discussion of the timed grooming feature is here:
https://github.com/basho/leveldb/wiki/mv-timed-grooming
discussion of the timed grooming fix and disable is here:
https://github.com/basho/leveldb/wiki/mv-timed-grooming2
> On May 5, 2016, at 7:59 PM, Matthew Von-Maszewski <[email protected]> wrote:
>
> Alex,
>
> I am making a guess. I would be better able to support this guess with data
> from leveldb LOG files of one server.
>
> The performance difference between the sequential keys and the reverse of the
> sequential keys is informative. The reverse ordered keys essentially become
> more like "random keys" within the leveldb key space. Overtime, they
> disperse to different .sst table files scattering the "focal point" of the
> read-before-write operations. The sequential keys are keeping all newly
> written data within the same .sst table file, i.e. the same "focal point".
>
> And there is a new tuning called "timed grooming" in the Riak 2.1.3 and 2.1.4
> releases that has a bug. The bug can cause more frequent compaction cycles
> than intended for 2.1.3 and 2.1.4 under some work loads. Your particular
> sequential keys might be such a load. This is what the LOG files would
> indicate. The biggest impact of more frequent compaction cycles is that the
> Linux page cache and leveldb block caches get invalidated more often causing
> longer read cycles to determine "nothing is there" in the read-before-write
> operation of Riak.
>
> Your higher ring size is likely not helping, but there is math that can prove
> or disprove this assumption. And again, the base numbers are within the LOG
> files.
>
> We do have an eleveldb patch release available. You would have to manual
> install it on each of the nodes. The patch disables the timed grooming and
> contains some critical bug fixes that lead to the Riak 2.1.4 release. You
> would need to tell me which operating system package you originally download
> for Riak, then I can send an appropriate link.
>
> Matthew
>
>
>> On May 5, 2016, at 10:11 AM, alexc155 <[email protected]> wrote:
>>
>> Hi,
>>
>> Thanks for your reply.
>>
>> I don't think that write_once is going to work for us as we have to
>> periodically update the data (although if we remove the data before
>> re-inserting it, would that work?)
>>
>> Why does read-before-write slow down new writes so much?
>>
>> Some new information we've found - it seems that if we write the data and
>> then update it, we get fast speeds too. It's just the initial write of the
>> data that is slow.
>>
>> So why is writing sequential keys so much slower than updating them or
>> writing non-sequential keys?
>>
>>
>>
>> --
>> View this message in context:
>> http://riak-users.197444.n3.nabble.com/How-to-increase-Riak-write-performance-for-sequential-alpha-numeric-keys-tp4034219p4034225.html
>> Sent from the Riak Users mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> riak-users mailing list
>> [email protected]
>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com