Commit Graph

92 Commits

Author SHA1 Message Date
chrislu
c77d35313e pub/sub broker only check local assigned partitions 2024-01-22 00:49:57 -08:00
chrislu
b0a2e9aea3 fix assignments if brokers changed 2024-01-21 01:27:22 -08:00
chrislu
a5b906c0dd refactor 2024-01-21 01:23:43 -08:00
chrislu
34839237ab refactor 2024-01-20 12:16:40 -08:00
chrislu
2828ccbb30 refactor 2024-01-20 11:41:11 -08:00
chrislu
541140f735 rename 2024-01-19 11:43:40 -08:00
chrislu
c8090b1f99 send assignments to newly connected subscribers 2024-01-17 22:44:39 -08:00
chrislu
c616081ab9 refactor 2024-01-17 22:29:59 -08:00
chrislu
bc8d2a01cc create local topic partition from config on filer 2024-01-17 00:15:52 -08:00
chrislu
be0c426dc7 simplify to LookupTopicPartitions(topic) 2024-01-16 09:30:46 -08:00
chrislu
db3670a3a5 simplify api 2024-01-16 08:55:47 -08:00
chrislu
34a78ffad0 remove isForPublish from LookupTopicBrokers
also adds a return parameter: whether the topic exists or not
2024-01-16 08:52:42 -08:00
chrislu
3795d8dca8 release local topic partition if no publisher and subscribers 2024-01-16 08:43:07 -08:00
chrislu
ba73199174 reuse local partition 2024-01-15 21:22:41 -08:00
chrislu
fa59a5d67e read from disk if not in memory 2024-01-15 00:20:12 -08:00
chrislu
7afaad31a4 wait on local topic partition creation 2024-01-11 23:08:02 -08:00
chrislu
61dbdd0ff6 log ctrl messages 2024-01-11 23:07:32 -08:00
chrislu
6a7a679137 passing partition generation timestamp 2024-01-10 22:36:17 -08:00
chrislu
8af61dec91 avoid empty spaces in file name 2024-01-09 09:00:54 -08:00
chrislu
aed54eda61 refactor 2024-01-09 08:01:01 -08:00
chrislu
d51efddf5c flush to disk
Need to do: read from disk
2024-01-08 23:27:02 -08:00
chrislu
49428a303b add batch index for each memory buffer 2024-01-08 00:03:08 -08:00
chrislu
e8611ed85d subscribe with partition offset 2024-01-05 15:24:14 -08:00
chrislu
ee41dbb7fc rename functions 2024-01-05 15:14:25 -08:00
chrislu
47a4963d7a subscription start from specified timestamp 2024-01-03 15:57:36 -08:00
chrislu
35869b5c80 subscriber can be notified of the assignment change when topic is just configured
Next: Subscriber needs to read by the timestamp offset.
2024-01-03 13:30:30 -08:00
chrislu
efb695fd93 lookup existing topic partitions 2024-01-02 17:29:35 -08:00
chrislu
093fdc1621 subscriber can get assignments 2023-12-28 20:35:15 -08:00
chrislu
c950a40aad subscriber keep connected to the balancer 2023-12-28 11:56:37 -08:00
chrislu
e0727071c8 go fmt 2023-12-22 11:33:50 -08:00
chrislu
034db049a0 comment fix 2023-12-22 11:33:00 -08:00
Chris Lu
580940bf82
Merge accumulated changes related to message queue (#5098)
* balance partitions on brokers

* prepare topic partition first and then publish, move partition

* purge unused APIs

* clean up

* adjust logs

* add BalanceTopics() grpc API

* configure topic

* configure topic command

* refactor

* repair missing partitions

* sequence of operations to ensure ordering

* proto to close publishers and consumers

* rename file

* topic partition versioned by unixTimeNs

* create local topic partition

* close publishers

* randomize the client name

* wait until no publishers

* logs

* close stop publisher channel

* send last ack

* comments

* comment

* comments

* support list of brokers

* add cli options

* Update .gitignore

* logs

* return io.eof directly

* refactor

* optionally create topic

* refactoring

* detect consumer disconnection

* sub client wait for more messages

* subscribe by time stamp

* rename

* rename to sub_balancer

* rename

* adjust comments

* rename

* fix compilation

* rename

* rename

* SubscriberToSubCoordinator

* sticky rebalance

* go fmt

* add tests

* balance partitions on brokers

* prepare topic partition first and then publish, move partition

* purge unused APIs

* clean up

* adjust logs

* add BalanceTopics() grpc API

* configure topic

* configure topic command

* refactor

* repair missing partitions

* sequence of operations to ensure ordering

* proto to close publishers and consumers

* rename file

* topic partition versioned by unixTimeNs

* create local topic partition

* close publishers

* randomize the client name

* wait until no publishers

* logs

* close stop publisher channel

* send last ack

* comments

* comment

* comments

* support list of brokers

* add cli options

* Update .gitignore

* logs

* return io.eof directly

* refactor

* optionally create topic

* refactoring

* detect consumer disconnection

* sub client wait for more messages

* subscribe by time stamp

* rename

* rename to sub_balancer

* rename

* adjust comments

* rename

* fix compilation

* rename

* rename

* SubscriberToSubCoordinator

* sticky rebalance

* go fmt

* add tests

* tracking topic=>broker

* merge

* comment
2023-12-11 12:05:54 -08:00
chrislu
17710e1ecb adjust logs 2023-11-15 18:11:35 -08:00
chrislu
de0b969b36 Revert "rename"
This reverts commit 35b5264ab7.
2023-10-12 20:28:11 -07:00
chrislu
35b5264ab7 rename 2023-10-11 21:44:56 -07:00
chrislu
734178093e refactor TopicPartition struct 2023-10-02 01:01:45 -07:00
chrislu
ebd6f96d35 adjust mq.proto 2023-09-30 21:47:57 -07:00
chrislu
02cb799481 add a test framework for grpc 2023-09-30 21:36:58 -07:00
chrislu
c4e6545197 fix compilation 2023-09-30 21:26:09 -07:00
chrislu
9d589b48e6 rename function 2023-09-26 15:17:33 -07:00
chrislu
23f334dd13 comment 2023-09-24 23:36:43 -07:00
chrislu
c7e05e4e71 ensure latest stats are reported 2023-09-24 23:34:31 -07:00
chrislu
dff2ce5d2f read existing broker stats 2023-09-24 23:10:33 -07:00
chrislu
1492bf7552 fix listing topics 2023-09-24 23:05:41 -07:00
chrislu
3cf9b8d621 create topic and report topic 2023-09-24 22:00:43 -07:00
chrislu
b3f94feede do create topic 2023-09-24 22:00:43 -07:00
chrislu
d74348048a implement create topic 2023-09-24 22:00:43 -07:00
chrislu
0361c321b4 add CreateTopic API 2023-09-24 22:00:43 -07:00
chrislu
b18112ae10 fix compilation bugs during merge 2023-09-19 14:08:17 -07:00
chrislu
6c6655de9d wip 2023-09-19 14:03:42 -07:00