小编Bor*_*Mik的帖子

Mongodb读锁

我有一个mongodb集合,包含自定义_id和500M +文档._id索引的大小是≈25Gb,整个集合是≈125Gb.服务器有96 Gb RAM.读取活动仅是_id的范围查询.Explain()显示查询使用索引.Mongo在负载测试开始后一段时间内工作得相当快,并且在一段时间后变慢.我可以在日志中看到很多这样的条目:

[conn116] getmore csdb.archive query:{_ id:{$ gt:2812719756651008,$ lt:2812720361451008}} cursorid:444942282445272280 ntoreturn:0 keyUpdates:0 numYields:748 locks(micros)r:7885031 nreturned:40302 reslen:1047872 10329ms

一段db.currentOp():

"waitingForLock" : false,
                        "numYields" : 193,
                        "lockStats" : {
                                "timeLockedMicros" : {
                                        "r" : NumberLong(869051),
                                        "w" : NumberLong(0)
                                },
                                "timeAcquiringMicros" : {
                                        "r" : NumberLong(1369404),
                                        "w" : NumberLong(0)
                                }
                        }
Run Code Online (Sandbox Code Playgroud)

什么是锁(微)r?我该怎么做才能减少它?

mongodb

6
推荐指数
1
解决办法
7416
查看次数

Liquibase:如何仅以编程方式运行那些尚未应用的变更集?

我尝试以这种方式使用 luquibase Java API 更新现有数据库:

Database database = DatabaseFactory.getInstance()
    .findCorrectDatabaseImplementation( 
        new JdbcConnection( connection ) 
    );
Liquibase liquibase = new Liquibase( 
    "db.changelog.xml", 
    new FileSystemResourceAccessor(), 
    database 
);
liquibase.update( "" );
Run Code Online (Sandbox Code Playgroud)

但它会尝试应用所有更改集,包括之前已经应用的更改集。我做错了什么?

java liquibase

5
推荐指数
1
解决办法
2512
查看次数

标签 统计

java ×1

liquibase ×1

mongodb ×1