mongo java驱动程序从主要数据库返回过时数据

时间:2015-05-12 09:20:32

标签: java mongodb

我正在使用mongo version 2.4.5mongo-java-driver version 2.12.4。我有一个主节点和一个副本。

现在我运行以下代码:

SAVE 1 - inserts a new document with default write concern

...waits for some time

READ 1 - reads the document with read preference as primary

...modifies it

SAVE 2 - Save the modified doc with default write concern

READ 2 - reads back the saved doc immediately with read preference as primary

在保存后立即执行的最后一次读取操作中,我看到在某些情况下返回过时数据(即修改没有反映)。但是,在某些情况下,修改确实会反映出来。

问题 - 如果我写mongo时有默认的写入问题(已经确认),然后以偏好初级读回来,那么一致性是否保证?

更多详情:

  1. 应用程序正在连接到包含1个主要主机和1个辅助主机的副本集。

  2. 我尝试用以下内容覆盖默认写入问题:ACKNOWLEDGED,JOURNALED,RELPICA_ACKNOWLEDGED 在所有情况下,阅读偏好都是主要的。仍然存在这个问题。

    私人DBCollection customers = myDB.getCollection(" customers");

    WriteResult wr = customers.save(customer,concern);

    if(wr.getN()> 0){

    ans = true;

    }其他   ans = false;

    } catch(例外e){

    ans = false;

    e.printStackTrace();

    }

0 个答案:

没有答案