Commit Graph

1227 Commits

Author SHA1 Message Date
Robinson
7ed474111a
Code cleanup 2023-07-20 22:31:27 +02:00
Robinson
916ddb857f
fixed comment typo 2023-07-20 20:41:23 +02:00
Robinson
2c0680b513
Simplified setting aeron initial window length 2023-07-20 20:41:13 +02:00
Robinson
0e37689c2c
better logs when retrying the connect sequence 2023-07-20 20:40:43 +02:00
Robinson
7bd653db2a
Better IPC checking 2023-07-20 20:40:17 +02:00
Robinson
e2a4887a19
Changed order of cleanup when done with handshake 2023-07-20 20:39:58 +02:00
Robinson
0e3cc803b2
More detailed logging when in debug mode 2023-07-20 20:39:26 +02:00
Robinson
80d77f2f51
Better lock-step and checks when closing an endpoint 2023-07-20 20:39:12 +02:00
Robinson
d787045149
Updated version 2023-07-16 14:58:01 +02:00
Robinson
94048cfe8f
Added file transport to streaming manager 2023-07-16 14:57:04 +02:00
Robinson
bb026f377b
WIP compression/crypto 2023-07-15 13:12:59 +02:00
Robinson
c4eda86bfe
Optimized how we send data (we use our own stream/block data structures for fragmentation/reassembly. 2023-07-15 13:11:50 +02:00
Robinson
93a7c9008d
Code cleanup and fixed issues when sending non-perfect multiples of our data limit. 2023-07-15 13:07:17 +02:00
Robinson
85d716e572
Changed which data structure is evaluated when saving data 2023-07-15 13:05:57 +02:00
Robinson
5583948961
Added AeronWriter size initialization 2023-07-15 13:05:19 +02:00
Robinson
2f8c78ddee
Added ipcMTU to aeron config (it will be the same as the network MTU). This must be the same value, since our internal read/write serialization buffers) 2023-07-14 13:39:08 +02:00
Robinson
215ed20056
Changed wording of chunk -> block 2023-07-14 13:33:36 +02:00
Robinson
290c5bd768
Cleaned up comments 2023-07-12 14:20:04 +02:00
Robinson
09748326c9
Cleaned up crypto management, removed dead code 2023-07-12 14:19:54 +02:00
Robinson
6bf870bd7b
Split kryo TYPES into read/write types, so usage is very clear. Now use a kryo pool for concurrent serialization 2023-07-12 14:08:46 +02:00
Robinson
d3c3bf50d6
Changed applicationId -> appId 2023-07-12 14:04:32 +02:00
Robinson
2f7a365f75
Moved errorCodeName into the driver 2023-07-11 11:50:48 +02:00
Robinson
f1ebd076bf
Removed dependency on aeron-aal (which was only for samples) 2023-07-11 09:48:26 +02:00
Robinson
87b65d061a
Now supports JPMS (kotlin-only 9+ projects must use a workaround) 2023-07-11 00:27:39 +02:00
Robinson
c4ddfe8675
Fixed unnecessary non-null assertions 2023-07-11 00:23:08 +02:00
Robinson
990652288e
Code cleanup 2023-07-11 00:12:09 +02:00
Robinson
4797b7e816
Added port1/2 settings to server + client.
Fixed relevant unit tests
2023-07-11 00:11:58 +02:00
Robinson
ebad4d234b
Fixed driver liveliness checks 2023-07-11 00:02:40 +02:00
Robinson
cba66a6959
Removed SigInt catch. It should be managed by the application, not the library. 2023-07-05 12:53:21 +02:00
Robinson
897db748e7
Removed dead code 2023-07-05 12:52:36 +02:00
Robinson
ce6ffec197
When an endpoint restarts too quickly, wait a more appropriate timeout 2023-07-05 12:52:23 +02:00
Robinson
a8903b2382
Cleaned up close API 2023-07-04 01:00:01 +02:00
Robinson
74066060d7
Fixed close ambiguity 2023-07-03 22:02:02 +02:00
Robinson
739ad30987
Exposed direct commands to delete the aeron directory 2023-07-03 21:44:09 +02:00
Robinson
f4c01d6f94
Expose the endpoint config. 2023-07-03 21:41:06 +02:00
Robinson
b4a57c9525
ListenerManager now uses volatile arrays instead of atomic (still follows single-writer-principle) 2023-07-03 21:40:07 +02:00
Robinson
2b4ba1347e
Connection handshake timeouts are more standardized to nanoseconds 2023-07-03 19:18:34 +02:00
Robinson
23d4ea4609
Cleaned up deleting log files on a bad handshake 2023-07-03 14:59:11 +02:00
Robinson
effc88feb7
Registered close to SigInt 2023-07-03 14:58:46 +02:00
Robinson
a4e2e714c4
made event access more east to understand 2023-07-03 14:58:29 +02:00
Robinson
7b7910d078
Better try/catch around handshake logic 2023-07-03 11:57:26 +02:00
Robinson
7a39044df0
Fixed memory leak when shutting down 2023-07-03 11:23:42 +02:00
Robinson
ee296394de
Fixed issues when deserializing messages during the HANDSHAKE, where we would run out of memory (instantly delete the image file representing the bad connection). 2023-07-03 10:46:18 +02:00
Robinson
2a52c2b4d5
Cleaned up how pub/priv key are initialized/used 2023-07-03 01:47:18 +02:00
Robinson
eeeeed81aa
Better double check when starting up to see if aeron is already running 2023-07-03 00:54:44 +02:00
Robinson
edada596f0
public/private keys + salt use kotlin val get/set now (cleaner API) 2023-07-02 22:00:11 +02:00
Robinson
6220ec617b
Better toString() methods for the unique ID of the client/server 2023-07-02 21:59:45 +02:00
Robinson
e403e1d6e1
Now use the client public-key as the client ID for the connection (to determine/know exactly which connection belongs to what client) 2023-07-02 21:56:46 +02:00
Robinson
87e790dcaf
Added support for publication cache during handshake. 2023-07-01 22:51:53 +02:00
Robinson
0848badc69
IP address/bind check ignored for IPC connections 2023-07-01 22:51:20 +02:00
Robinson
0e13da73c9
fixed typo 2023-07-01 22:50:22 +02:00
Robinson
b9fc246af1
Code cleanup 2023-07-01 13:44:02 +02:00
Robinson
eb0bde3354
Removed unnecessary buffer flush on error 2023-07-01 13:31:50 +02:00
Robinson
c35b2c3115
Fixed merge conflicts 2023-07-01 13:26:06 +02:00
Robinson
598e06e9d3
Fixed merge conflicts 2023-07-01 13:20:14 +02:00
Robinson
141a39544a
part 2, moved IPC/UDP handshake ids to config 2023-07-01 11:43:55 +02:00
Robinson
6020f06661
code cleanup 2023-07-01 11:43:20 +02:00
Robinson
a42c9ad940
Better log message 2023-07-01 11:42:54 +02:00
Robinson
cce3957089
Moved IPC/UDP handshake stream ID to config 2023-07-01 11:41:47 +02:00
Robinson
55737c41c3
Code cleanup 2023-07-01 11:41:10 +02:00
Robinson
ace2ac453b
When adding a pub/sub, guarantee that it is active and bound. 2023-07-01 11:37:09 +02:00
Robinson
a41a6c6d62
Added comments 2023-07-01 11:28:34 +02:00
Robinson
12977bb046
wait longer if the system is trying to start too quickly 2023-07-01 11:28:22 +02:00
Robinson
6202015b08
Cleaned up newException stack traces 2023-06-30 00:06:53 +02:00
Robinson
9f3c265ee1
Flush the read buffer when kryo encounters an error reading data 2023-06-30 00:04:29 +02:00
Robinson
2a1c303c6a
Moved localAddressString logic the Driver 2023-06-29 23:51:56 +02:00
Robinson
0cc8828ce8
Better log message for what port is used on the server 2023-06-29 21:50:49 +02:00
Robinson
7cbfa679b5
More expressive error logs when a pub/sub cannot be created 2023-06-29 21:50:28 +02:00
Robinson
daa0d14e2b
Endpoint RuntimeShutdown hook is in a try/catch now 2023-06-29 20:57:01 +02:00
Robinson
ae67bb4899
Client/Server isRunning checks will COPY the config instead, so that we don't "hack" the configs to make sure they continue working as expected 2023-06-29 20:56:43 +02:00
Robinson
c0e8cbf28f
Added retry limit of 0 to try forever 2023-06-29 20:16:42 +02:00
Robinson
7c0283b775
Removed dead code 2023-06-29 20:01:38 +02:00
Robinson
95372a0e4c
updated module-info 2023-06-29 19:58:31 +02:00
Robinson
835ae99e9c
Code cleanup 2023-06-29 19:53:31 +02:00
Robinson
7281cdb9f4
Added lingerNS to ensureStopped 2023-06-29 19:28:08 +02:00
Robinson
c66f977963
Endpoints will auto-close during JVM shutdown 2023-06-29 19:27:25 +02:00
Robinson
06f26187ce
code cleanup 2023-06-29 19:26:45 +02:00
Robinson
dec10ab4bc
OnError callbacks are now suspending 2023-06-29 12:12:29 +02:00
Robinson
15f93cf1b0
AeronOutput is not-final 2023-06-29 12:12:14 +02:00
Robinson
5ec2abfc9b
Added better support for streaming large amounts of data (uses temp files if it's too much data) 2023-06-29 12:11:17 +02:00
Robinson
53939470b9
Added the required application ID. Added ability to override client-listen-port, permit allowing to run shared instances of the aeron driver across processes. 2023-06-29 01:32:04 +02:00
Robinson
510fc85f2c
Removed streaming kryo and temp kryo 2023-06-28 20:31:08 +02:00
Robinson
05ba2c8132
Fixed issues with wrong subscription listening for DONE_ACK 2023-06-28 15:12:40 +02:00
Robinson
48cece9202
Code cleanup 2023-06-28 15:12:10 +02:00
Robinson
bd289c7ce6
Converted to use exclusive publications, cleaned up wait-to-connect logic, removed deletePub/Sub (that's not recommended for production) 2023-06-28 15:11:11 +02:00
Robinson
cdb90b1809
Refactored serialization (it is more explicit now) 2023-06-27 01:25:56 +02:00
Robinson
55604c679c
Moved port from configuration file to API call for connect() and bind() 2023-06-26 19:28:55 +02:00
Robinson
a02c737c6c
Updated inet serializer location 2023-06-26 02:11:43 +02:00
Robinson
58c8d87da4
Initial implementation of JMPS bypass for the TransportPoller 2023-06-26 02:11:10 +02:00
Robinson
43c4b6c742
Fixed issues when shutting down before starting up 2023-06-26 00:37:33 +02:00
Robinson
2eeed92c97
updated logging 2023-06-25 17:27:12 +02:00
Robinson
231ab230ba
Updated disconnect api 2023-06-25 17:26:05 +02:00
Robinson
d63b8a6514
changed logger 2023-06-25 17:25:13 +02:00
Robinson
3897becef1
Addec copy(), changed the defaultMessageCoroutineScope to be 'Default' instead of IO. The defaultNetworkEventPoll is now in the event poller 2023-06-25 17:25:05 +02:00
Robinson
078cf36e22
Permit external usage of closing everything when shutting down 2023-06-25 17:23:44 +02:00
Robinson
3a07b6bf86
Reference of existing list is kept before dispatching into new threads 2023-06-25 17:22:59 +02:00
Robinson
9a3e49bca4
Code cleanup 2023-06-25 17:21:25 +02:00
Robinson
3a9e9fea71
fixed issues with event poller lifecycle 2023-06-25 17:20:55 +02:00
Robinson
88f082097a
code cleanup 2023-06-25 12:21:21 +02:00
Robinson
4b511b2615
Cleaned up comments and logging 2023-06-25 12:13:52 +02:00
Robinson
119870bdc8
Added more comments, events now run on specific threads 2023-06-25 12:12:53 +02:00
Robinson
8e30883ebc
Code polish/cleanup 2023-06-25 12:05:41 +02:00
Robinson
c9e71c56b1
Code polish 2023-06-25 12:02:04 +02:00
Robinson
e02ef7d7e8
Handshake cleanup 2023-06-25 12:01:37 +02:00
Robinson
03974514c5
Code cleanup, added UUID support 2023-06-25 11:52:19 +02:00
Robinson
ff5d1ed430
Added logging 2023-06-25 11:52:01 +02:00
Robinson
80b4f2af48
Code cleanup 2023-06-24 12:23:07 +02:00
Robinson
3c02c28162
Added uuid, cleaned up logic 2023-06-24 12:21:57 +02:00
Robinson
f95b1f63ca
Updated copyright/comments 2023-06-24 02:06:17 +02:00
Robinson
422e983e85
Added comments 2023-06-24 02:06:03 +02:00
Robinson
115e63edf5
Added more exception types 2023-06-22 11:47:02 +02:00
Robinson
76c644b573
Added client UUID support 2023-06-22 11:46:30 +02:00
Robinson
f991182bbd
If a connection is manually closed, don't wait for aeron timeouts 2023-06-22 11:43:50 +02:00
Robinson
27696a0929
Added reserved class serialization registrations 2023-06-20 16:28:12 +02:00
Robinson
87a6fefe69
Code/logging cleanup 2023-06-19 14:03:18 +02:00
Robinson
1556cbe10d
Added method to easily reverse pub/sub info and added log output 2023-06-19 13:54:56 +02:00
Robinson
3d37a2267f
added more exception types 2023-06-19 13:53:28 +02:00
Robinson
da0db98658
more specific parameter names, better toString() info 2023-06-19 12:19:04 +02:00
Robinson
21e2504719
Added more exception types 2023-06-19 12:17:49 +02:00
Robinson
bd7bb78696
Cleaned up logging 2023-06-18 18:19:23 +02:00
Robinson
ddb41762cf
Response manager uses its own coroutineScope now 2023-06-18 18:18:22 +02:00
Robinson
49b9ee98a2
ResponseManager now uses it's own EventDispatcher for events (to prevent potential deadlocks during RMI operations) 2023-06-17 12:16:50 +02:00
Robinson
7e748bd7dc
Reference copies of atomic lists when calling them (in case the list is cleared in a reentrant call 2023-06-16 14:48:19 +02:00
Robinson
cf4b61f4de
logic update 2023-06-16 14:19:58 +02:00
Robinson
eeed70b2c3
Updated error logs 2023-06-16 14:19:46 +02:00
Robinson
9e3a5b4d16
Updated secure random 2023-06-16 14:18:42 +02:00
Robinson
539722f520
Added support for maxCapacity when calling setBuffer 2023-06-16 11:16:00 +02:00
Robinson
327ac46f42
Cleaned up API 2023-06-14 23:35:03 +02:00
Robinson
4f74b56a13
Cleaned up api and logging 2023-06-14 23:29:15 +02:00
Robinson
4f33369663
Fixed issues and cleaned up aeron media driver connection factories 2023-06-14 23:28:34 +02:00
Robinson
d268dde7a3
Removed old driver connection logic 2023-06-14 21:30:43 +02:00
Robinson
11247aa2e4
Fixed api usage 2023-06-13 15:48:59 +02:00
Robinson
76c2ab782a
Fixed invalid startup state for pollDispatcher 2023-06-13 15:48:49 +02:00
Robinson
ad538645c7
updated function parameters and comments 2023-06-07 11:59:08 +02:00
Robinson
7bde7ac3df
added comments 2023-06-07 11:49:01 +02:00
Robinson
25db1740f8
Added session+stream sub/pub IDs, added comments, fixed issues when exceptions were thrown 2023-06-07 11:48:45 +02:00
Robinson
9047ac386b
Cleaned comments 2023-06-07 11:46:02 +02:00
Robinson
ebc7b1cd76
More clear logging/checking when closing the poller 2023-06-07 11:44:52 +02:00
Robinson
6bbab72ca7
Uses SuspendingPool instead of channels (better tested library) for fewer bugs/issues 2023-06-06 00:15:41 +02:00
Robinson
7a99ea67b3
revert ping object changes 2023-06-06 00:11:13 +02:00
Robinson
c6b02869d2
update copyright 2023-06-06 00:10:47 +02:00
Robinson
dfe9491272
Fixed issues where some PING responses would not be returned (as a result of memory visibility/permanence) 2023-05-28 22:46:25 +02:00
Robinson
698a669d60
Removed dead code, added pingTimeout 2023-05-28 19:19:37 +02:00
Robinson
0aaff26e69
Moved dispatch requirements 2023-05-28 18:44:53 +02:00
Robinson
132a1d8363
Removed IPC sessionID. It's one IPC connection per Aeron Driver. 2023-05-28 18:43:59 +02:00
Robinson
b42b456daf
Added initialize state for endpoints 2023-05-28 17:06:01 +02:00
Robinson
d8455e1faf
added comments, code cleanup 2023-05-28 17:04:30 +02:00
Robinson
cf875832d9
code cleanup 2023-05-28 17:03:54 +02:00
Robinson
167de54114
Flipped order of closing (it's the same order as init) 2023-05-28 17:03:30 +02:00
Robinson
e1997eb8cc
getting the aeron log location is now static public. 2023-05-28 17:03:05 +02:00
Robinson
4df378e8d4
Added UUID to endpoint for ID 2023-05-28 17:02:15 +02:00
Robinson
b4d4d7e049
Handshaker specific params moved 2023-05-28 16:59:58 +02:00
Robinson
edc7e586f1
Extracted Kryo.readBytes() to mark private (what should be private) 2023-05-28 16:59:13 +02:00
Robinson
a17dbac0fc
Added trace logging info to the serializer 2023-05-28 16:58:23 +02:00
Robinson
48ef6d543d
Code cleanup 2023-05-28 16:57:06 +02:00
Robinson
23572ea9fd
Added debug event logs to the event dispatcher 2023-05-28 16:56:05 +02:00
Robinson
c119981859
Code cleanup 2023-05-28 16:54:37 +02:00
Robinson
bb952f99df
Migrated handshaker stuff out of endpoint, and into the "handshaker" 2023-05-28 16:53:56 +02:00
Robinson
e724048b4a
cleand imports 2023-05-28 16:49:57 +02:00
Robinson
5d56f37a0b
removed HANDSHAKE_SESSION_ID (these have to be UNIQUE, so this doesn't make sense to use) 2023-05-28 16:49:50 +02:00
Robinson
2dd7aa8bc0
Cleaned up adding/removing pub/sub 2023-05-28 16:49:10 +02:00
Robinson
080e27d6ad
added areAllInstancesClosed() 2023-05-28 16:43:01 +02:00
Robinson
71764755ac
Fixed issues with error reporting when the connection is created. 2023-05-28 16:24:16 +02:00
Robinson
8b7eadc01e
Cleaned up logging for the Event poller 2023-05-26 15:46:11 +02:00
Robinson
4c5cca9b84
cleaned logging 2023-05-26 15:43:18 +02:00
Robinson
5d2e6ac551
Cleaned up server handshakes 2023-05-26 15:41:21 +02:00
Robinson
784d0ecf02
Cleaned up random ID allocator 2023-05-26 15:34:26 +02:00
Robinson
6200c5e887
Changed close to suspending 2023-05-24 11:55:07 +02:00
Robinson
5cf41580fd
Cleaned up logging 2023-05-24 09:28:55 +02:00
Robinson
92d192bd1b
removed logger from EventPoller api 2023-05-24 09:21:39 +02:00
Robinson
f40d36c488
Fixed issues with unique aeron directory naming 2023-05-24 09:15:55 +02:00
Robinson
c2a5befb09
Added the ability to close the listenerManager 2023-05-24 00:15:04 +02:00
Robinson
2d87e003dc
Fixed issues surrounding the session/stream ID rewrite and connection handshake/state management 2023-05-08 09:58:24 +02:00
Robinson
95d7006c74
Cleaned up stack-trace cleanup method invocation 2023-04-29 00:46:16 +02:00
Robinson
e24dbcd0b1
cleaned IPC to mirror UDP connections 2023-04-21 23:56:13 +02:00
Robinson
17e711039e
EventDispatcher is static 2023-04-20 18:18:49 +02:00
Robinson
c2d1b85b87
Updated AeronDriver/Context API 2023-04-20 18:17:51 +02:00
Robinson
d2550a98e2
updated close signature 2023-04-20 17:58:15 +02:00
Robinson
e84be7f96a
Cleanup client reconnect logic 2023-04-20 17:57:14 +02:00
Robinson
b2f2077550
Fixed client connection logic (some logic is server always) 2023-04-20 17:55:58 +02:00
Robinson
da61b70321
EventDispatcher is static 2023-04-20 17:55:17 +02:00
Robinson
a403292ba8
Updated poller 2023-04-20 17:53:02 +02:00
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