Commit Graph

139 Commits

Author SHA1 Message Date
Martyn Taylor 652573a5a9 ARTEMIS-1354 Critical IO Error on AIO write failure 2017-08-17 12:29:13 -04:00
Michael André Pearce 684dd24cc7 ARTEMIS-1335 Update Netty to 4.1.14
Update Netty to 4.1.14
2017-08-09 15:20:49 -04:00
Clebert Suconic 1ace306121 ARTEMIS-1328 Improving direct delivery check
Instead of wait to flush an executor,
I have added a method isFlushed() which will just translate to the
state on the OrderedExecutor.

In the case another executor is provided (for tests) there's a delegate
into normal executors.
2017-08-08 14:00:58 -04:00
Francesco Nigro 74f243cc4d ARTEMIS-1312 TimedBuffer doubled timeout with blocking flush 2017-08-01 11:52:28 -04:00
Francesco Nigro 567bfe3b9b ARTEMIS-1312 TimedBuffer doubled timeout with blocking flush 2017-08-01 06:34:25 -04:00
Clebert Suconic fdad83be22 [maven-release-plugin] prepare for next development iteration 2017-07-24 21:21:18 -04:00
Clebert Suconic 71b1cc2a20 [maven-release-plugin] prepare release 2.2.0 2017-07-24 21:21:06 -04:00
Clebert Suconic ad372ec98e ARTEMIS-1294 Using older sleep on TimedBuffer
And also adding test
2017-07-18 16:01:51 -04:00
Francesco Nigro 3dc9566fb6 ARTEMIS-1294 Reverted TimedBuffer timeout policy 2017-07-18 10:23:02 -04:00
Clebert Suconic 31d5758885 ARTEMIS-1288 crash during compact control files issues
The system would become irresponsive if crashed right at the
control file writing.
2017-07-13 17:12:58 -04:00
Clebert Suconic 7fd17f407f ARTEMIS-1269 Simple Actor to replace certain executions
This is replacing an executor on ServerSessionPacketHandler
by a this actor.

This is to avoid creating a new runnable per packet received.

Instead of creating new Runnable, this will use a single static runnable
and the packet will be send by a message, which will be treated by a listener.

Look at ServerSessionPacketHandler on this commit for more information on how it works.
2017-07-11 14:22:36 -04:00
Clebert Suconic 89e84e1320 ARTEMIS-1269 Fixing blocked replication
If replication blocked anything on the journal
the processing from clients would be blocked
and nothing would work.

As part of this fix I am using an executor on ServerSessionPacketHandler
which will also scale better as the reader from Netty would be feed immediately.
2017-07-06 19:04:48 -04:00
Francesco Nigro 7075e2e457 ARTEMIS-1266 Mapped Journal refactoring
The MAPPED journal refactoring include:
 - simplified lifecycle and logic (eg fixed file size with single mmap memory region)
 - supports for the TimedBuffer to coalesce msyncs (via Decorator pattern)
 - TLAB pooling of direct ByteBuffer like the NIO journal
 - remove of old benchmarks and benchmark dependencies
2017-06-30 16:17:19 +02:00
Francesco Nigro 9f8a14440b ARTEMIS-1223 OutOfDirectMemoryError raised from TimedBuffer
Force allocation of direct ByteBuffer with Cleaner to help GC on tests.
2017-06-27 12:45:26 -04:00
Andy Taylor fbe27682a1 ARTEMIS-1237 - Hard coded timeout on Journal file open
Make timeout configurable

https://issues.apache.org/jira/browse/ARTEMIS-1237
2017-06-22 10:48:09 -04:00
Jiri Danek 3d4e907a1b NO-JIRA fix typos 2017-06-21 11:16:29 -04:00
Michael Andre Pearce c65ea783ea ARTEMIS-1189 - Fix checkstyle violations post checkstyle upgrade
After upgrade of checkstyle, resolve violations

remove checkstyle override added as temp measure at point of upgrade forced by sevntu
2017-05-30 13:40:00 -04:00
Clebert Suconic dc26ac96b4 ARTEMIS-1156: moving our collections on its own package 2017-05-12 10:06:05 -04:00
Michael André Pearce c1d55aa84f ARTEMIS-1156: FIX: Long Autoboxing occurring on Hot Path
Building on ARTEMIS-905 JCtools ConcurrentMap replacement  first proposed but currently parked by @franz1981, replace the collections with primitive key concurrent collections to avoid auto boxing.

The goal of this is to reduce/remove autoboxing on the hot path.
We are just adding jctools to the broker (should not be in client dependencies)
Like wise targeting specific use case with specific implementation rather than a blanket replace all.

Using collections from Bookkeeper, reduces outside tlab allocation, on resizing compared to JCTools, which occurs frequently on testing.
2017-05-12 10:05:51 -04:00
Clebert Suconic ce61d20f5a [maven-release-plugin] prepare for next development iteration 2017-05-08 15:20:12 -04:00
Clebert Suconic 64e8f015ee [maven-release-plugin] prepare release 2.1.0 2017-05-08 15:20:01 -04:00
Francesco Nigro 21c9ed85cf ARTEMIS-1151 Adapting TimedBuffer and NIO Buffer Pooling
- NIO/ASYNCIO new TimedBuffer with adapting batch window heuristic
- NIO/ASYNCIO improved TimedBuffer write monitoring with
  lightweight concurrent performance counters
- NIO/ASYNCIO journal/paging operations benefit from less buffer copy
- NIO/ASYNCIO any buffer copy is always performed with raw batch copy
  using SIMD instrinsics (System::arrayCopy) or memcpy under the hood
