On Tuesday, May 19, 2015 at 4:05:29 PM UTC-4, Andrei Zh wrote:
>
> @Scott, thanks for your comment, but I think we are talking about 
> different scenarios and different speed levels :) 
>
> ???  Not on any real RDBMS like MySQL, PostgreSQL...
>
>
> If you want reported message to be durable, you need either to replicate 
> it to another server, or write it to disk. In-memory log doesn't help here, 
> since transaction is still flushed on commit. You can tune up your DB, for 
> example, switching off committing after each transaction (InnoDB in MySQL 
> has this possibility, as far as I remember), but even in this case I doubt 
> MySQL or PostgreSQL will be able to beat 10K/sec. With ZMQ I've got 
> 300K/sec from the very first time on my dev machine.
>

But, ZMQ isn't storing it anywhere... that's just a messaging protocol, 
isn't it?
I was able to get 2M/sec without transactions, and 909K/sec with 
transactions (so it's durable), on my laptop, using Caché... (from 
InterSystems... I used to consult for them)
They do have a free single user database engine, Globals, that you might be 
able to use... I don't recall what's available with that version...

-Scott


 

>  
>
>> Why would being a key-value store make getting results slow?
>> I think really all depends on the indices that you build...
>>
>
> Indices also have their cost. And, most important, they are not really 
> needed here. In Kafka, for example, new records are simply added to the end 
> of the queue, and pointer to the end is moved further. In our tests it 
> gives about 50K/sec, which is much higher than for RBMSs mentioned above, 
> and unlike most key-value storages  provides easy and fast way to read all 
> messages down the stream. 
>

That seems *really* slow... but, if you are just adding records to the end 
of a queue, and you have your key simply be the counter, why would that be 
slow? 

Reply via email to