任何节俭,protobuf,avro等支持查询生成的紧凑数据吗?或者像thrift-server这样的东西首先必须对紧凑数据进行解码才能查询它?
背景:,因为我的用例可能会有完全不同的答案,我没有看到。
我在纸上勾画出一个自定义数据结构(类似于trie),它将包含数百/数亿个键值对。整个东西需要在RAM中,所以它需要紧凑。
出于这个原因,我可能正在跳过正常的kv-store,因为编码过多的开销。他们无法针对结构的特定情况进行优化。 (Redis每个密钥的开销最小,但还不够:每个密钥超过100个字节)
我查看了Thrift,Protobuf,Avro,Messagepack,这些都将允许我将数据编码为一个非常紧凑的结构,所有这些都需要处理我的数据结构的特定机会(编码密钥为1或2个字节,比特包,值是固定长度等)
然而,我完全不清楚这些协议/技术是否允许我按原样查询压缩数据结构,或者在查询之前必须对数据结构进行解码?如果是后者,那么整个练习对我来说并没有多大用处。
作为替代方案,我已经考虑过查看其他编程语言(可能是c / c ++,虽然我从来没有涉及它),这可能会让我对结构进行非常严格的内存控制(与Node /相反) javascript,这是非常糟糕的)
任何?
答案 0 :(得分:0)
需要对它们进行解码以进行查询