Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【强力建议】开发分布式与微服务平台,希望组表支持并发,这样每个服务调用不用加锁了 #25

Open
Jetol opened this issue Feb 22, 2023 · 3 comments

Comments

@Jetol
Copy link

Jetol commented Feb 22, 2023

问题:并行实时调用集算器在同一个组表append()追加数据时,出现主键变为null,组表打不开或其它问题:
653fed9c8c188b6a2f12dfde2d28818

72dfbb1f020ece1fe6510809f85f703

强力建议:支持并发就更好了,也不用加锁,也提高效率;

@Jetol Jetol changed the title 开发分布式与微服务平台,希望组表支持并发,这样每个服务调用不用加锁了 【强力建议】开发分布式与微服务平台,希望组表支持并发,这样每个服务调用不用加锁了 Feb 22, 2023
@jbx1279
Copy link

jbx1279 commented Feb 22, 2023

组表是大数据,需要整理的数据,不适合在应用运行过程中维护数据,通常要在专门的ETL过程来更新数据。提供随时更新数据能力会降低读取和运算性能,权衡的结果是暂不提供(看情况可以考虑增加选项)。
不能把组表完全当数据库用(至少在写的方面),设计适应它的存储机制。我们不推荐在应用端加锁避开这个问题后实现并发写(读)。

@Jetol
Copy link
Author

Jetol commented Feb 22, 2023

我们是使用专门的ETL过程的数据,通过微服务多实例调用集算器插入同一个组表就报错了。

@jbx1279
Copy link

jbx1279 commented Feb 22, 2023

ETL过程还会有并发写?没考虑过这种场景。
多进程并发,SPL就识别不了,也没法加锁(除非加到硬盘上,那成本确实高了)。多线程时可以用lock函数加锁控制并发。自动加锁的事,要再权衡一下成本(导致读和算的性能损失)和收益。

另外,组表通常要有序,并发写不可能保证这个了,即使提供这种能力,似乎也用处不大。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants