<div dir="ltr">
<div>We have been using a riak cache for a few years with good results,
without going into too much detail here is our basic setup and comments:</div><div><br></div><div>- we use <span class="gmail-il">mapproxy</span> and riak to store fully seeded imagery tiles<br></div><div>-
6 node riak cluster with a ring size of 64 (or 64 partitions) and a
n_val of 3 meaning that 3 copies of each partition is distributed across
the 6 nodes</div><div>- haproxy for load distribution across all nodes<br></div><div>- riak is configure with the leveldb backend with anti-entropy turned on</div><div>-
since we are using only 64 partitions each partition can be fairly
large, riak attempts to balance the partition across the nodes, so in
our case 4 nodes have 16% of the partitions and 2 nodes have 19%. This
can significant depending on the size of each partition (number of
objects / tiles), some nodes may require significantly more storage. To
get around this issue you could have a higher number of partitions
resulting in a more equal distribution of partitions, however once the
cluster is set up it almost impossible to change this value.</div><div>- very easy to add another node, riak will redistribute the partitions automatically <br></div><div>- riak stores the tile using a key / object like couchdb, <span class="gmail-il">mapproxy</span> can use a secondary index to help with queries</div><div>- riak uses the concept of a bucket, kind of a container to hold your keys. <span class="gmail-il">Mapproxy</span> uses the bucket to hold a cache, 1 bucket=1 cache</div><div>-
very fast read / writes compared to other cache types, we see 100+ tile
/ second when cache without pushing it hard (transfer of caches from
sqlite to riak).</div><div>- can be problematic deleting / updating your
cache depending on your use case. You cannot simply delete a
bucket/cache but need to delete each object. If you try to use the <span class="gmail-il">mapproxy</span>
cleanup it may take forever to complete as it needs to cycle through
each possible key and query riak. We've had to write python scripts
that utilize the secondary index to retrieve lists of keys and then
delete each key / object in the list.</div><div>- riak logging is
terrible so it can be very difficult to troubleshoot issues, there is no
logging of request / errors for client applications, so once in a while
you'll see a timeout and you'll have no idea if is a riak or network
issue</div><div>- been very reliable so far</div><div>- basho the
company that developed riak went bankrupt a few years ago but there is
still some active development, it was taken over by bet360</div>
</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 10 Mar 2020 at 03:53, Jeff Konnen <<a href="mailto:jaykayone@gmail.com">jaykayone@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>we host several of hundreds of caches in a fie system that resides on a NFS disk which is mounted on different hosts with mapproxy containers accessing these files.</div><div><br></div><div>It works well but we are hitting some I/O Problems on the NFS server. That's why we are considering using a distributed system right now.</div><div><br></div><div>Does anyone have experience with mapproxy on riak, s3 (minio?) ?</div><div><br></div><div>What would your recommendation be?</div><div><br></div><div>We don't have any of these components running today, so given that we would have to create a new infrastructure from scratch, which one would you recommend?</div><div><br></div><div>Best regards</div><div>Jeff</div><div><div><br></div>-- <br><div dir="ltr">Jeff Konnen<br></div></div></div>
_______________________________________________<br>
MapProxy mailing list<br>
<a href="mailto:MapProxy@lists.osgeo.org" target="_blank">MapProxy@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/mapproxy" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/mapproxy</a></blockquote></div>