Commit Graph

1186 Commits

Author SHA1 Message Date
Robinson
949a863aca
Fixed instance assignment 2023-07-23 01:17:37 +02:00
Robinson
a087dfa9bd
Faster startup when aeron is already running and we force-allow a driver to be running on startup (usually we don't want this) 2023-07-23 01:17:09 +02:00
Robinson
936a5e2d67
Added ability for subscription to wait for a publication to connect 2023-07-23 01:16:23 +02:00
Robinson
2d8956c78c
Client waits for server publication to connect before continuing. 2023-07-22 14:18:38 +02:00
Robinson
781d530294
added comments 2023-07-21 22:46:41 +02:00
Robinson
ed2ddb239d
Tweaked aeron idle strategies 2023-07-21 22:46:30 +02:00
Robinson
ee558e666d
Added additional idle strategies 2023-07-21 21:16:49 +02:00
Robinson
ed89b634a2
Added comments 2023-07-21 21:16:37 +02:00
Robinson
2620a06409
Cleaned up how kryo's are used
Changed idleStrategy
StreamingManager no longer copies bytes (it just uses a pooled kryo instance)
2023-07-21 00:19:31 +02:00
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