相关疑难解决方法(0)

ChronicleMap中的多重映射

ChronicleMap的GitHub肯定有关于ChronicleMap中 Multimaps 的免责声明:

纪事地图不是......

......没有二级索引.

多图.使用ChronicleMap<K, Collection<V>>as multimap在技术上是可行的,但往往会导致问题......

不幸的是,这是我的一个用例,并且使用堆外存储(使用ChronicleMap)肯定是最简单的方法.

让我试着用披萨来解释我的问题.我有10万种不同的比萨饼.每个披萨都有一个ID和许多不同的浇头和面包皮.我有三种访问模式:

  • 通过身份证给我披萨.
  • 给我所有有特别馅料的比萨饼.
  • 给我所有有特殊外壳的比萨饼.

我可以用a轻松存放比萨饼ChronicleMap<UUID,Pizza>.但这只是一种访问模式.我不想遍历每一个披萨,找到具有匹配的顶部或外壳的披萨.所以,我想存储的东西像ChronicleMap<Topping,Collection<UUID>>ChronicleMap<Crust,Collection<UUID>>.

然后,如果有人问我所有的意大利辣香肠披萨,我会在顶部的ChronicleMap中查找匹配的比萨饼的UUID,然后在主披萨地图中.

但上面引用的文档让我感到害怕.有谁知道这些事情经常导致的"问题"是什么?我为什么不这样做,即使它似乎对我有用?它是否与ChronicleMap如何存储序列化对象(特别是集合)有关?

针对潜在问题的一些补充说明:

  1. 我们稍后可能会添加比萨饼,这也需要更新收藏品.
  2. 许多进程正在尝试执行这些操作,因此需要通过ChronicleMap而不仅仅是基本的ConcurrentMap来共享地图.

java chronicle chronicle-map

8
推荐指数
1
解决办法
2775
查看次数

标签 统计

chronicle ×1

chronicle-map ×1

java ×1