Conversation
- signal event - signal entry = publish License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
|
@nonsense I implemented the WebSockets as we discussed. Tomorrow, I will start updating the client in order to support the new sync server. Plus, I still need to add tests here. I wanted to ask you to take a quick look to validate the architecture. A small recap of what I did so far was:
One of my concerns was spinning up goroutines for each request but, as I mentioned, most of them are short-lived. And for the long-lived ones, it's unlikely that a test is calling Barriers and Subscribes at the same time. |
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
|
I now noticed testground/pkg/runners and testground/pkg/sidecar both depend on sdk-go for the sync client. The usage of the watch client is making my life complicated as I'm not sure what's the use for it (or even the need). I plan on moving the GC collection to the sync service. @nonsense do you have any recommendation on what to do with the Watch Client? What was it used for? is it useful? Should the sidecar connect directly to Redis? Should I create some interface through the sync service for the watching thing? |
|
The The |
- fixes
- tested with some plans and it seems to work correctly
- NOTE: there is note on the logs saying websocket closed unexpectedly
- IS related to the client used by the sidecar.
License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
NOTE:
- Im probably printing something inside doRun that is causing this error
write error: write /Users/henriquedias/testground/data/daemon/c0jsphucie6mgsgepg6g.out: file already closed
- TODO: remove code from signalEvent from testrond/pkg/sync as .Subscribe/.Publish can do the same
License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
Current issues
Apparently this also happens on my computer on the
|
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
This reverts commit 08ab4da.
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
19a349a to
f01af2b
Compare
| ./integration_tests/10_docker_splitbrain_reject.sh | ||
| ./integration_tests/11_docker_splitbrain_drop.sh | ||
| ./integration_tests/12_docker_example-js_pingpong.sh | ||
| # ./integration_tests/12_docker_example-js_pingpong.sh |
There was a problem hiding this comment.
SDK JS is a work in progress. We can re-add the tests afterwards.
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
aae6f06 to
ba976f5
Compare
Closes #1186.
Read more on: testground/sync-service#4
This PR introduces a new web service to Testground: the sync service. The sync service will act as the central service to which the tests should connect to get sync features (barriers, publishing, subscribing, entry signaling, event signaling). Previously, the tests were connecting directly to the Redis instance through the SDK. However, that brings us some issues:
In case we want to switch from Redis to a different technology (unlikely in the short term), we would need to change the implementation of all SDKs in all languages.refactor: replace Redis by custom implementation sync-service#8This new service is built to battle those issues, by:
sync.Serviceinterface, which makes it easy to swap to a different backend in the future.Regarding testing, I simply moved the tests from
sdk-gothat now belong here, and adapted them. Do you think we should do more unit tests or are the current integration tests enough?To do
WatchClient)sdk-go)sdk-gofeat: use new sync service sdk-go#37Before merging
sdk-goversion to definite one on tests and tgUpdate infra repository to use the new sync serviceUpdating TaaS is deferred.