Re: Is Riak suitable for s small-record write-intensive billion-records application?

2012-10-22 Thread Joshua Muzaaya
riak can well do this, but you will have to be strong and willing to learn.
If you want a faster solution for the same, have you checked out Couchbase
Server ( http://couchbase.com) , it too, can handle this data, and its
setup is painless, with already finished SDKs and stuff, JSON in-and-out
and built-in memcached Hashing. You can add or remove nodes from the
cluster at run-time.

This is not meant to down-market Riak, but you mentioned Billions of
records. Riak storage is known to have a few issues as data grows to
billions. However, Couchbase 2.0 has been kinda battle tested, using SQLite
at the storage layer. Get more info there.

So, besides riak, give couchbase a test too.

  
Designed with WiseStamp -
Get
yours



On Mon, Oct 22, 2012 at 11:23 AM, Jens Rantil wrote:

> Hi Yassen,
>
> > Any given node can be stopped or additional nodes can be added with
> almost no interruption. If the active node is taken down, CARP will appoint
> a new active node and its front-end will start accepting requests replacing
> the gone node. New nodes will announce themselves to the front-end apps via
> multicast.
>
> But CARP only handles when the _machine_ goes down, right? Have you
> planned for the scenario when if Riak would go down, but the machine would
> be responsive? If not, haproxy could be an option.
>
> Regards,
> Jens
>
>
> ___
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>



-- 
*Muzaaya Joshua
Systems Engineer
+256774115170*
*"Through it all, i have learned to trust in Jesus. To depend upon His Word"
*
___
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com


Re: Logging chat messages

2012-10-23 Thread Joshua Muzaaya
http://couchbase.com CouchBase server has this as a configuration and works
exactly how riak would. However, using a different storage for incremental
ids will present challenges. Have you carefully considered Couchbase ,
CouchDB or Big Couch ?

  
Designed with WiseStamp -
Get
yours



On Tue, Oct 23, 2012 at 7:32 AM, Rapsey  wrote:

> There is also another trick you can use. Pick a number. Assign every app
> server you have a number between 1 and N. The number assigned to the server
> is your starting ID, then increment by N every time you generate an ID from
> that server. The only limitation is that you have to know in advance how
> big N can get (it has to be larger than the number of your app servers).
>
>
> Sergej
>
>
> On Tue, Oct 23, 2012 at 6:00 AM, Shashwat Srivastava wrote:
>
>> Thank you Guido. Yes, a secondary index based on date would be immensely
>> helpful for me to navigate via date. I will do this. An incremental message
>> id would be helpful for me to get last 50 messages and so forth. I will use
>> another db for this. Thanks for all your help.
>>
>> Shashwat
>>
>>
>> On Mon, Oct 22, 2012 at 2:46 PM, Guido Medina 
>> wrote:
>>
>>>  Don't overkill it with technology, you could use Riak with a simple 2i
>>> index (integer index MMDD for the message date so you can search day by
>>> day backward), and for the message sequence or identifier you could either
>>> user ANY SQL database sequence or a UUID generator.
>>>
>>> HTH,
>>>
>>> Guido.
>>>
>>>
>>> On 22/10/12 10:04, Rapsey wrote:
>>>
>>>
>>> On Mon, Oct 22, 2012 at 10:29 AM, Shashwat Srivastava >> > wrote:
>>>

  Now, each bucket would have conversation between two users or of a
 room of a site. The conversation rate for (some) rooms is very high, some
 20,000 - 30,000 messages per hour. We have observed that users usually
 don't access conversations past one week. So, if a bucket has conversation
 of 3 years, then mostly users would access the recent conversation upto a
 week or month. Can riak handle this easily? Also, would riak use RAM wisely
 in this scenario? Would it only keep keys and indexes, corresponding to
 recent messages per bucket, in RAM?


>>>  Leveldb backend should.
>>>
>>>
 Finally, what is the best approach for creating keys in a bucket?
 Earlier, I was planning to use timestamp (in milliseconds). But in a room
 there can be multiple messages at the same time. As I understand I cannot
 have a unique incremental message id per bucket (as riak has write
 capability in all nodes in a cluster so consistency is not guareented).
 Please correct me if I am wrong. One other way could be to let riak
 generate key and I use timestamp as a secondary index. But this seems to be
 a bad design. Also, what would be the best way to achieve pagination for
 this use case?


>>>  You could use redis for incremental id's.
>>>
>>>
>>>
>>>  Sergej
>>>
>>>
>>> ___
>>> riak-users mailing 
>>> listriak-users@lists.basho.comhttp://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>>
>>>
>>>
>>> ___
>>> riak-users mailing list
>>> riak-users@lists.basho.com
>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>>
>>>
>>
>>
>>
>> ___
>> riak-users mailing list
>> riak-users@lists.basho.com
>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>
>>
>
> ___
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
>


-- 
*Muzaaya Joshua
Systems Engineer
+256774115170*
*"Through it all, i have learned to trust in Jesus. To depend upon His Word"
*
___
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com


Re: Logging chat messages

2012-10-23 Thread Joshua Muzaaya
The post you saw that was comparing NoSQL DBs is very old.  CouchDB is very
different from CouchBase Server. CouchBase Server is in the class of Riak
.check it out too

  <http://www.linkedin.com/pub/muzaaya-joshua/39/2ba/202>
Designed with WiseStamp -
<http://r1.wisestamp.com/r/landing?u=cf16262215eb8784&v=3.11.21&t=1350990570976&promo=10&dest=http%3A%2F%2Fwww.wisestamp.com%2Femail-install%3Futm_source%3Dextension%26utm_medium%3Demail%26utm_campaign%3Dpromo_10>Get
yours<http://r1.wisestamp.com/r/landing?u=cf16262215eb8784&v=3.11.21&t=1350990570976&promo=10&dest=http%3A%2F%2Fwww.wisestamp.com%2Femail-install%3Futm_source%3Dextension%26utm_medium%3Demail%26utm_campaign%3Dpromo_10>



On Tue, Oct 23, 2012 at 1:47 PM, Shashwat Srivastava wrote:

>
> On Tue, Oct 23, 2012 at 3:35 PM, Guido Medina wrote:
>
>>I know you want to follow a criteria for sorting messages, you could
>> stamp each message up to the second precision (storing milliseconds would
>> be a problem) and index them by day (MMDD), so that way you can find by
>> day using 2i search, and sort by time, so the ID won't be needed for
>> sorting, that way your design will be more loose, no need for
>> synchronization of any type.
>>
>>   Now if you really need a sequence, if you feel compelled to use a
>> sequence, just use a dummy database sequence, any PostgreSQL or MySQL
>> service can do that for you, but if you want your app to be loosely couple
>> and just exploit the Riak cluster as much as possible, UUID will be your
>> winning ticket for message ID. If you are unsure UUID will be unique, add
>> another criteria and prefix the UUID with something like sender, etc.
>>
>> Guido.
>>
>>
> Thank you so much!
>
> Sounds reasonable and feasible :) One question, why storing milliseconds
> would be a problem?
>
> The only reason to use an incremental id is to be able to build pagination
> easily i.e. last 50 msgs, next 50, and so on. I guess I can do it without
> using id, with the help of datestamp and timestamp.
>
> Thanks,
> Shashwat
>
>
>>
>> On 23/10/12 10:56, Joshua Muzaaya wrote:
>>
>> http://couchbase.com CouchBase server has this as a configuration and
>> works exactly how riak would. However, using a different storage for
>> incremental ids will present challenges. Have you carefully considered
>> Couchbase , CouchDB or Big Couch ?
>>
>><http://www.linkedin.com/pub/muzaaya-joshua/39/2ba/202>
>> Designed with WiseStamp -
>> <http://r1.wisestamp.com/r/landing?u=cf16262215eb8784&v=3.11.21&t=1350986076607&promo=10&dest=http%3A%2F%2Fwww.wisestamp.com%2Femail-install%3Futm_source%3Dextension%26utm_medium%3Demail%26utm_campaign%3Dpromo_10>Get
>> yours<http://r1.wisestamp.com/r/landing?u=cf16262215eb8784&v=3.11.21&t=1350986076607&promo=10&dest=http%3A%2F%2Fwww.wisestamp.com%2Femail-install%3Futm_source%3Dextension%26utm_medium%3Demail%26utm_campaign%3Dpromo_10>
>>
>>
>>
>> On Tue, Oct 23, 2012 at 7:32 AM, Rapsey  wrote:
>>
>>> There is also another trick you can use. Pick a number. Assign every app
>>> server you have a number between 1 and N. The number assigned to the server
>>> is your starting ID, then increment by N every time you generate an ID from
>>> that server. The only limitation is that you have to know in advance how
>>> big N can get (it has to be larger than the number of your app servers).
>>>
>>>
>>>  Sergej
>>>
>>>
>>> On Tue, Oct 23, 2012 at 6:00 AM, Shashwat Srivastava 
>>> wrote:
>>>
>>>> Thank you Guido. Yes, a secondary index based on date would be
>>>> immensely helpful for me to navigate via date. I will do this. An
>>>> incremental message id would be helpful for me to get last 50 messages and
>>>> so forth. I will use another db for this. Thanks for all your help.
>>>>
>>>>  Shashwat
>>>>
>>>>
>>>> On Mon, Oct 22, 2012 at 2:46 PM, Guido Medina >>> > wrote:
>>>>
>>>>>  Don't overkill it with technology, you could use Riak with a simple
>>>>> 2i index (integer index MMDD for the message date so you can search 
>>>>> day
>>>>> by day backward), and for the message sequence or identifier you could
>>>>> either user ANY SQL database sequence or a UUID generator.
>>>>>
>>>>> HTH,
>>>>>
>>>>> Guido.
>>>>>
>>>>>
>>>>> On 22/10/12 10:

