Seu*_*ewa 6 java datatable scala relational data-structures
我想设计一个JVM数据结构(Java/Scala),可用于表示和存储任意关系数据库表的内容.数据结构应该快速(不太gc密集,缓存友好)和内存高效,因此更大的表可以适合RAM.
一种节省内存的解决方案是将每个列分别存储在基本数组中,但我担心缓存友好性,因为同一行中的项不会存储在一起.无论列有多窄,具有N列的行都将导致N个高速缓存未命中.
另一个解决方案是将每一行存储在一个对象数组中,其中每个元素代表一个字段,并在检索时转换为正确的类型,但这需要以其盒装形式存储数字类型,因此它的内存效率不高.并且它可能也不是那种高效缓存.
另一个解决方案是将每行的数据布局为字节数组,就像真正的数据库序列化它们的行一样,只使用必要的字节数.这是缓存友好和内存效率,但我担心每次访问时序列化/反序列化的成本.
什么是最好的方式?
这样做的目的是什么?您可能最好简单地将从数据库检索的数据(作为将其映射到的对象)存储在某种缓存层(如 EhCache、OSCache、memcache 等)中,而不是重新发明轮子。
| 归档时间: |
|
| 查看次数: |
2043 次 |
| 最近记录: |