KVStore Tables
2017-03-15 14:40:25 0 举报
登录查看完整内容
KVStore Tables是一种高性能、可扩展的键值存储系统,它提供了一种简单而灵活的方式来存储和检索数据。与传统的关系型数据库不同,KVStore Tables使用键值对的形式来组织数据,这使得数据的存储和查询更加高效。此外,KVStore Tables还支持分布式存储和处理,可以轻松应对大规模的数据需求。在实际应用中,KVStore Tables可以用于各种场景,如缓存、消息队列、实时数据处理等。总之,KVStore Tables是一种强大而实用的工具,可以帮助用户更好地管理和利用数据。
作者其他创作
大纲/内容
在Initial_read和quiesce阶段,我们会把所有的OptimizerTask的处理结果缓存到sINITIAL_READ_MESSAGES_TABLE表中,并且新收到的Kafka消息会去判断这张表中是否已经存在这条记录,如果存在则需要将这张表中的记录删除。例如,对于同一条记录,刚开始是Insert,然后是更新或者删除,则Optimizer会在sINITIAL_READ_MESSAGES_TABLE将对应的记录删除。该表代表OptimizerTask重新计算的结果,如果对应OutputState状态是stable,则删除;如果记录是多余的,也删除的(判断sASSOCIATED_TABLE这行表)
mOUTPUT_DATA_TABLE (Permanent)
- shortResultId- OutputStateData- Boolean
sRELOAD_INFO_TABLE (Historical Result ID)
- shortResultId - Boolean
sASSOCIATED_TABLE
- shortPrimaryId- shortResultId- currentLoadCount
在批量处理阶段,Optiimizer同时会检查这个ResultId之前的处理结果。如果对应饿OutputState状态是stable的话,则表示对应的记录已经完成闭环,则将对应的记录从sINITIAL_READ_MESSAGES_TABLE表中删除,数据则没有必要再发送给Kafka。
mDynamicallyReturnsRecords
mQUEUED_DEFERRED_MESSAGES_TABLE
- messageKey- KafkaMessage
一个Primary可以对应多个resultId。在Optimizer Task处理primary消息时会通过primaryId查询sASSOCIATED_TABLE表,并且通过比较重新生成的结果,不断的移除sASSOCIATED_TABLE表中的记录。但是如果最后sASSOCIATED_TABLE这张表中对应的primaryId的resultId仍然有剩余,也不要删除掉,并且在sINITIAL_READ_MESSAGES_TABLE表和sRELOAD_INFO_TABLE表中将对应的记录删除。
sINITIAL_READ_MESSAGES_TABLE
- pOutputTopic- shortResultId- KafkaMessage
在Flush_initial_read阶段。True表示应该将该条孤儿消息发送给Kafka,将对应的结果消息删除,或者说发送一条删除消息到Kafka;false则忽略该消息。Optimizer会轮询sRELOAD_INFO_TABLE表中的记录,如果对应的记录为true,则发送该条记录的默认值为true。在standby_result阶段,Optimizer会收到所有的result topic message,并将所有的shortResultId,存放到sRELOAD_INFO_TABLE表中;该表代表Kafka中的记录,为True的记录将会被删除。
For primary message replay
收藏
收藏
0 条评论
回复 删除
下一页