BK metrics
Hello, I am running a load test scenario where we have 3 Bookies, dedicated SSD's for journal and ledger, JVM heap size 5G with G1GC enabled. `jvm_opts: -Xmx5g -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions -XX:+AggressiveOpts -XX:+DoEscapeAnalysis -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1NewSizePercent=50 -XX:+DisableExplicitGC -XX:-ResizePLAB -XX:+PrintFlagsFinal -XX:+PrintGC -XX:+PrintGCCause -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps` I am testing 1000 bytes record size, ingesting around 50M record at the ingestion rate limit 100K/sec. I wanted to understand how the metric types `stats` are reported. bookkeeper_server_ADD_ENTRY_REQUEST bookkeeper_server_ADD_ENTRYJOURNAL_ADD_ENTRYJOURNAL_SYNCJOURNAL_QUEUE_LATENCYJOURNAL_FLUSH_LATENCYJOURNAL_PROCESS_TIME_LATENCY My understanding is that the above metrics are reported in micro seconds (from BK code) and the reporters (we use statsD to collect BK metrics `codahale` and sink it to `InfluxDB`) converts the `rates` to seconds and `duration` to `milliseconds` 1) I wanted to confirm if the final graph values that I am seeing in the UI (attached) is represented in milliseconds or some other units? 2) If it's in milliseconds, are these numbers in expected range (see attached image). To me 2.5 seconds (2.5K ms) latency for add entry request is very high. Any help to understand the metrics is much appreciated. RegardsVijay
Re: BK metrics
> 2) If it's in milliseconds, are these numbers in expected range (see > attached image). To me 2.5 seconds (2.5K ms) latency for add entry request > is very high. 2.5 seconds is very high, but your write rate is also high. 100,000 * 1KB is 100MB/s. SSD should be able to take it from the journal side, but it depends on the hardware. Have you tried reducing the write rate to see how the latency changes? What is the client seeing for latency? I assume the client and all servers have 10GigE nics? Your images didn't attach correctly. Maybe they're too big to post directly to the list. There is a size limit, but I don't know what it is. -Ivan
Re: [DISCUSS] Inconsistency in Handle based APIs - Specifically "close"
+1 on 3 forse me too Il mar 20 mar 2018, 09:15 Sijie Guoha scritto: > On Tue, Mar 20, 2018 at 12:50 AM, Ivan Kelly wrote: > > > On Mon, Mar 19, 2018 at 6:37 PM, Sijie Guo wrote: > > > It is not a blocker for me. > > > > > > But if we want consistency, either applying pattern "asyncXYZ()" or > > > "xyzAsync()" for async operations works for me. > > xyzAsync is better than asyncXyz, as it will put the async and sync > > versions together in the javadoc. > > > > So, there's 3 options here. > > > > 1. Remove Closeable > > 2. Some kind of split of sealing and close > > 3. Create sync and async versions of all with Async suffix. > > > > I think 3 is the most palatable. If there's no objections I'll push a > > patch later today. > > > > +1 on 3 > > > > > -Ivan > > > -- -- Enrico Olivelli
Re: [DISCUSS] Inconsistency in Handle based APIs - Specifically "close"
On Tue, Mar 20, 2018 at 12:50 AM, Ivan Kellywrote: > On Mon, Mar 19, 2018 at 6:37 PM, Sijie Guo wrote: > > It is not a blocker for me. > > > > But if we want consistency, either applying pattern "asyncXYZ()" or > > "xyzAsync()" for async operations works for me. > xyzAsync is better than asyncXyz, as it will put the async and sync > versions together in the javadoc. > > So, there's 3 options here. > > 1. Remove Closeable > 2. Some kind of split of sealing and close > 3. Create sync and async versions of all with Async suffix. > > I think 3 is the most palatable. If there's no objections I'll push a > patch later today. > +1 on 3 > > -Ivan >
Re: [DISCUSS] Inconsistency in Handle based APIs - Specifically "close"
On Mon, Mar 19, 2018 at 6:37 PM, Sijie Guowrote: > It is not a blocker for me. > > But if we want consistency, either applying pattern "asyncXYZ()" or > "xyzAsync()" for async operations works for me. xyzAsync is better than asyncXyz, as it will put the async and sync versions together in the javadoc. So, there's 3 options here. 1. Remove Closeable 2. Some kind of split of sealing and close 3. Create sync and async versions of all with Async suffix. I think 3 is the most palatable. If there's no objections I'll push a patch later today. -Ivan