Re: Tip for Nginx with Riak CS

2013-05-06 Thread Joshua Muzaaya
Thanks so much for this.


On Mon, May 6, 2013 at 9:03 AM, Toby Corkindale <
toby.corkind...@strategicdata.com.au> wrote:

> Sharing a tip with the list, in case it saves a future person an hour of
> their time..
>
> If you use Nginx to loadbalance to Riak CS, be sure that you set this in
> your site configuration:
>
> proxy_set_headerHost $http_host;
>
> This ensures that the HTTP Host: header is passed through as it is
> received, rather than replaced by the IP address or hostname of the
> back-end server that nginx proxied the request to.
>
> Also ensure that the domain name fully matches the one in
> /etc/riak-cs/app.config, and that you have wildcard DNS records configured
> against it.
>
> -Toby
>
> __**_
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/**mailman/listinfo/riak-users_**lists.basho.com
>



-- 
*Muzaaya Joshua
Systems Engineer
+256774115170*
*"Through it all, i have learned to trust in Jesus. To depend upon His Word"
*
___
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com


Re: Riaktor: a Promise-based async API for Riak

2013-05-21 Thread Joshua Muzaaya
Thanks for this. I am going to check it out, and so should the others.


On Mon, May 20, 2013 at 10:34 PM, Jon Brisbin  wrote:

> I'm stretching the legs on our new async framework Reactor [1] and I
> created a quite small helper class to enable efficient async operation of
> the official Java client. I'm calling it Riaktor (even though there's
> apparently an old Ruby gem of the same name that hasn't been updated in
> several years).
>
> https://github.com/jbrisbin/riaktor
>
> Since it uses Reactor, it also has OOTB Groovy love, which includes using
> Closures as callbacks, etc… There's basically no documentation yet; only
> what's in the tests. But if you're brave enough to try out something
> completely new, I would love to get your feedback! :)
>
> I've load-tested this to over 150,000 ops/sec using 2 threads via
> Disruptor-based RingBufferDispatchers. Reactor itself can do 15M ops/sec on
> my three-year-old MacBook Pro so the bottleneck is going to be the network
> and your Riak cluster. But assuming you've got the bandwidth to handle it,
> Riaktor can push to (and pull from) Riak very efficiently.
>
> Once you've got some data in the client, the idea is that you'll want to
> continue integrating with Reactor's async tools by doing compositions (map,
> filter, reduce, etc… a la RxJava Observable). That's why Riaktor returns a
> Promise for almost everything.
>
> I'd be interested to get your feedback as it would directly feed back into
> better Reactor features.
>
> [1] - https://github.com/reactor/reactor/
>
>
> Thanks!
>
> Jon Brisbin
> Twitter: @JonBrisbin
> http://about.me/jonbrisbin
>
>
>
> ___
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>



-- 
*Muzaaya Joshua
Systems Engineer
+256774115170*
*"Through it all, i have learned to trust in Jesus. To depend upon His Word"
*
___
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com


Re: Reliability quastion

2016-01-14 Thread Joshua Muzaaya
I suggest u test out CouchBase or Cloudant or CouchDB as well. Riak can be
problematic when things go wrong.

On Thu, Jan 14, 2016 at 4:07 PM, Russell Brown  wrote:

>
>
> On 14 Jan 2016, at 07:05, j.halif...@seznam.cz wrote:
>
> Hi All,
>
>
> I am a member of the community for about a year to understand reliability
> of Riak.
>
> What I can see here is that there are some problems which could prevent
> using
>
> it in a project which require high reliability. That's why I'd like to ask
> the following:
>
>
> Do you believe that Riak can be used in a project which requires high
> reliability?
>
> Yes!
>
>
> Thank you so much..
>
>
> BR,
>
> jh
>
>
>
> =
>
> ___
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
>
> ___
> riak-users mailing list
> riak-users@lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
>
___
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com