Commit Graph

820 Commits

Author SHA1 Message Date
Robinson
a0664f05b1
comment cleanup 2022-04-04 16:29:16 +02:00
Robinson
4e248a969f
Fixed naming consistancy with regards to MS and NANOS 2022-04-04 16:28:53 +02:00
Robinson
22e7acab46
Added a streaming protocol (currently in-memory only) for sending data that large, or generally exceeds aeron's max transmit payload size 2022-04-04 14:48:38 +02:00
Robinson
c2ea674989
Kotlin accessor 2022-04-04 14:34:30 +02:00
Robinson
0195ef3dc8
Exposed read/write buffers for kryo. Reading objects can return null 2022-04-04 14:33:48 +02:00
Robinson
a3bacf7b89
Kotlin replacement for math util 2022-04-04 14:33:12 +02:00
Robinson
4967faf212
Connection timeouts should use currentTimeMillis (not nanoTime!) 2022-04-02 13:24:26 +02:00
Robinson
b0dd85a8f9
Updated version 2022-03-29 00:40:18 +02:00
Robinson
dc28c3f9e8
Updated comments, guarantee that a return value is returned via send. Moved common method to object 2022-03-27 21:14:55 +02:00
Robinson
b0a29d6837
Code cleanup 2022-03-24 01:27:01 +01:00
Robinson
b597bcd497
Timeout is now in nanos, client connections time out differently now. 2022-03-24 01:26:44 +01:00
Robinson
5c854c4fab
Prevent multiple instances within the same JVM from trying to start aeron at the same time 2022-03-23 18:31:38 +01:00
Robinson
3cac148db6
Fixed sendBufferSize defaults. Explicitly not setting defaults if the context has been defined. 2022-03-21 13:41:46 +01:00
Robinson
a8dd406b40
Added ability to customize the dispatch for network events 2022-03-18 16:34:38 +01:00
Robinson
c836848f91
Comment cleanup 2022-03-15 20:45:00 +01:00
Robinson
4cd0a439a6
Fixed issues when sending serialized primatives for class registration 2022-03-15 15:11:53 +01:00
Robinson
5c6c52e8b9
more comments 2022-03-15 14:34:14 +01:00
Robinson
29d63a4268
Fixed server.onDisconnect() listener notification. 2022-03-15 14:33:58 +01:00
Robinson
04fa453ff3
Merge remote-tracking branch 'origin/master' 2022-03-15 12:53:53 +01:00
Robinson
9f350fa767
Added Aeron subscriberErrorHandler 2022-03-15 12:43:40 +01:00
Robinson
f741c8823c
Fixed IPC client handshake timeout 2022-03-15 11:44:39 +01:00
Robinson
871827d800
Fixed log typo 2022-03-15 10:32:06 +01:00
Robinson
67bf5e2b21
Fixed client handshake timeout 2022-03-15 10:27:21 +01:00
Robinson
1bdfe5edf3
Don't show macos performance hints more than once 2022-03-08 23:35:19 +01:00
Robinson
53a3ba0309
Use OS.TEMP_DIR instead of manually requesting it 2022-03-08 23:25:55 +01:00
Robinson
06be3bee28
Connection timeouts are now in seconds, instead of milliseconds 2022-03-08 08:41:06 +01:00
Robinson
2a14d09a2c
Updated to support the split of Utilities + OS project. 2022-03-05 22:50:17 +01:00
Robinson
975cd4fb01
updated version 2022-03-04 23:49:49 +01:00
Robinson
d8aab11fdb
Updated dependencies + version 2022-03-03 01:25:32 +01:00
Robinson
98f8ad794e
update dependencies 2022-03-03 01:23:07 +01:00
Robinson
7aaf06c7a5
Exception now properly thrown when a message cannot be sent. 2022-03-02 23:54:32 +01:00
Robinson
f68418c27c
Updated dependencies. 2021-10-01 11:34:45 +02:00
Robinson
1ea24f026a increment version 2021-08-23 01:08:30 -06:00
Robinson
c8f4ba2b01 Now using the storage project 2021-08-23 00:52:16 -06:00
Robinson
40fb0d8caf use ByteArray extension for hex instead 2021-08-23 00:48:39 -06:00
Robinson
a75ece2a39 Now use the storage project 2021-08-23 00:42:02 -06:00
Robinson
87338c6f24 Fixed typos 2021-08-23 00:39:13 -06:00
Robinson
d8107860e5 Fixed GCM, now use threadlocal for hashing 2021-08-23 00:38:55 -06:00
Robinson
e8a1a20a16 code cleanup 2021-08-20 08:50:51 -06:00
Robinson
07daeafa05 updated version, updated build dependencies 2021-08-19 00:15:32 -06:00
Robinson
7f16ebcac0 WIP storage sub-system 2021-08-19 00:13:47 -06:00
Robinson
6945a5cdbb Fixed issue when starting up after a forcefully terminated (previous) run. If the aeron CnC file is corrupted, delete and try again. 2021-08-18 13:37:23 -06:00
Robinson
5847ad14e3 Updated version 2021-07-26 20:42:55 +02:00
Robinson
6a7fe7b1dc Added support for filtering aeron driver exceptions, onError listeners are now notified if there is an aeron driver error. 2021-07-26 20:40:43 +02:00
Robinson
a4a3057f39 Added comments. Fixed onErrorGlobal (it is now a separate name, since the function signatures had issues), made it a unit function instead of method, so it can be passed around 2021-07-26 20:18:04 +02:00
Robinson
7908ef2593 Fixed comments, tweaked shutdown delay 2021-07-26 20:17:03 +02:00
Robinson
388e4bda60 connections are now created via a unit function instead of overriding the method. 2021-07-09 15:16:12 +02:00
Robinson
c725806727 Cleaned up heap vs stack access, fixed ping support, fixed coroutine errors during serialization 2021-07-08 14:33:24 +02:00
Robinson
632603c8c7 WIP RMI and message performance/ping testing 2021-07-07 21:32:36 +02:00
Robinson
33f3ca8ebc Supports the newest version of Aeron. Updated error log usage and notifications. Refactored RMI API (now RMI is accessible via '.rmi' calls). Updated unit tests. Added 'delete' to rmi methods (opposite of 'create'). 2021-07-07 00:04:47 +02:00
Robinson
b8caa3b7c9 WIP JPMS 2021-07-02 11:41:05 +02:00
Robinson
ad9729b0ff Added comments 2021-07-01 20:15:07 +02:00
Robinson
9d507f1937 Added more comments 2021-07-01 20:13:54 +02:00
Robinson
649148dc08 better error message 2021-07-01 09:30:09 +02:00
Robinson
e62f8eba2e Changed line endings to LF from CRLF 2021-06-28 15:27:35 +02:00
Robinson
b5f7c109b2 Fixed deprecated channel offer method 2021-06-27 20:51:58 +02:00
Robinson
ab2af26b48 Fixed JPMS object casting 2021-05-02 21:56:10 +02:00
Robinson
7c5a935105 Added server global RMI delete() 2021-05-01 00:19:21 +02:00
Robinson
5196fa2d66 updated version 2021-04-30 22:42:37 +02:00
Robinson
ef4b76d303 Changed scope for onMessage/disconnect/connect/etc callbacks from 'connection' -> 'this'. 2021-04-30 22:39:36 +02:00
Robinson
048b780e2f Added tests for restarting a client via client.close(). connection.close() with a onDisconnect listener also works. The instance that started the aeron instance, is the one that cleans it up 2021-04-30 21:18:57 +02:00
Robinson
ae53cc333e Moved class registration info to trace 2021-04-30 19:52:57 +02:00
Robinson
bfccc6f7a5 WIP removeObject 2021-04-30 18:22:25 +02:00
Robinson
beb99d42da Removed 'config.enableIpcForLoopback'. it's behavior was rolled into 'enableIpc' 2021-04-30 18:22:08 +02:00
Robinson
3a4f4ff4b3 removed unnecessary code 2021-04-30 18:21:26 +02:00
Robinson
4507cf9f87 Removed RemoteObject.close() 2021-04-30 18:21:01 +02:00
Robinson
0b95a4503d more info in comments 2021-04-30 18:19:46 +02:00
Robinson
dfaf583f4f Added extension function for "eventLoop" dispatch to coroutines 2021-04-30 18:15:54 +02:00
Robinson
cffca943f5 No longer using coroutines for adding publication/subscription and closing certain calsses. Better aeron error handling/reporting. Better aeron startup/shutdown. The pending connections cache no longer is ThreadSafe, and no longer is protected via RW lock. 2021-04-30 18:14:33 +02:00
Robinson
3f016672e6 WIP ping mangement 2021-04-30 14:58:49 +02:00
Robinson
a3c0d9881a Fixed unnecessary errors when calling "connection.close()" from inside an RMI method. 2021-04-30 14:26:04 +02:00
Robinson
e7d13520df Updated kryo comments 2021-04-29 19:45:56 +02:00
Robinson
ad06f768f8 Fixed state with driver already running during shutdown 2021-04-29 13:34:45 +02:00
Robinson
402c5a0ccd Fixed missing Inet4.toAddress conversion 2021-04-29 11:19:31 +02:00
Robinson
a3b5cbcc89 WIP ping functionality 2021-04-29 10:25:25 +02:00
Robinson
7a6926df93 Changed handshake write to be THREAD strategy instead of COROUTINE strategy 2021-04-29 10:04:53 +02:00
Robinson
47b63173ac Added cloneToNormal, which converts the coroutine strategy -> thread strategy 2021-04-29 10:04:02 +02:00
Robinson
1e077c2d98 Added ability to add to an endpoint configuration 2021-04-29 10:02:22 +02:00
Robinson
2828758fee Updated how to access storage (via a property now) 2021-04-29 10:01:07 +02:00
Robinson
f5ab178948 Suppressed errors when starting/stopping an endpoint VERY quickly (as usually done in unit tests). These warnings, while noramlly VERY important, can be safely ignored. 2021-04-29 09:59:42 +02:00
Robinson
841b9959ac Fixed issues when reconnecting. 'onDisconnect' is now guaranteed to be called before 'onConnect' 2021-04-29 02:10:34 +02:00
Robinson
6d70313687 aeron driver is now properly start during reconnect event 2021-04-29 01:48:29 +02:00
Robinson
52d5f4b189 proper inet address resolution 2021-04-29 01:48:04 +02:00
Robinson
8068b1a5df Added version info 2021-04-29 01:47:53 +02:00
Robinson
37fbfe6ac1 cleaned up stacktrace, code polish 2021-04-29 01:47:25 +02:00
Robinson
9c7fa4de8d MediaDriver + aeron states are now reset on close 2021-04-29 01:46:18 +02:00
Robinson
36318690a2 Cleaned up RMI response manager object construction 2021-04-28 11:19:55 +02:00
Robinson
e747b52373 WIP ping infrastructure 2021-04-28 11:19:13 +02:00
Robinson
32cd2822ee Changed session ID -> ID for RandomIdAllocator.kt 2021-04-28 11:18:34 +02:00
Robinson
31f559accc updated version 2021-04-27 14:20:51 +02:00
Robinson
ad1c2450b9 Fixed deprecated methods 2021-04-27 14:19:56 +02:00
Robinson
8d47b8b0b8 Fixed missing parameter 2021-04-27 14:17:19 +02:00
Robinson
c706969005 Fixed package name 2021-04-27 14:00:31 +02:00
Robinson
f53e705432 Fixed "fast" reconnect issues, where sometimes the media driver would be disconnected from the aeron driver 2021-04-27 13:57:47 +02:00
Robinson
9e0bc0da3e Fixed stackframe index 2021-04-27 13:31:54 +02:00
Robinson
ed76209925 Changed RMI object callback to only be "this", instead of passing the (internal) rmiID around. The RMI-ID is used for internal rmi messages, so that a request+response can be paired. 2021-04-27 13:31:18 +02:00
Robinson
09087b470a Stack frame cleanup removes ALL coroutines 2021-04-27 10:55:29 +02:00
Robinson
bb245e2f8e Code cleanup 2021-04-27 10:28:36 +02:00
Robinson
29b0ee8199 Fixed connection filter on connect 2021-04-27 10:28:18 +02:00
Robinson
ef598b0b72 WIP connection setup 2021-04-27 10:27:03 +02:00
Robinson
1765b4e367 Fixed server-client pair connection address info 2021-04-27 10:26:37 +02:00
Robinson
7d39f70450 Removed filter notify for IPC connections 2021-04-27 10:26:04 +02:00
Robinson
ea857da883 Better stack frame cleanup 2021-04-27 10:25:19 +02:00
Robinson
f3637219c3 Code polish/cleanup 2021-04-25 22:01:50 +02:00
Robinson
bcbdaf167f code/library cleanup 2021-04-24 00:09:11 +02:00
Robinson
dccc46d16b Updated to kotlin 2021-04-24 00:07:49 +02:00
Robinson
a229b85ee7 Rename .java to .kt 2021-04-24 00:07:48 +02:00
Robinson
5a7b6a159a Proper null checking 2021-04-24 00:07:26 +02:00
Robinson
3a9d63858f Converted to kotlin 2021-04-24 00:06:43 +02:00
Robinson
6f3615d211 Rename .java to .kt 2021-04-24 00:06:42 +02:00
Robinson
f60ec9d10f updated libraries, added updates 2021-04-09 20:24:45 +02:00
Robinson
bb77a17158 Removed unchecked cast suppression 2021-04-02 15:15:01 +02:00
Robinson
ec5dd55fee Moved unused code 2021-01-15 14:11:33 +01:00
Robinson
7ecb920ed0 Added type definitions and github links 2021-01-15 02:29:04 +01:00
Robinson
bda3082d41 Set field access scope to private 2021-01-15 02:21:21 +01:00
Robinson
47e202901a remove duplicated key strings, now uses common fields 2021-01-15 02:19:09 +01:00
nathan
96b4a78104 Updated to use the object pool. Release 5.0! 2020-10-06 02:08:12 +02:00
nathan
df1eab1509 Removed stack trace from internal logging on client handshake errors (they mean nothing, other than it's an exception and the message) 2020-09-29 21:43:39 +02:00
nathan
62dff03df9 Fixed issue with multi-client handshakes. Made error messages cleaner 2020-09-29 16:05:17 +02:00
nathan
f4401d425c Formatting 2020-09-29 15:26:40 +02:00
nathan
61260b02ce Updated comments 2020-09-29 14:38:06 +02:00
nathan
e5c35ea24e Async allocation and branch cleanup 2020-09-29 14:36:18 +02:00
nathan
cc9742fe14 Handshake validate is only done based on the one-time key (instead off session id) as the session ID was shared in some situations (the aeron session ID is not guarateed to be unique, unless it is manually set) 2020-09-28 16:30:38 +02:00
nathan
4dc58f2485 exposed secureRandom 2020-09-28 16:12:50 +02:00
nathan
1040cf14f5 Crypto code polish. wrapped crypto stuff in try/catch 2020-09-25 19:54:49 +02:00
nathan
2b2e185c4a Added settings store for server (in addition to the existing client one) 2020-09-25 19:54:27 +02:00
nathan
4fb5ec8517 Code polish. Added extra failure if registration data or public key data is null 2020-09-25 19:52:46 +02:00
nathan
21a84bb9d2 Fixed issue with getting private key (was getting public key instead) 2020-09-25 19:33:15 +02:00
nathan
dfec897f83 connectionTimeoutMS == 0, now (correctly) means wait forever 2020-09-25 18:32:18 +02:00
nathan
80c4ed6fcc Endpoint custom settingsStore can now be created (instead of just specifying a type) 2020-09-25 14:51:16 +02:00
nathan
816191a5b3 Marked methods final that should not be allowed to be overridden 2020-09-25 14:49:17 +02:00
nathan
1688a11000 Property Store only saves values if they have changed 2020-09-24 10:30:52 +02:00
nathan
09eb16f7b5 Added better connection check intervals and connection expiration timeouts 2020-09-23 22:32:29 +02:00
nathan
c869306ebe Added more log information when stopping the AeronMediaDriver. Code polish 2020-09-23 17:09:34 +02:00
nathan
93e406289c Fixed issues with connection handshake with the same computer, on multiple clients. 2020-09-23 17:08:25 +02:00
nathan
8605040819 Safer closing of the aeron client during close process 2020-09-23 16:59:58 +02:00
nathan
0b12f36507 improved close() messages/meanings in log 2020-09-23 15:52:45 +02:00
nathan
a4ccbd4b6a Cleaned up comments. Cleaned up forEachConnection() (it's only on server now) 2020-09-22 21:06:31 +02:00
nathan
0a3a08fb8f code polish 2020-09-22 21:05:50 +02:00
nathan
d7eef22091 Added sub/pub retries for both UDP and IPC 2020-09-22 21:01:06 +02:00
nathan
a82c5724f5 Added IPC addPub/Sub retries when aeron is restarted to quickly 2020-09-22 19:42:46 +02:00
nathan
af7e35fcf9 Changed client.send() to return true/false if the message was sent, added client.sendWithException() to throw an exception if the message was unable to be sent 2020-09-22 19:42:04 +02:00
nathan
c6e12e7872 Fixed IPC auto-fallback connection issues 2020-09-22 19:41:19 +02:00
nathan
56fc7e54f1 Fixed IPv6 connection issue 2020-09-22 19:40:56 +02:00
nathan
e035d86ee0 Added forEachConnection() method to run a function callback against each connection 2020-09-22 19:39:24 +02:00
nathan
ed60b68e77 Updated aeron (and other libraries) to fix IPv6 bug (removed class override) 2020-09-22 17:24:35 +02:00
nathan
64a36cb4f8 code polish to more straightforward logic 2020-09-22 17:05:49 +02:00
nathan
7d67cc86b7 Renaming RmiResponseManager for a more general use case (ResponseManager) 2020-09-22 17:05:25 +02:00
nathan
8f39813ccf Renamed RmiWaiter -> ResponseWaiter 2020-09-21 01:42:31 +02:00
nathan
04ca513cc3 suppressed experimental warnings 2020-09-19 22:07:38 +02:00
nathan
7ae3762603 Code polish 2020-09-19 22:07:09 +02:00
nathan
5017437a7a Updated networkutils, code polish 2020-09-19 22:06:54 +02:00
nathan
2429810fd7 Correct usage of no host name 2020-09-19 22:06:30 +02:00
nathan
dc30c18e97 Changed how internal storage operates (major performance improvement), added more types of storage. Set the default to PropertyStore (so settings are saved in a property file) 2020-09-19 19:41:39 +02:00
nathan
50783a7ae9 reworked how stopDriver operates 2020-09-19 19:38:55 +02:00
nathan
1703bc5449 Crypto now works with the raw public/private key byte arrays (instead of encoded bytearrays) 2020-09-19 01:32:32 +02:00
nathan
32d3023814 Serialization can now be extended 2020-09-18 01:12:53 +02:00
nathan
6548ad86e7 Added read(buffer: DirectBuffer), now returns writerBuffer on write 2020-09-18 01:12:25 +02:00
nathan
a8a6a517f7 Added setBuffer(DirectBuffer) method 2020-09-18 01:10:57 +02:00
nathan
bb2a7d8c41 Fixed error typo 2020-09-18 01:09:56 +02:00
nathan
bf457b6d69 Better error when client subscrition cannot connect. Added comments about publications 2020-09-18 01:09:18 +02:00
nathan
b9c0e6b29f Handshake should be using the endpoint store, not the config store 2020-09-16 15:52:25 +02:00
nathan
f9623a616c No longer require KryoExtra to register (normal Kryo is enough) 2020-09-16 14:28:49 +02:00
nathan
b08b7a13cd Simplified SettingsStore, it now uses it's own serializer 2020-09-15 21:17:47 +02:00
nathan
e08d5a3d2b No longer have a dependency on Storage serialization manager 2020-09-15 21:17:18 +02:00
nathan
8af039265b Fixed comment typo 2020-09-15 18:55:28 +02:00
nathan
f4e451d917 Cleaned up how we interact with the storage system. Simplified storage configuration/init 2020-09-15 17:08:21 +02:00
nathan
b18fccc867 If registration was previously ignored, then ignore it on subsequent initialization 2020-09-15 16:53:34 +02:00
nathan
3c4cfe805f Added support for starting/stopping the aeron media driver OUTSIDE of the network library. Better startup and cleanup of aeron connections to the media driver. Added an error handler that doesn't exit the JVM on error 2020-09-15 12:01:05 +02:00
nathan
fb3d2f3f98 Cleaned up logs 2020-09-14 22:12:54 +02:00
nathan
0c7202d00c Changed connection timeout from millis -> nanos 2020-09-14 20:41:01 +02:00
nathan
7f823bc2e7 Code polish 2020-09-14 20:35:17 +02:00
nathan
610f22fdec Connection management uses concurrent iteration, so now polling uses that correctly 2020-09-11 11:06:53 +02:00
nathan
93a892f439 Connections now can only trigger as expired from when they are created, not when they are last valid. Changed from images.isConnected -> images.count 2020-09-11 03:28:26 +02:00
nathan
e5bcd3cb1a Fixed out-of-order initialization of aeron dir 2020-09-11 02:02:46 +02:00
nathan
960d1e4660 Added back isRunning() 2020-09-11 01:27:46 +02:00
nathan
9ef9a066a0 Fixed issues with forcing unique media driver locations. Fixed issues where connections weren't getting removed. Added reversal of auto-IPC (in case the server doesn't have IPC) 2020-09-11 01:14:22 +02:00
nathan
60e8c5dc2e Fixed incorrect address used in log message 2020-09-10 14:39:08 +02:00
nathan
7db6a45437 Fixed thread visibility issues in the client handshake when reconnecting 2020-09-10 14:38:54 +02:00
nathan
c13fb205cf Fixed index out of bounds for pending RMI 2020-09-10 14:35:23 +02:00
nathan
49badc0836 KryoPool now will automatically grow if too many are read before they are returned 2020-09-10 02:19:11 +02:00
nathan
030387c378 Fixed issues when RMI timeout happens 2020-09-10 02:05:14 +02:00
nathan
c9f74c162d Code polish 2020-09-10 01:51:58 +02:00
nathan
c119556ae2 Cleaned up connection server info logs 2020-09-10 01:51:47 +02:00
nathan
9f7c921afd Added extra checks to see if a network family is available before using it to connect to a server 2020-09-10 00:35:01 +02:00
nathan
696c8f65cf Added extra checks to see if a network family is available before using it 2020-09-10 00:28:08 +02:00
nathan
b953f9bf85 Fixed issue with logging when IPv6 is wildcard 2020-09-10 00:21:55 +02:00
nathan
ac874198c2 WIP kryo-pool 2020-09-09 19:45:57 +02:00
nathan
594019020b Fixed issue,and clarified RMI.timeout = 0 (this will wait forever) 2020-09-09 15:23:20 +02:00
nathan
ca88b9941f Fixed compile warnings 2020-09-09 15:13:08 +02:00
nathan
ce5eb8cb77 Fixed issues with connection handshake. ALL kryo usage for a handshake is now ONLY on the primary coroutine 2020-09-09 12:24:04 +02:00
nathan
06a35ed027 Fixed memory leak wrt RMI waiters 2020-09-09 12:19:27 +02:00
nathan
db992d98a9 Removed thread specific code from coroutine 2020-09-09 11:03:47 +02:00
nathan
3e4e4abb49 Fixed issue when publication has intermittent subscribers (this can happen, and is OK). During send we just have to idle until one is connected again. This is different than a CLOSE event (which is not to be confused with NOT_CONNECTED) 2020-09-09 02:01:06 +02:00
nathan
b7da14834e Added support for IPv6. 2020-09-09 01:33:09 +02:00
nathan
679e002785 Connections can linger a bit before becoming expired (underlying aeron streams can quickly come and go) 2020-09-04 13:19:33 +02:00
nathan
ae168de114 Cleaned up logging 2020-09-04 13:18:59 +02:00
nathan
6dddc77fdc Internal stack traces should keep dorkbox network info 2020-09-04 10:19:53 +02:00
nathan
4e0ff43f5e Code polish 2020-09-04 10:19:29 +02:00
nathan
f4b8ef9c5d cleaned up logging 2020-09-03 22:41:50 +02:00