Commit Graph

1227 Commits

Author SHA1 Message Date
Robinson
1ded010b89
code cleanup 2023-08-09 22:12:29 -06:00
Robinson
19b36bde9f
driver.start/close are now reentrant 2023-08-09 22:12:18 -06:00
Robinson
90d218637c
Cleaned up how new aeron drivers are created 2023-08-09 22:11:57 -06:00
Robinson
96cd987238
config.id -> mediaDriverId() 2023-08-09 22:09:44 -06:00
Robinson
4d73d4802c
cleaned up imports 2023-08-09 22:06:22 -06:00
Robinson
e2b5f522e0
AddError is no longer suspending 2023-08-09 21:47:29 -06:00
Robinson
ce311fea86
Added more support for criticalDriverErrors 2023-08-09 21:47:06 -06:00
Robinson
d9bac748f8
added endpoint to inUse() 2023-08-09 21:45:54 -06:00
Robinson
6e76160c83
changed config.id -> mediaDriverId() 2023-08-09 21:45:28 -06:00
Robinson
836c8abce6
Cleaned up/tweaked endpoint.close() 2023-08-09 21:35:40 -06:00
Robinson
3852677feb
connect event dispatch check only redispatches when it's ON the EDT, but NOT in the correct one 2023-08-09 21:31:00 -06:00
Robinson
e9f7172b62
code polish for event poller 2023-08-09 21:30:17 -06:00
Robinson
4c3135028a
driver.close method cleanup 2023-08-09 21:29:28 -06:00
Robinson
a7533d2c91
closed check is now volatile 2023-08-09 21:28:03 -06:00
Robinson
db385d0c1a
inUse check now uses the endpoint for extra checks 2023-08-09 21:23:52 -06:00
Robinson
28d170c25c
Added support for detecting critical driver errors 2023-08-09 21:18:47 -06:00
Robinson
3dcd2af495
Moved aeron.send() logic to the driver 2023-08-09 21:17:10 -06:00
Robinson
9fcbabd061
cleaned up logging 2023-08-09 21:10:41 -06:00
Robinson
eaafc0f0c4
reset the endpoint config (not the initial config) when resetting. 2023-08-09 16:37:09 -06:00
Robinson
9a30c031ef
Added extra checks when adding pub/sub for when there is an ERRORED state 2023-08-07 22:30:53 -06:00
Robinson
296c600245
Added more detailed info when reconnecing 2023-08-07 19:56:38 -06:00
Robinson
8aa919b28a
simplified connect redispatch logic 2023-08-07 19:56:14 -06:00
Robinson
59bc934dc1
moved checks to earlier in the connect process 2023-08-07 19:55:51 -06:00
Robinson
4d2de085a5
Added data success checks when streaming messages.
Expanded exceptions when thrown
2023-08-07 19:54:49 -06:00
Robinson
6dc7e6bc41
If we close the event poller WHILE ON the event poller, re-dispatch the close event to the CLOSE dispatch 2023-08-07 19:53:59 -06:00
Robinson
08d58fd6fd
Fixed issues with recursive aeron directory name 2023-08-07 00:09:14 -06:00
Robinson
ae08ff2c2f
Updated classutils 2023-08-05 13:24:21 -06:00
Robinson
4a80c2c0b8
Reconnect now can have a specified timeout 2023-08-04 23:32:00 -06:00
Robinson
16c8386ae1
Updated API for collections 2023-08-04 23:31:44 -06:00
Robinson
e5786550a6
Updated version 2023-07-24 02:00:03 +02:00
Robinson
3016618b1c
Added support for also changing the aeron driver idle strategies 2023-07-24 01:42:27 +02:00
Robinson
57480735c3
By default, create dev/shm for macos (ram drive). Windows still uses the disk. 2023-07-23 23:36:36 +02:00
Robinson
15c7fb2a3d
Code cleanup 2023-07-23 23:02:29 +02:00
Robinson
ccf7a37d3c
Commented out unnecessary code 2023-07-23 16:05:07 +02:00
Robinson
fa04185234
Fixed equals 2023-07-23 15:49:25 +02:00
Robinson
a140c844db
Code cleanup 2023-07-23 13:41:29 +02:00
Robinson
7f6550f1c1
Now use defaults for idle strategies 2023-07-23 13:40:42 +02:00
Robinson
6754e35c61
Code cleanup 2023-07-23 13:40:16 +02:00
Robinson
06b5f30948
Only check if a connection is closed now. We now wait for pub+sub to be "connected" before continuing to build the connection object (so it will always be in the connected state) 2023-07-23 13:39:27 +02:00
Robinson
ad3fdfc64d
Updated text names for idle strategies 2023-07-23 13:30:38 +02:00
Robinson
daec762e30
More specific errors when connection is closed during poll event 2023-07-23 01:20:16 +02:00
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