- NIO improved clear buffers using SIMD instrinsics (Arrays::fill) and/or memset
- NIO journal operation perform by default TLABs allocation pooling (off heap)
  retaining only the last max sized buffer
- NIO improved file copy operations using zero-copy FileChannel::transfertTo
- NIO improved zeroing using pooled single OS page buffer to clean the file
  + pwrite (on Linux)
- NIO deterministic release of unpooled direct buffers to avoid OOM errors
  due to slow GC
- Exposed OS PAGE SIZE value using Env class
2017-05-08 11:55:28 -04:00
Clebert Suconic 36c9659279 [maven-release-plugin] prepare for next development iteration 2017-05-05 22:11:09 -04:00
Clebert Suconic 7b5082639f [maven-release-plugin] prepare release 2.1.0 2017-05-05 22:10:58 -04:00
Francesco Nigro 2cdc62572b ARTEMIS-1136 Improve UnpooledUnsafeDirectByteBufWrapper 2017-05-01 10:09:33 -04:00
Clebert Suconic 0a0955d0cc ARTEMIS-1117 Improving IO Resilience Part II
https://issues.apache.org/jira/browse/ARTEMIS-1117
2017-04-18 11:34:09 -04:00
Francesco Nigro 23ba3e27d9 ARTEMIS-1117 Improving IO Failure resilience Part I
Me (Clebert) and Francesco worked independently here.
I am keeping Francesco's changes on a separate commit

https://issues.apache.org/jira/browse/ARTEMIS-1117
2017-04-18 11:34:09 -04:00
Clebert Suconic ee261e736c ARTEMIS-1114 Improving some comment 2017-04-14 18:08:37 -04:00
Clebert Suconic ddacda5062 ARTEMIS-1114 Missing records after compacting
This is fixing an issue introduced on 4b47461f03 (ARTEMIS-822)
The Transactions were being looked up without the readLock and some of the controls for Read and Write lock
were broken after this.
2017-04-14 01:13:46 -04:00
Clebert Suconic 75a4162a36 NO-JIRA: logger on Exception 2017-03-14 09:50:19 -04:00
Martyn Taylor c40823e5ec [maven-release-plugin] prepare for next development iteration 2017-03-10 14:54:33 +00:00
Martyn Taylor 70e319d6e3 [maven-release-plugin] prepare release 2.0.0 2017-03-10 14:52:26 +00:00
Martyn Taylor f1a5f1caf9 Revert "[maven-release-plugin] prepare release 2.0.0"
This reverts commit 057047499b.
2017-03-10 14:45:29 +00:00
Martyn Taylor 1964abe567 Revert "[maven-release-plugin] prepare for next development iteration"
This reverts commit 9a52f51c9f.
2017-03-10 14:44:58 +00:00
Martyn Taylor 9a52f51c9f [maven-release-plugin] prepare for next development iteration 2017-03-10 11:36:36 +00:00
Martyn Taylor 057047499b [maven-release-plugin] prepare release 2.0.0 2017-03-10 11:25:47 +00:00
Clebert Suconic fe0ca4d84f ARTEMIS-1009 Pure Message Encoding.
with this we could send and receive message in their raw format,
without requiring conversions to Core.

- MessageImpl and ServerMessage are removed as part of this
- AMQPMessage and CoreMessage will have the specialized message format for each protocol
- The protocol manager is now responsible to send the message
- The message will provide an encoder for journal and paging
2017-03-05 23:08:53 -05:00
Jiri Danek a7a0535afa NO-JIRA Fixing typos in log messages, test names and comments
Related to ARTEMIS-387 (fowardingAddress)
2017-02-20 20:54:45 -05:00
Clebert Suconic c60c92697f ARTEMIS-937 no sync on AIO shouldn't use O_DIRECT 2017-02-03 11:47:28 -05:00
Francesco Nigro aacddfda61 ARTEMIS-906 Memory Mapped JournalType 2017-02-03 09:04:57 -05:00
Clebert Suconic ce035a8084 ARTEMIS-937 Implementing proper alignment and adding perf-journal tool to validate the journal syncs 2017-02-03 09:04:56 -05:00
Martyn Taylor 6682072da6 Major Version Bump 2.0.0 After Major Arch Change 2016-12-09 18:43:15 +00:00
Martyn Taylor 89e6ec36bb ARTEMIS-780 Implement MaxConsumers and DeleteOnNoConsumers 2016-12-09 18:43:15 +00:00
Clebert Suconic ebbc91c728 [maven-release-plugin] prepare for next development iteration 2016-12-06 16:59:52 -05:00
Clebert Suconic 5bcbea2517 [maven-release-plugin] prepare release 1.5.1 2016-12-06 09:47:43 -05:00
Dmitrii Tikhomirov 3995319dca ARTEMIS-865 Remove e.printStackTrace() from code 2016-11-23 11:15:54 -05:00
Clebert Suconic f2db1c4337 [maven-release-plugin] prepare for next development iteration 2016-11-03 15:35:05 -04:00
Clebert Suconic 13a8a2bd40 [maven-release-plugin] prepare release 1.5.0 2016-11-03 15:34:54 -04:00
Clebert Suconic 5e5ac0f057 ARTEMIS-832 Openwire was ignoring data syncs.
I'm also adding the possibility of sync on libaio, and not only relay on write-cache
2016-11-02 13:17:12 -05:00
Clebert Suconic 7eadff7681 ARTEMIS-822 Injecting IO Pools into and from ArtemisServerImpl
https://issues.apache.org/jira/browse/ARTEMIS-822
2016-10-31 11:34:27 -04:00