Commit Graph

995 Commits

Author SHA1 Message Date
Robinson
2ca87dfcb1
Event dispatcher events 2023-04-20 17:52:21 +02:00
Robinson
74dbdf02b5
Updated Configuration settings for unique directories 2023-04-20 17:51:07 +02:00
Robinson
ecdde53a3b
update AeronPoller close signature 2023-04-20 17:48:27 +02:00
Robinson
838b2d7ee3
Updated event polling for aeron network events 2023-04-20 17:47:45 +02:00
Robinson
8238dfffbd
updated collection library 2023-04-20 17:46:41 +02:00
Robinson
f7de6f4c9d
EventDispatcher is now static 2023-04-20 17:45:34 +02:00
Robinson
0dcd635f6d
connection filtering is only for the server now 2023-03-17 15:07:45 +01:00
Robinson
47c4ce1cd1
Added DisconnectMessage to serialization 2023-03-17 14:58:43 +01:00
Robinson
460840fad3
PING cancelRequest now uses send(), so that events are processed in order (instead of concurrently) 2023-03-17 14:58:04 +01:00
Robinson
eb0e59b7ba
runBlocking is now used for event registrations 2023-03-17 14:31:57 +01:00
Robinson
81e2965d10
optimized errorHandler 2023-03-17 14:06:32 +01:00
Robinson
7261a1dcfe
Cleaned up how the media driver connections work. They are also suspending instead of blocking 2023-03-17 14:05:50 +01:00
Robinson
0b7aa96ede
aeron dir is now auto-set to be absolute 2023-03-17 14:02:42 +01:00
Robinson
11d7645f7a
updated copyright 2023-03-17 13:58:52 +01:00
Robinson
a8f28d2814
kotlin map API + License header 2023-03-10 21:28:40 -06:00
Robinson
24f2246016
Errors will ALWAYS log, and will log only 1 time. 2023-03-05 17:20:38 +01:00
Robinson
1bdb5d546d
Reconnects during a disconnect are now re-dispatched appropriately 2023-03-02 19:46:08 +01:00
Robinson
559880b71c
Server disconnects do not call connection.connect (only clients can do this). Removed associated logic 2023-03-02 19:45:41 +01:00
Robinson
8f81243c25
MOved event dispatch to own class (as it is not user configurable) 2023-03-02 19:44:54 +01:00
Robinson
062b8a76ae
updated API 2023-03-02 19:44:06 +01:00
Robinson
96b5bcf905
moved runBlocking to invoking method 2023-03-02 19:43:24 +01:00
Robinson
9d04c3acb1
added new event dispatcher 2023-03-02 19:42:42 +01:00
Robinson
cbbef7f48a
Updated error handler usage, updated to use new event dispatch system, added more logging info 2023-03-02 19:42:22 +01:00
Robinson
408b41470e
updated API 2023-03-02 19:41:03 +01:00
Robinson
7ec23c59fa
Updated aeron event poller 2023-03-02 19:40:42 +01:00
Robinson
fc30c16758
Removed suspending methods (it was not necessary) 2023-03-02 19:38:21 +01:00
Robinson
2455f08b9a
updated API 2023-03-02 19:37:51 +01:00
Robinson
07219d058c
Moved network EventPoller to aeron package 2023-03-01 22:41:08 +01:00
Robinson
5833292975
Updated dispatch API 2023-03-01 22:40:12 +01:00
Robinson
66147174cc
Updated comments 2023-03-01 22:39:38 +01:00
Robinson
b29e6e583c
Fixed pingManager access 2023-03-01 22:39:29 +01:00
Robinson
8694f97217
Now using the NetworkEventPoller for polling ALL aeron subscriptions within the JVM 2023-03-01 22:39:03 +01:00
Robinson
ee3d0c7dda
Updated API 2023-03-01 22:36:41 +01:00
Robinson
3856483424
Added copyright 2023-03-01 22:36:27 +01:00
Robinson
6c846775eb
updated license 2023-03-01 20:34:01 +01:00
Robinson
9b1c594abb
Don't log (and trigger the "already shown tempFS tips) message if we are the NOP.LOGGER (which is when we check if we are running, it's the NOP logger.)" 2023-03-01 12:49:45 +01:00
Robinson
b4c7203c71
Close the network Event dispatcher when done 2023-03-01 12:49:10 +01:00
Robinson
e0e8d06eaf
Added notifyError(global) and added array.remove 2023-03-01 12:46:12 +01:00
Robinson
f1e6df094d
Added another type for equality/hash. Fixed issues with event/message dispatch 2023-03-01 00:24:44 +01:00
Robinson
8cdf5781e2
code warnings 2023-03-01 00:22:46 +01:00
Robinson
3f48fcc313
Added defaults + checks for ResponseManager 2023-03-01 00:21:12 +01:00
Robinson
a7a606f1be
API/Code cleanup 2023-02-27 11:31:34 +01:00
Robinson
340dc4a36c
Cleaned API and logging 2023-02-27 11:09:33 +01:00
Robinson
e38ff52c08
Updated pub/sub API 2023-02-26 18:18:19 +01:00
Robinson
912a2f4c2a
Updated settings store for new API 2023-02-26 18:17:30 +01:00
Robinson
c8af0ba33b
Moved add() to companion object 2023-02-25 13:23:29 +01:00
Robinson
b65005828c
Use the windows hi-rez timer 2023-02-25 10:21:47 +01:00
Robinson
9969dcd9b8
AeronContext now implements Closable 2023-02-24 20:28:32 +01:00
Robinson
17ed752ec1
added support for debugging connections 2023-02-24 16:33:39 +01:00
Robinson
7fd5f4e577
Cleaned up comments 2023-02-23 20:54:30 +01:00
Robinson
389be7b6db
added equals/hashCode 2023-02-23 12:37:00 +01:00
Robinson
0866f1b6b8
Code cleanup 2023-02-21 19:39:51 +01:00
Robinson
6c433a918f
RemoteObject casting can now be inferred 2023-02-21 19:36:57 +01:00
Robinson
63f60a5f96
When closing a connection, we use the writeMutex instead of 'messagesInProgress' 2023-02-21 19:36:25 +01:00
Robinson
bb820b03b4
Starting the aeron driver ALWAYS happens since the handshake loop, within the try/catch 2023-02-20 20:57:04 +01:00
Robinson
a1a869346e
Updated log messages 2023-02-20 19:27:53 +01:00
Robinson
80e2a57d74
Cleaned API usage 2023-02-20 19:26:55 +01:00
Robinson
0753a08b9a
Updated comments and error messages 2023-02-20 19:26:21 +01:00
Robinson
8ae3f15f8e
Added support for IPC/UDP term buffer length (with the default the same as it was previously) 2023-02-16 21:43:45 +01:00
Robinson
3772de7cca
Updated log messages to be consistent between server/client 2023-02-16 00:50:32 +01:00
Robinson
b806ff43db
Fixed class visibility 2023-02-15 23:29:02 +01:00
Robinson
024ff53e20
Cleaned up duplicate aeron pub/sub logs 2023-02-15 23:28:45 +01:00
Robinson
c57f0564db
Added method parameter names 2023-02-15 23:28:15 +01:00
Robinson
ba3ea72369
Cleaned up comments 2023-02-15 23:27:11 +01:00
Robinson
bdb1386504
Cleaned up duplicate aeron pub/sub logs 2023-02-15 23:26:53 +01:00
Robinson
230ad249bd
Added ip address to logs for connect/disconnect/timeout/etc 2023-02-15 15:47:02 +01:00
Robinson
3064545645
Send buffer is smaller (1mb) 2023-02-15 15:22:49 +01:00
Robinson
76a96a89ef
Cleaned up stopping/starting the aeron driver 2023-02-15 01:15:51 +01:00
Robinson
73efd8d370
easier code to read 2023-02-15 01:15:05 +01:00
Robinson
9f42800d6a
updated version 2023-02-14 23:47:04 +01:00
Robinson
c289f02cb9
code/comment cleanup 2023-02-10 21:21:09 +01:00
Robinson
ee25f0d2ce
removed dead code 2023-02-10 21:20:34 +01:00
Robinson
1d30329383
Cleaned stacktraces in the client handshake 2023-02-10 21:20:27 +01:00
Robinson
1f562b880c
Cleaned up allocator constructor 2023-02-10 21:20:13 +01:00
Robinson
47d8956635
Make sure that registrations are rechecked for RMI implementations. 2023-02-09 00:44:57 +01:00
Robinson
488eda3fcc
Refactor serialization initialization and kryo usage.
StreamingManager has better security wrt session IDs
2023-02-08 22:56:23 +01:00
Robinson
47afe38dd2
transitive for kotlin logging util 2023-02-07 22:23:11 +01:00
Robinson
f6105a3b11
Updated version 2023-01-05 23:10:31 +01:00
Robinson
95b724c509
Shutdown the client Aeron instance (if it's the only one), if there is any kind of exception thrown during the connection process (not only on retry events) 2023-01-04 23:30:25 +01:00
Robinson
24a0a0d427
updated version 2022-12-17 23:49:36 +01:00
Robinson
e74f4a4e10
Pub/Sub are now closed when exceptions are thrown 2022-12-17 23:21:44 +01:00
Robinson
d408493907
v6.1 2022-12-17 22:24:33 +01:00
Robinson
88121bf0cc
WIP JPMS 2022-12-17 22:24:07 +01:00
Robinson
a311a47eaf
Added sync/async unit block for thread/concurrent safe sync/async calls 2022-12-16 00:01:11 +01:00
Robinson
48d4ba9b00
Moved idle strategy reset 2022-12-15 23:58:27 +01:00
Robinson
ad4073c632
close the sub/pub for a client when it fails to connect (prevent disk space leak) 2022-12-15 23:57:33 +01:00
Robinson
9689b3a1a7
renamed field 2022-12-15 23:55:40 +01:00
Robinson
6ea4c6477f
Suppress casting when returning kryo 2022-11-16 01:12:17 +01:00
Robinson
b94c55cd4f
Fixed compiler warnings 2022-11-15 00:18:18 +01:00
Robinson
7145c23692
Fixed kotlin smart cast 2022-11-12 00:38:23 +01:00
Robinson
c9eca33e89
Updated major version 2022-11-12 00:38:03 +01:00
Robinson
4454d2904e
EndPoint interaction on the network can be overridden for a 100% custom wire protocol 2022-10-02 15:03:28 +02:00
Robinson
700e3ecd7e
Cleaned up formatting/logic of common addresses. Fixed wildcard usage within pollers 2022-08-20 12:15:01 +02:00
Robinson
f7c6c88098
More thorough checking for ipv4 remotes when building connections 2022-08-20 11:11:06 +02:00
Robinson
77701e12c4
More specific variable name for ipv4 check 2022-08-20 11:10:19 +02:00
Robinson
5472a07079
Sending chunked data now creates fewer objects while sending. Updated unit test to use proper API 2022-08-19 23:39:54 +02:00
Robinson
48bedc04ca
Cleaned up isWildcard/isLocalhost. removed duplicate code 2022-08-19 23:33:02 +02:00
Robinson
f8e2a16a10
Updated version 2022-08-19 00:50:58 +02:00
Robinson
ba423e424f
imports 2022-08-19 00:50:26 +02:00
Robinson
4af38ef212
Back to suspending 2022-08-18 22:01:42 +02:00
Robinson
ae7c043240
Cleaned up logs 2022-08-18 22:00:54 +02:00
Robinson
7e7ccb41da
Fixed log info during memory leak check 2022-08-18 20:44:15 +02:00
Robinson
f384638b44
Cleaned up inet address formats 2022-08-18 12:38:44 +02:00
Robinson
9af89ebd0c
Updated comments 2022-08-18 12:38:24 +02:00
Robinson
fa95ddf56c
Added extra logs when DEBUG_CONNECTIONS is enabled 2022-08-18 10:18:48 +02:00
Robinson
bb499d1c0c
Cleaned up common code and log output 2022-08-18 09:43:38 +02:00
Robinson
2ef56be699
Cleaned up close methods 2022-08-10 14:45:16 +02:00
Robinson
a34308ea07
Added driver support for errors and loss statistics 2022-08-10 14:34:54 +02:00
Robinson
4f63dbc25c
Fixed typo in variable name 2022-08-10 14:34:36 +02:00
Robinson
5a047e2367
Added support for debugging connections 2022-08-10 14:34:09 +02:00
Robinson
f429ca1414
Updated version 2022-08-04 03:39:48 +02:00
Robinson
dad5cd90b0
Network now uses MDC + unique session id's to initiate/create connections. Prevents issues surrounding handshake conflicts. Now uses exclusive publications, also synchronizes on connection when sending data. Fixed issues when binding to IPv6 Wildcard IPs. RMI events will (attempt) to suppress errors when the connection is closed when the RMI waiter times out. 2022-08-04 03:39:14 +02:00
Robinson
8deee6c0a7
Make sure that the global disconnect handler is also called 2022-08-04 00:34:48 +02:00
Robinson
401f29a9a2
Updated version 2022-08-03 01:52:50 +02:00
Robinson
6d519227df
Fixed issues getting the subscription bind address. 2022-08-03 01:52:30 +02:00
Robinson
77957a8943
Updated version 2022-08-03 00:21:30 +02:00
Robinson
d70a7b1847
Fixed aeron directory typo 2022-08-03 00:21:15 +02:00
Robinson
1ad1110bc6
Updated version 2022-08-03 00:08:35 +02:00
Robinson
2e7c79c1c0
Fixed logging for aeron exceptions 2022-08-03 00:08:13 +02:00
Robinson
31cf33cfab
Updated version 2022-08-02 22:44:17 +02:00
Robinson
bfbd33db00
Cleaned up disconnect notification logic 2022-08-02 22:43:44 +02:00
Robinson
325b463c01
Cleaned up connection close events 2022-08-02 21:15:45 +02:00
Robinson
8bcbce019e
Cleaned up unused close features. 2022-08-02 21:14:54 +02:00
Robinson
736dafafa2
Added ability for the framework to optionally send a close() event to the remote end. This is not guaranteed to run, but is a hint to the remote endpoint what is going on, and to improve disconnect performance. 2022-08-02 21:13:39 +02:00
Robinson
eea68c059a
Moved closeForRestart() to public scope 2022-08-02 13:24:23 +02:00
Robinson
305d410071
Added support for restarting the network driver for the endpoints 2022-08-02 13:10:06 +02:00
Robinson
8e6a4bcf3c
Added support to start/stop the aeron driver 2022-08-02 12:43:05 +02:00
Robinson
20226468c4
Changed Aeron connections from MDC -> "normal" (so the network connections are initialized more like a standard UDP connection would be, instead of the more complicated MDC method 2022-08-02 12:11:36 +02:00
Robinson
d5397dde7b
Fixed comments. lowered poll frequency - changed function name 2022-08-02 12:04:09 +02:00
Robinson
ecdb762274
Removed un-needed 'suspend' modifiers 2022-08-01 22:13:07 +02:00
Robinson
c42c160652
Reverted change to handshake kryo (fix for dynamic class registration) 2022-07-29 05:00:41 +02:00
Robinson
70ebcdfdcf
Updated version 2022-07-29 04:52:52 +02:00
Robinson
b942c691fc
Changed aeron connections from MDC (similar to udp multicast), to single and unique connections. Fixed issues with duplicate handshake messages. Fixed issues when trying to connect too quickly. Sped up handshake a LOT when multiple clients are connecting. Dynamic class registrations (server-side only) broken 2022-07-29 04:52:11 +02:00
Robinson
3ef3d28d24
Removed coroutines from parts of the networking message processing. 2022-07-27 00:20:34 +02:00
Robinson
5c59a142ff
Updated version 2022-07-17 23:59:35 -04:00
Robinson
72b95b5cbe
Connection retries are SLIGHTLY slower than the aeron driver timeout. 2022-07-17 23:12:06 -04:00
Robinson
9073769e15
Better Logging during the connection handshake 2022-07-17 23:08:01 -04:00
Robinson
14aa087eda
Network dispatcher is now it's own thread pool, separate from the standard kotlin coroutine dispatcher (this was to prevent thread starvation) 2022-07-17 23:05:32 -04:00
Robinson
6ebd4afa90
Code cleanup. Aeron counters can now return null 2022-07-17 23:04:41 -04:00
Robinson
fb0e973cbf
Cleaned up comments surrounding the Aeron conductor thread factories 2022-07-17 23:03:53 -04:00
Robinson
f24b73f497
Exposed streamId, added better logging 2022-07-17 23:03:19 -04:00
Robinson
a552eb5fa7
Handshake now uses coroutines. Exposed Aeron init(), so it can be called externally to connect()/bind() methods 2022-07-17 23:02:52 -04:00
Robinson
d22bcb29ca
Formatting 2022-07-17 23:01:54 -04:00
Robinson
00b426fa18
Changed default socket options to 2mb 2022-07-16 10:25:37 -04:00
Robinson
440512aedc
AeronDriver now uses suspend instead of blocking 2022-07-16 10:25:15 -04:00
Robinson
c30e2cde4c
Better support for how we free resources on connection close 2022-07-15 08:15:40 -04:00
Robinson
9eb0bbee5f
Added suspend to initEndPoint 2022-07-15 00:59:17 -04:00
Robinson
165cfb9d7e
Cleaned up logging 2022-07-15 00:57:48 -04:00
Robinson
995f0b1795
Added toString 2022-07-15 00:57:32 -04:00
Robinson
21a6eceebd
Pulled out the aeron context into its own class 2022-07-13 22:57:40 -04:00