activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From SuoNayi <suonayi2...@163.com>
Subject Re:Re: Re: How to ensure LevelDB store uses a JNI driver
Date Sat, 09 Mar 2013 07:37:40 GMT
Thanks for clarification!




At 2013-03-09 00:28:09,"Hiram Chirino" <hiram@hiramchirino.com> wrote:
>On Thu, Mar 7, 2013 at 1:42 AM, SuoNayi <suonayi2006@163.com> wrote:
>
>> I have some confusions not answered until now:
>> 1. A leveldb driver( pure java driver or the jni driver) seems like a jdbc
>> driver,
>>     it can not save the data without talking to the store engine(database).
>>     For the jni driver, does it will find the installed LevelDB on the
>> broker at first?
>>     If not found what will behave next? Just use the experimental pure
>> Java LevelDB  implement
>>     (org.iq80.leveldb.impl.*)?
>>
>
>If the JNI driver cannot be loaded, then the pure java driver is then used.
>
>
>>     Can the pure jave driver talks to the the installed LevelDB?
>>
>
>The pure java driver uses the same on disk format, so yes you can switch
>between the two safely.
>
>
>>     I download the source code from http://code.google.com/p/leveldb/ and
>> issue 'make' command
>>     and install LevelDB.
>>
>
>That won't help.  The the leveldb logic has been statically linked into the
>jni library.  That jni library is prebuilt and included in a jar.  It's
>extracted on demand.  If you really want to build it yourself and install
>it, see:
>https://github.com/fusesource/leveldbjni
>
>
>> 2. How can I only enable jni driver for the LevelDB?
>>
>
>If on startup you don't get a warning saying your using the pure java
>version, then your using the JNI driver.  If you want the broker to fail to
>start up if it's not using the JNI driver, then you should set the
>following attribute on the levelDB element in your activemq configuration
>file: indexFactory="org.fusesource.leveldbjni.JniDBFactory"
>
>3. Does the jni driver performs faster than the purge java driver?
>>
>
>I have not benchmarked recently, but It was faster.
>
>
>> 4. Is it production-ready for using LevelDB?
>
>
>Yes.
>
>
>> At 2013-03-06 23:36:20,"Christian Posta" <christian.posta@gmail.com>
>> wrote:
>> >Apollo does this. I think the logs are coming from the leveldb store, so
>> >when using with ActiveMQ 5.x it should be the same (but i didn't try yet).
>> >It will only log if NOT using the JNI impl.
>> >
>> >
>> >On Wed, Mar 6, 2013 at 12:35 AM, Claus Ibsen <claus.ibsen@gmail.com>
>> wrote:
>> >
>> >> On Wed, Mar 6, 2013 at 8:00 AM, SuoNayi <suonayi2006@163.com> wrote:
>> >> > Also I saw the leveldb-0.2.jar in the extra directory under the lib
>> >> directory, seems it's the java LevelDB implement.
>> >> >
>> >> > I removed the jar from the extra directory and deployed a new broker
>> on
>> >> other new CentOS server and restarted the broker,
>> >> > but I could still send messages to the new broker and log files
>> created
>> >> by LevelDB were present in the specific directory.
>> >> >
>> >>
>> >> I think the leveldb driver/transport has a Java based driver that it
>> >> fallback and use if the JNI is not possible/present.
>> >>
>> >> Though Hiram would be the best person to answer that.
>> >>
>> >> And yeah if there is something we can make more obvious from INFO
>> >> logging when starting the broker which one is in use, that would be
>> >> great.
>> >>
>> >>
>> >> > So here I'm more confused about that the broker with removal the
>> >> leveldb-0.2.jar is deployed on the new CentOS server without
>> >> > LevelDB installation can still work.
>> >> > The version is activemq-5.7.0.fuse-71-047.
>> >> >
>> >> > At 2013-03-06 13:36:46,SuoNayi <suonayi2006@163.com> wrote:
>> >> >>Hi ,
>> >> >>Can we ensure LevelDB store uses a JNI driver or not via logging?
>> >> >>I have deployed brokers on two CentOS servers, one server with LevelDB
>> >> installation while the other without installation.
>> >> >>After changing the logging level to DEBUG, I still can not find
logs
>> to
>> >> indicate that a JNI driver or a pure java implement is used.
>> >> >>On the same server my broker was deployed without LevelDB installation
>> >> at first, I use a simple load producer to send massive
>> >> >>messages to measure performance,after that I installed LevelDB and
>> >> restarted the broker and the load producer.
>> >> >>What make me confused is that the performance measure is very close.
>> So
>> >> I suspect if the JNI driver is used or not.
>> >> >>If not used the java LevelDB will be used?Can I assume the JNI driver
>> >> always performs better than the java driver?
>> >> >>
>> >> >>
>> >> >>Thanks,
>> >> >>SuoNayi
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>--
>> >> >>
>> >> >>Wangyin
>> >> >>SuoNayi2006@163.com
>> >> >>
>> >>
>> >>
>> >>
>> >> --
>> >> Claus Ibsen
>> >> -----------------
>> >> Red Hat, Inc.
>> >> FuseSource is now part of Red Hat
>> >> Email: cibsen@redhat.com
>> >> Web: http://fusesource.com
>> >> Twitter: davsclaus
>> >> Blog: http://davsclaus.com
>> >> Author of Camel in Action: http://www.manning.com/ibsen
>> >>
>> >
>> >
>> >
>> >--
>> >*Christian Posta*
>> >http://www.christianposta.com/blog
>> >twitter: @christianposta
>>
>
>
>
>-- 
>
>**
>
>*Hiram Chirino*
>
>*Engineering | Red Hat, Inc.*
>
>*hchirino@redhat.com <hchirino@redhat.com> | fusesource.com | redhat.com*
>
>*skype: hiramchirino | twitter: @hiramchirino<http://twitter.com/hiramchirino>
>*
>
>*blog: Hiram Chirino's Bit Mojo <http://hiramchirino.com/blog/>*

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message