Commit Graph

1042 Commits

Author SHA1 Message Date
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
Robinson
7e60f6b64b
Code formatting 2022-07-13 22:54:22 -04:00
Robinson
e1db5c42a5
Removed DYNAMIC aeron control mode 2022-07-13 22:53:43 -04:00
Robinson
c8d9573bb9
code format 2022-07-13 22:53:25 -04:00
Robinson
6a466ae88a
Fixed errors with allocator memory leaks, added validation when server closes 2022-07-13 22:53:09 -04:00
Robinson
1d35827d16
added support for allocator size checks 2022-07-13 22:49:25 -04:00
Robinson
5b8268b2ea
compiler warnings 2022-07-12 22:21:59 -04:00
Robinson
3a43dea3ad
Added driver backlock information, cleaned how pub/sub are added to areon 2022-07-12 11:02:11 -04:00
Robinson
3893a9be5a
Added starting the aeron driver if necessary when clients are reconnecting 2022-07-12 10:56:47 -04:00
Robinson
ceb5fe208a
Inverted close check 2022-07-03 13:13:38 +02:00
Robinson
aea56477fa
Updated version 2022-06-29 21:56:35 +02:00
Robinson
55e777860b
Fixed streamed data chunk mis-alignment. 2022-06-29 21:56:12 +02:00
Robinson
1a6ac7048b
Random stream ID is unique per JVM now 2022-06-29 20:08:35 +02:00
Robinson
fafcb30e1a
Updated version 2022-06-29 19:38:29 +02:00
Robinson
09f367963f
Fixed race condition when we reassemble streaming/chunked data. 2022-06-29 19:38:10 +02:00
Robinson
683abcbe59
Updated version 2022-06-29 17:30:28 +02:00
Robinson
58eb8c2300
suspending cache addition for RMI waiters 2022-06-29 16:57:31 +02:00
Robinson
61aa509a17
Stream and Session ID allocation cannot be re-used so quickly, as ALL other IDs must first be used, before a previously used ID is reused. 2022-06-29 16:37:47 +02:00
Robinson
c6c3c4cc2e
Updated version 2022-06-27 15:32:00 +02:00
Robinson
f228bd1de3
Changed how handshake connection errors are managed 2022-06-27 15:31:40 +02:00
Robinson
da4dc4d9c9
Better handshake control during generic exceptions 2022-06-27 01:45:10 +02:00
Robinson
16119bdf7d
updated version 2022-06-27 01:43:50 +02:00
Robinson
3e092ffd54
Formatting and logging cleanup 2022-06-27 01:43:29 +02:00
Robinson
4a0357d92b
Added internal closeBlocking 2022-06-27 00:10:48 +02:00
Robinson
d734c2555a
Formatting 2022-06-26 23:49:56 +02:00
Robinson
cccb3b65ae
Added this qualifier 2022-06-26 23:49:49 +02:00
Robinson
20c528b563
Updated library + version 2022-06-24 23:04:37 +02:00
Robinson
0550661067
Updated version 2022-06-24 14:42:24 +02:00
Robinson
cd65d16e14
Added support for a stacktrace that is empty 2022-06-24 13:13:28 +02:00
Robinson
0df4eb872d
Added support for getting specific aeron driver information 2022-06-24 13:12:18 +02:00
Robinson
3ede82e43f
UDP MediaDriver does not recreate driver connections during handshake. Re-organized how aeron driver connections are established 2022-06-24 13:11:39 +02:00
Robinson
cb1cd0cec9
Updated version 2022-06-16 18:05:15 +02:00
Robinson
20fcabaf8a
Fixed issue with RMI from a server -> client, where the RMI proxy objects were getting overridden by different connections because the RMI object cache was shared between all connections in the server. 2022-06-16 18:04:52 +02:00
Robinson
b8acc6b2c0
Now fixed streaming message data when finished 2022-06-16 00:49:13 +02:00
Robinson
f0f7a5eba1
Updated version 2022-06-15 23:53:45 +02:00
Robinson
52ee92c025
Replaced SuspendWaiter with mutex 2022-06-15 23:53:26 +02:00
Robinson
9c754c9525
Updated version 2022-06-14 22:23:01 +02:00
Robinson
f1ffbb48f0
Added more connection exceptions for edge cases when a connection attempt to the server can fail. 2022-06-14 22:22:38 +02:00
Robinson
81e3f204df
Updated version 2022-06-14 19:25:16 +02:00
Robinson
5dd9f50a0c
Fixed client connect issue when trying to shutdown 2022-06-14 19:24:48 +02:00
Robinson
0d01b8d303
Updated version and dependencies 2022-06-14 12:22:53 +02:00
Robinson
bf3d7b2be8
Updated version 2022-06-11 23:55:24 +02:00
Robinson
c62296edec
Added extra constructor signature for logger name 2022-06-11 23:53:39 +02:00
Robinson
b07bf150f9
Added extra stacktrace checks 2022-06-11 23:53:08 +02:00
Robinson
5b2b43b73e
removed ping timeout 2022-06-11 23:52:33 +02:00
Robinson
3dd333269e
Response waiter is now volatile, as it's data is used by DIFFERENT coroutines. 2022-06-11 22:36:23 +02:00
Robinson
542b678531
Removed unnecessary comments 2022-06-11 22:35:45 +02:00
Robinson
95a3b4eb69
Added class simpleName to log messages. Added more comments 2022-06-11 22:35:00 +02:00
Robinson
29dec146aa
Changed streaming payload size (we let aeron manage fragmentation as much as possible, as they do it more efficiently than we can 2022-06-11 22:34:16 +02:00
Robinson
7394b6abe2
Cleaned up toString 2022-06-11 22:32:46 +02:00
Robinson
96a9e2c9bb
Fixed comment typo 2022-06-11 17:29:33 +02:00
Robinson
b43b3840ab
update comment 2022-06-11 17:04:21 +02:00
Robinson
456faf0575
Updated version 2022-06-08 00:28:02 +02:00
Robinson
38ec9e882b
Removed experimental coroutine 2022-06-08 00:27:30 +02:00