You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

151 lines
3.9 KiB

2 years ago
2 years ago
Squashed commit of the following: commit 482742514656e9b5a652acf7406740fbc55db13d Author: chrislu <chris.lu@gmail.com> Date: Sat Sep 16 15:05:38 2023 -0700 balancer works commit 3b50139f68d5f59961113cf8fd0b903a7294a6ca Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:22:32 2023 -0700 comments commit 7f685ce7ba8853775e7c02c5b5c242d7920d62d3 Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:20:05 2023 -0700 adjust APIs commit 436d99443b399082f75f4ceb7595e8b5ac0a8ba3 Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 14 23:49:05 2023 -0700 receive broker stats commit b771fefa374fe237ff1317bbd03a9297a52191e3 Merge: 0a851ec00 890881037 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 13 00:03:47 2023 -0700 Merge branch 'master' into sub commit 0a851ec00b455c72b405503f6f1f41728b15962e Author: chrislu <chris.lu@gmail.com> Date: Sun Sep 10 22:01:25 2023 -0700 Create balancer.go commit 39941edc0bae3b9a4a2c3344caf494f7ab80a82a Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 7 23:55:19 2023 -0700 add publisher shutdown commit 875f562779f239a140d1008732b5375c0e511e61 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:16:41 2023 -0700 server side send response at least once per second commit 984b6c54cf6b0defaa6e727ab5e36809411fe92c Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:15:29 2023 -0700 ack interval 128 commit 2492a454997a59ffe00405e365290addc460078a Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 22:39:46 2023 -0700 ack interval commit ba67e6ca2998e82eb23abf5c431bdf9a92e966ea Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:50 2023 -0700 api for sub commit 9e4f98569898985ed285d8bb8a39b4ea5f095a98 Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:30 2023 -0700 publish, benchmark commit cb470d44df2fed94ad8fd370b1c281cb126d373b Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 1 00:36:51 2023 -0700 can pub and sub commit 1eb2da46d5d5a52c1012aa19ef31c1c8ed568d9e Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:02:12 2023 -0700 connect and publish commit 504ae8383ac3a0838d31d04b31623872b5734b31 Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:01:25 2023 -0700 protoc version commit dbcba75271a4617b5931c4779ca0f7c924369a8f Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:59:04 2023 -0700 rename to lookup commit c9caf3311995290c36ed369b48fbbab23d6bc7b5 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:33:46 2023 -0700 move functions commit 4d6c18d86f07ee35625f207c94539727944a8776 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 17:50:59 2023 -0700 pub sub initial tests commit 4eb8e8624d8280d8aa4a227afc06bcacbfe732a7 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:14:39 2023 -0700 rename commit 19904566706e9dba502f1ffd1f6fdf0bf876e99c Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:13:14 2023 -0700 sub commit 905911853dd5103496e8fc9b47934fa3a48da214 Author: chrislu <chris.lu@gmail.com> Date: Sat Aug 26 13:39:21 2023 -0700 adjust proto
1 year ago
Squashed commit of the following: commit 482742514656e9b5a652acf7406740fbc55db13d Author: chrislu <chris.lu@gmail.com> Date: Sat Sep 16 15:05:38 2023 -0700 balancer works commit 3b50139f68d5f59961113cf8fd0b903a7294a6ca Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:22:32 2023 -0700 comments commit 7f685ce7ba8853775e7c02c5b5c242d7920d62d3 Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:20:05 2023 -0700 adjust APIs commit 436d99443b399082f75f4ceb7595e8b5ac0a8ba3 Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 14 23:49:05 2023 -0700 receive broker stats commit b771fefa374fe237ff1317bbd03a9297a52191e3 Merge: 0a851ec00 890881037 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 13 00:03:47 2023 -0700 Merge branch 'master' into sub commit 0a851ec00b455c72b405503f6f1f41728b15962e Author: chrislu <chris.lu@gmail.com> Date: Sun Sep 10 22:01:25 2023 -0700 Create balancer.go commit 39941edc0bae3b9a4a2c3344caf494f7ab80a82a Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 7 23:55:19 2023 -0700 add publisher shutdown commit 875f562779f239a140d1008732b5375c0e511e61 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:16:41 2023 -0700 server side send response at least once per second commit 984b6c54cf6b0defaa6e727ab5e36809411fe92c Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:15:29 2023 -0700 ack interval 128 commit 2492a454997a59ffe00405e365290addc460078a Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 22:39:46 2023 -0700 ack interval commit ba67e6ca2998e82eb23abf5c431bdf9a92e966ea Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:50 2023 -0700 api for sub commit 9e4f98569898985ed285d8bb8a39b4ea5f095a98 Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:30 2023 -0700 publish, benchmark commit cb470d44df2fed94ad8fd370b1c281cb126d373b Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 1 00:36:51 2023 -0700 can pub and sub commit 1eb2da46d5d5a52c1012aa19ef31c1c8ed568d9e Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:02:12 2023 -0700 connect and publish commit 504ae8383ac3a0838d31d04b31623872b5734b31 Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:01:25 2023 -0700 protoc version commit dbcba75271a4617b5931c4779ca0f7c924369a8f Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:59:04 2023 -0700 rename to lookup commit c9caf3311995290c36ed369b48fbbab23d6bc7b5 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:33:46 2023 -0700 move functions commit 4d6c18d86f07ee35625f207c94539727944a8776 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 17:50:59 2023 -0700 pub sub initial tests commit 4eb8e8624d8280d8aa4a227afc06bcacbfe732a7 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:14:39 2023 -0700 rename commit 19904566706e9dba502f1ffd1f6fdf0bf876e99c Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:13:14 2023 -0700 sub commit 905911853dd5103496e8fc9b47934fa3a48da214 Author: chrislu <chris.lu@gmail.com> Date: Sat Aug 26 13:39:21 2023 -0700 adjust proto
1 year ago
2 years ago
Squashed commit of the following: commit 482742514656e9b5a652acf7406740fbc55db13d Author: chrislu <chris.lu@gmail.com> Date: Sat Sep 16 15:05:38 2023 -0700 balancer works commit 3b50139f68d5f59961113cf8fd0b903a7294a6ca Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:22:32 2023 -0700 comments commit 7f685ce7ba8853775e7c02c5b5c242d7920d62d3 Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:20:05 2023 -0700 adjust APIs commit 436d99443b399082f75f4ceb7595e8b5ac0a8ba3 Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 14 23:49:05 2023 -0700 receive broker stats commit b771fefa374fe237ff1317bbd03a9297a52191e3 Merge: 0a851ec00 890881037 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 13 00:03:47 2023 -0700 Merge branch 'master' into sub commit 0a851ec00b455c72b405503f6f1f41728b15962e Author: chrislu <chris.lu@gmail.com> Date: Sun Sep 10 22:01:25 2023 -0700 Create balancer.go commit 39941edc0bae3b9a4a2c3344caf494f7ab80a82a Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 7 23:55:19 2023 -0700 add publisher shutdown commit 875f562779f239a140d1008732b5375c0e511e61 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:16:41 2023 -0700 server side send response at least once per second commit 984b6c54cf6b0defaa6e727ab5e36809411fe92c Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:15:29 2023 -0700 ack interval 128 commit 2492a454997a59ffe00405e365290addc460078a Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 22:39:46 2023 -0700 ack interval commit ba67e6ca2998e82eb23abf5c431bdf9a92e966ea Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:50 2023 -0700 api for sub commit 9e4f98569898985ed285d8bb8a39b4ea5f095a98 Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:30 2023 -0700 publish, benchmark commit cb470d44df2fed94ad8fd370b1c281cb126d373b Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 1 00:36:51 2023 -0700 can pub and sub commit 1eb2da46d5d5a52c1012aa19ef31c1c8ed568d9e Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:02:12 2023 -0700 connect and publish commit 504ae8383ac3a0838d31d04b31623872b5734b31 Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:01:25 2023 -0700 protoc version commit dbcba75271a4617b5931c4779ca0f7c924369a8f Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:59:04 2023 -0700 rename to lookup commit c9caf3311995290c36ed369b48fbbab23d6bc7b5 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:33:46 2023 -0700 move functions commit 4d6c18d86f07ee35625f207c94539727944a8776 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 17:50:59 2023 -0700 pub sub initial tests commit 4eb8e8624d8280d8aa4a227afc06bcacbfe732a7 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:14:39 2023 -0700 rename commit 19904566706e9dba502f1ffd1f6fdf0bf876e99c Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:13:14 2023 -0700 sub commit 905911853dd5103496e8fc9b47934fa3a48da214 Author: chrislu <chris.lu@gmail.com> Date: Sat Aug 26 13:39:21 2023 -0700 adjust proto
1 year ago
Squashed commit of the following: commit 482742514656e9b5a652acf7406740fbc55db13d Author: chrislu <chris.lu@gmail.com> Date: Sat Sep 16 15:05:38 2023 -0700 balancer works commit 3b50139f68d5f59961113cf8fd0b903a7294a6ca Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:22:32 2023 -0700 comments commit 7f685ce7ba8853775e7c02c5b5c242d7920d62d3 Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:20:05 2023 -0700 adjust APIs commit 436d99443b399082f75f4ceb7595e8b5ac0a8ba3 Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 14 23:49:05 2023 -0700 receive broker stats commit b771fefa374fe237ff1317bbd03a9297a52191e3 Merge: 0a851ec00 890881037 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 13 00:03:47 2023 -0700 Merge branch 'master' into sub commit 0a851ec00b455c72b405503f6f1f41728b15962e Author: chrislu <chris.lu@gmail.com> Date: Sun Sep 10 22:01:25 2023 -0700 Create balancer.go commit 39941edc0bae3b9a4a2c3344caf494f7ab80a82a Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 7 23:55:19 2023 -0700 add publisher shutdown commit 875f562779f239a140d1008732b5375c0e511e61 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:16:41 2023 -0700 server side send response at least once per second commit 984b6c54cf6b0defaa6e727ab5e36809411fe92c Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:15:29 2023 -0700 ack interval 128 commit 2492a454997a59ffe00405e365290addc460078a Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 22:39:46 2023 -0700 ack interval commit ba67e6ca2998e82eb23abf5c431bdf9a92e966ea Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:50 2023 -0700 api for sub commit 9e4f98569898985ed285d8bb8a39b4ea5f095a98 Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:30 2023 -0700 publish, benchmark commit cb470d44df2fed94ad8fd370b1c281cb126d373b Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 1 00:36:51 2023 -0700 can pub and sub commit 1eb2da46d5d5a52c1012aa19ef31c1c8ed568d9e Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:02:12 2023 -0700 connect and publish commit 504ae8383ac3a0838d31d04b31623872b5734b31 Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:01:25 2023 -0700 protoc version commit dbcba75271a4617b5931c4779ca0f7c924369a8f Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:59:04 2023 -0700 rename to lookup commit c9caf3311995290c36ed369b48fbbab23d6bc7b5 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:33:46 2023 -0700 move functions commit 4d6c18d86f07ee35625f207c94539727944a8776 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 17:50:59 2023 -0700 pub sub initial tests commit 4eb8e8624d8280d8aa4a227afc06bcacbfe732a7 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:14:39 2023 -0700 rename commit 19904566706e9dba502f1ffd1f6fdf0bf876e99c Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:13:14 2023 -0700 sub commit 905911853dd5103496e8fc9b47934fa3a48da214 Author: chrislu <chris.lu@gmail.com> Date: Sat Aug 26 13:39:21 2023 -0700 adjust proto
1 year ago
2 years ago
Squashed commit of the following: commit 482742514656e9b5a652acf7406740fbc55db13d Author: chrislu <chris.lu@gmail.com> Date: Sat Sep 16 15:05:38 2023 -0700 balancer works commit 3b50139f68d5f59961113cf8fd0b903a7294a6ca Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:22:32 2023 -0700 comments commit 7f685ce7ba8853775e7c02c5b5c242d7920d62d3 Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:20:05 2023 -0700 adjust APIs commit 436d99443b399082f75f4ceb7595e8b5ac0a8ba3 Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 14 23:49:05 2023 -0700 receive broker stats commit b771fefa374fe237ff1317bbd03a9297a52191e3 Merge: 0a851ec00 890881037 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 13 00:03:47 2023 -0700 Merge branch 'master' into sub commit 0a851ec00b455c72b405503f6f1f41728b15962e Author: chrislu <chris.lu@gmail.com> Date: Sun Sep 10 22:01:25 2023 -0700 Create balancer.go commit 39941edc0bae3b9a4a2c3344caf494f7ab80a82a Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 7 23:55:19 2023 -0700 add publisher shutdown commit 875f562779f239a140d1008732b5375c0e511e61 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:16:41 2023 -0700 server side send response at least once per second commit 984b6c54cf6b0defaa6e727ab5e36809411fe92c Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:15:29 2023 -0700 ack interval 128 commit 2492a454997a59ffe00405e365290addc460078a Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 22:39:46 2023 -0700 ack interval commit ba67e6ca2998e82eb23abf5c431bdf9a92e966ea Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:50 2023 -0700 api for sub commit 9e4f98569898985ed285d8bb8a39b4ea5f095a98 Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:30 2023 -0700 publish, benchmark commit cb470d44df2fed94ad8fd370b1c281cb126d373b Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 1 00:36:51 2023 -0700 can pub and sub commit 1eb2da46d5d5a52c1012aa19ef31c1c8ed568d9e Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:02:12 2023 -0700 connect and publish commit 504ae8383ac3a0838d31d04b31623872b5734b31 Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:01:25 2023 -0700 protoc version commit dbcba75271a4617b5931c4779ca0f7c924369a8f Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:59:04 2023 -0700 rename to lookup commit c9caf3311995290c36ed369b48fbbab23d6bc7b5 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:33:46 2023 -0700 move functions commit 4d6c18d86f07ee35625f207c94539727944a8776 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 17:50:59 2023 -0700 pub sub initial tests commit 4eb8e8624d8280d8aa4a227afc06bcacbfe732a7 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:14:39 2023 -0700 rename commit 19904566706e9dba502f1ffd1f6fdf0bf876e99c Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:13:14 2023 -0700 sub commit 905911853dd5103496e8fc9b47934fa3a48da214 Author: chrislu <chris.lu@gmail.com> Date: Sat Aug 26 13:39:21 2023 -0700 adjust proto
1 year ago
2 years ago
2 years ago
Squashed commit of the following: commit 482742514656e9b5a652acf7406740fbc55db13d Author: chrislu <chris.lu@gmail.com> Date: Sat Sep 16 15:05:38 2023 -0700 balancer works commit 3b50139f68d5f59961113cf8fd0b903a7294a6ca Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:22:32 2023 -0700 comments commit 7f685ce7ba8853775e7c02c5b5c242d7920d62d3 Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:20:05 2023 -0700 adjust APIs commit 436d99443b399082f75f4ceb7595e8b5ac0a8ba3 Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 14 23:49:05 2023 -0700 receive broker stats commit b771fefa374fe237ff1317bbd03a9297a52191e3 Merge: 0a851ec00 890881037 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 13 00:03:47 2023 -0700 Merge branch 'master' into sub commit 0a851ec00b455c72b405503f6f1f41728b15962e Author: chrislu <chris.lu@gmail.com> Date: Sun Sep 10 22:01:25 2023 -0700 Create balancer.go commit 39941edc0bae3b9a4a2c3344caf494f7ab80a82a Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 7 23:55:19 2023 -0700 add publisher shutdown commit 875f562779f239a140d1008732b5375c0e511e61 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:16:41 2023 -0700 server side send response at least once per second commit 984b6c54cf6b0defaa6e727ab5e36809411fe92c Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:15:29 2023 -0700 ack interval 128 commit 2492a454997a59ffe00405e365290addc460078a Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 22:39:46 2023 -0700 ack interval commit ba67e6ca2998e82eb23abf5c431bdf9a92e966ea Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:50 2023 -0700 api for sub commit 9e4f98569898985ed285d8bb8a39b4ea5f095a98 Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:30 2023 -0700 publish, benchmark commit cb470d44df2fed94ad8fd370b1c281cb126d373b Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 1 00:36:51 2023 -0700 can pub and sub commit 1eb2da46d5d5a52c1012aa19ef31c1c8ed568d9e Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:02:12 2023 -0700 connect and publish commit 504ae8383ac3a0838d31d04b31623872b5734b31 Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:01:25 2023 -0700 protoc version commit dbcba75271a4617b5931c4779ca0f7c924369a8f Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:59:04 2023 -0700 rename to lookup commit c9caf3311995290c36ed369b48fbbab23d6bc7b5 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:33:46 2023 -0700 move functions commit 4d6c18d86f07ee35625f207c94539727944a8776 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 17:50:59 2023 -0700 pub sub initial tests commit 4eb8e8624d8280d8aa4a227afc06bcacbfe732a7 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:14:39 2023 -0700 rename commit 19904566706e9dba502f1ffd1f6fdf0bf876e99c Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:13:14 2023 -0700 sub commit 905911853dd5103496e8fc9b47934fa3a48da214 Author: chrislu <chris.lu@gmail.com> Date: Sat Aug 26 13:39:21 2023 -0700 adjust proto
1 year ago
Squashed commit of the following: commit 482742514656e9b5a652acf7406740fbc55db13d Author: chrislu <chris.lu@gmail.com> Date: Sat Sep 16 15:05:38 2023 -0700 balancer works commit 3b50139f68d5f59961113cf8fd0b903a7294a6ca Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:22:32 2023 -0700 comments commit 7f685ce7ba8853775e7c02c5b5c242d7920d62d3 Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 15 22:20:05 2023 -0700 adjust APIs commit 436d99443b399082f75f4ceb7595e8b5ac0a8ba3 Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 14 23:49:05 2023 -0700 receive broker stats commit b771fefa374fe237ff1317bbd03a9297a52191e3 Merge: 0a851ec00 890881037 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 13 00:03:47 2023 -0700 Merge branch 'master' into sub commit 0a851ec00b455c72b405503f6f1f41728b15962e Author: chrislu <chris.lu@gmail.com> Date: Sun Sep 10 22:01:25 2023 -0700 Create balancer.go commit 39941edc0bae3b9a4a2c3344caf494f7ab80a82a Author: chrislu <chris.lu@gmail.com> Date: Thu Sep 7 23:55:19 2023 -0700 add publisher shutdown commit 875f562779f239a140d1008732b5375c0e511e61 Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:16:41 2023 -0700 server side send response at least once per second commit 984b6c54cf6b0defaa6e727ab5e36809411fe92c Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 23:15:29 2023 -0700 ack interval 128 commit 2492a454997a59ffe00405e365290addc460078a Author: chrislu <chris.lu@gmail.com> Date: Wed Sep 6 22:39:46 2023 -0700 ack interval commit ba67e6ca2998e82eb23abf5c431bdf9a92e966ea Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:50 2023 -0700 api for sub commit 9e4f98569898985ed285d8bb8a39b4ea5f095a98 Author: chrislu <chris.lu@gmail.com> Date: Mon Sep 4 21:43:30 2023 -0700 publish, benchmark commit cb470d44df2fed94ad8fd370b1c281cb126d373b Author: chrislu <chris.lu@gmail.com> Date: Fri Sep 1 00:36:51 2023 -0700 can pub and sub commit 1eb2da46d5d5a52c1012aa19ef31c1c8ed568d9e Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:02:12 2023 -0700 connect and publish commit 504ae8383ac3a0838d31d04b31623872b5734b31 Author: chrislu <chris.lu@gmail.com> Date: Mon Aug 28 09:01:25 2023 -0700 protoc version commit dbcba75271a4617b5931c4779ca0f7c924369a8f Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:59:04 2023 -0700 rename to lookup commit c9caf3311995290c36ed369b48fbbab23d6bc7b5 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 18:33:46 2023 -0700 move functions commit 4d6c18d86f07ee35625f207c94539727944a8776 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 17:50:59 2023 -0700 pub sub initial tests commit 4eb8e8624d8280d8aa4a227afc06bcacbfe732a7 Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:14:39 2023 -0700 rename commit 19904566706e9dba502f1ffd1f6fdf0bf876e99c Author: chrislu <chris.lu@gmail.com> Date: Sun Aug 27 13:13:14 2023 -0700 sub commit 905911853dd5103496e8fc9b47934fa3a48da214 Author: chrislu <chris.lu@gmail.com> Date: Sat Aug 26 13:39:21 2023 -0700 adjust proto
1 year ago
  1. package lock_manager
  2. import (
  3. "fmt"
  4. "github.com/google/uuid"
  5. "github.com/puzpuzpuz/xsync/v2"
  6. "github.com/seaweedfs/seaweedfs/weed/glog"
  7. "time"
  8. )
  9. var LockErrorNonEmptyTokenOnNewLock = fmt.Errorf("lock: non-empty token on a new lock")
  10. var LockErrorNonEmptyTokenOnExpiredLock = fmt.Errorf("lock: non-empty token on an expired lock")
  11. var LockErrorTokenMismatch = fmt.Errorf("lock: token mismatch")
  12. var UnlockErrorTokenMismatch = fmt.Errorf("unlock: token mismatch")
  13. var LockNotFound = fmt.Errorf("lock not found")
  14. // LockManager local lock manager, used by distributed lock manager
  15. type LockManager struct {
  16. locks *xsync.MapOf[string, *Lock]
  17. }
  18. type Lock struct {
  19. Token string
  20. ExpiredAtNs int64
  21. Key string // only used for moving locks
  22. Owner string
  23. }
  24. func NewLockManager() *LockManager {
  25. t := &LockManager{
  26. locks: xsync.NewMapOf[*Lock](),
  27. }
  28. go t.CleanUp()
  29. return t
  30. }
  31. func (lm *LockManager) Lock(path string, expiredAtNs int64, token string, owner string) (lockOwner, renewToken string, err error) {
  32. lm.locks.Compute(path, func(oldValue *Lock, loaded bool) (newValue *Lock, delete bool) {
  33. if oldValue != nil {
  34. if oldValue.ExpiredAtNs > 0 && oldValue.ExpiredAtNs < time.Now().UnixNano() {
  35. // lock is expired, set to a new lock
  36. if token != "" {
  37. err = LockErrorNonEmptyTokenOnExpiredLock
  38. return nil, false
  39. } else {
  40. // new lock
  41. renewToken = uuid.New().String()
  42. return &Lock{Token: renewToken, ExpiredAtNs: expiredAtNs, Owner: owner}, false
  43. }
  44. }
  45. // not expired
  46. lockOwner = oldValue.Owner
  47. if oldValue.Token == token {
  48. // token matches, renew the lock
  49. renewToken = uuid.New().String()
  50. return &Lock{Token: renewToken, ExpiredAtNs: expiredAtNs, Owner: owner}, false
  51. } else {
  52. err = LockErrorTokenMismatch
  53. return oldValue, false
  54. }
  55. } else {
  56. if token == "" {
  57. // new lock
  58. renewToken = uuid.New().String()
  59. return &Lock{Token: renewToken, ExpiredAtNs: expiredAtNs, Owner: owner}, false
  60. } else {
  61. err = LockErrorNonEmptyTokenOnNewLock
  62. return nil, false
  63. }
  64. }
  65. })
  66. return
  67. }
  68. func (lm *LockManager) Unlock(path string, token string) (isUnlocked bool, err error) {
  69. lm.locks.Compute(path, func(oldValue *Lock, loaded bool) (newValue *Lock, delete bool) {
  70. if oldValue != nil {
  71. now := time.Now()
  72. if oldValue.ExpiredAtNs > 0 && oldValue.ExpiredAtNs < now.UnixNano() {
  73. // lock is expired, delete it
  74. isUnlocked = true
  75. return nil, true
  76. }
  77. if oldValue.Token == token {
  78. if oldValue.ExpiredAtNs <= now.UnixNano() {
  79. isUnlocked = true
  80. return nil, true
  81. }
  82. return oldValue, false
  83. } else {
  84. isUnlocked = false
  85. err = UnlockErrorTokenMismatch
  86. return oldValue, false
  87. }
  88. } else {
  89. isUnlocked = true
  90. return nil, true
  91. }
  92. })
  93. return
  94. }
  95. func (lm *LockManager) CleanUp() {
  96. for {
  97. time.Sleep(1 * time.Minute)
  98. now := time.Now().UnixNano()
  99. lm.locks.Range(func(key string, value *Lock) bool {
  100. if value == nil {
  101. return true
  102. }
  103. if now > value.ExpiredAtNs {
  104. lm.locks.Delete(key)
  105. return true
  106. }
  107. return true
  108. })
  109. }
  110. }
  111. // SelectLocks takes out locks by key
  112. // if keyFn return true, the lock will be taken out
  113. func (lm *LockManager) SelectLocks(selectFn func(key string) bool) (locks []*Lock) {
  114. now := time.Now().UnixNano()
  115. lm.locks.Range(func(key string, lock *Lock) bool {
  116. if now > lock.ExpiredAtNs {
  117. lm.locks.Delete(key)
  118. return true
  119. }
  120. if selectFn(key) {
  121. lm.locks.Delete(key)
  122. lock.Key = key
  123. locks = append(locks, lock)
  124. }
  125. return true
  126. })
  127. return
  128. }
  129. // InsertLock inserts a lock unconditionally
  130. func (lm *LockManager) InsertLock(path string, expiredAtNs int64, token string, owner string) {
  131. lm.locks.Store(path, &Lock{Token: token, ExpiredAtNs: expiredAtNs, Owner: owner})
  132. }
  133. func (lm *LockManager) GetLockOwner(key string) (owner string, err error) {
  134. lock, _ := lm.locks.Load(key)
  135. if lock != nil {
  136. return lock.Owner, nil
  137. }
  138. glog.V(0).Infof("get lock %s %+v", key, lock)
  139. err = LockNotFound
  140. return
  141. }