小编Sah*_*wal的帖子

postgresql/Vacuum中的大量活/死元组无法正常工作

有一张桌子,有200行.但是显示那里的实时元组的数量超过了(大约60K).

select count(*) from subscriber_offset_manager;
 count 
-------
   200
(1 row)


 SELECT schemaname,relname,n_live_tup,n_dead_tup FROM pg_stat_user_tables  where relname='subscriber_offset_manager' ORDER BY n_dead_tup
;
 schemaname |          relname          | n_live_tup | n_dead_tup 
------------+---------------------------+------------+------------
 public     | subscriber_offset_manager |      61453 |          5
(1 row)
Run Code Online (Sandbox Code Playgroud)

但是从pg_stat_activity和pg_locks可以看出,我们无法跟踪任何打开的连接.

SELECT query, state,locktype,mode
FROM pg_locks
JOIN pg_stat_activity
  USING (pid)
WHERE relation::regclass = 'subscriber_offset_manager'::regclass
  ;
 query | state | locktype | mode 
-------+-------+----------+------
(0 rows)
Run Code Online (Sandbox Code Playgroud)

我也试过这张桌子上的全真空,下面是结果:

  • 始终没有删除任何行
  • 有时候所有的活元组都会变成死元组.

这是输出.

vacuum FULL VERBOSE ANALYZE subscriber_offset_manager;
INFO:  vacuuming "public.subscriber_offset_manager"
INFO:  "subscriber_offset_manager": found 0 removable, 67920 …
Run Code Online (Sandbox Code Playgroud)

java postgresql performance hibernate postgresql-9.3

14
推荐指数
3
解决办法
2310
查看次数

Java 8从Map中的匹配值中提取所有键

我是Java8的新手,我有一个场景,我需要从Map中检索与对象匹配的所有键.

想知道是否有办法获取所有密钥而不再从列表中重复它们.

Person.java
private String firstName;
private String lastName;
//setters and getters & constructor


MAIN Class.

String inputCriteriaFirstName = "john";   

Map<String, Person> inputMap = new HashMap<>();
Collection<Person> personCollection = inputMap.values();
List<Person> personList = new ArrayList<>(personCollection);
List<Person> personOutputList = personList.stream()
.filter(p -> p.getFirstName().contains(inputCriteriaFirstName ))
.collect(Collectors.toList());


//IS There a BETTER way to DO Below ??

Set<String> keys = new HashSet<>();
for(Person person : personOutputList) {
    keys.addAll(inputMap.entrySet().stream().filter(entry -> Objects.equals(entry.getValue(), person))
        .map(Map.Entry::getKey).collect(Collectors.toSet()));
}
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

11
推荐指数
3
解决办法
7527
查看次数

如何有效地在Hibernate中进行批量更新

我已阅读了很多文章,并找到了一些批处理方法

其中一个是使用flush和clear,以下是代码

        long t1 = System.currentTimeMillis();
        Session session = getSession();
        Transaction transaction = session.beginTransaction();
        try {
            Query query = session.createQuery("FROM PersonEntity WHERE id > " + lastMaxId + " ORDER BY id");
            query.setMaxResults(1000);
            rows = query.list();
            int count = 0;
            if (rows == null || rows.size() == 0) {
                return;
            }
            LOGGER.info("fetched {} rows from db", rows.size());
            for (Object row : rows) {
                PersonEntity personEntity = (PersonEntity) row;
                personEntity.setName(randomAlphaNumeric(30));
                lastMaxId = personEntity.getId();
                session.saveOrUpdate(personEntity);
                if (++count % 50 == 0) { …
Run Code Online (Sandbox Code Playgroud)

java postgresql hibernate jdbc batch-processing

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

在使用HTML5播放器(音频标签)进行安全性时,如何在HTTP请求中传递授权标头

我正在使用HTML5音频播放器如下:

<audio controls>
  <source src="<url>" type="audio/mp3">
</audio>
Run Code Online (Sandbox Code Playgroud)

现在,我想保护我的应用程序,所以我想在http请求中的Header参数中传递一些sessionId.

我找不到任何办法,如果有人知道解决方案,请帮忙.

要么

有没有其他玩家提供这种支持???

security authentication jquery html5 html5-audio

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

如何使 GWT 产品 Strict CSP 兼容?

我在 gwt 中制作了一个网络应用程序,CSP Mitigator 说,我加载了许多 eval 语句和 js 中的 javascript uri,所以我的项目不是 Strict CSP Compatible 。

但就我而言,问题是,我用 java 编写代码,gwwt 为我制作 js。

我还询问了 gwt 社区,但他们说在 gwt 的下一个版本中,将涵盖 csp 合规性。

但在那之前,有谁知道,我该如何解决这个漏洞。

javascript java gwt content-security-policy

7
推荐指数
1
解决办法
731
查看次数

java8流和多个

我很好奇,如何在java8流中总结多个变量.

Integer wCPU = 0;
Double wnetwork = 0.0;
Double wMem = 0.0;

this.slaContractList.forEach(sla -> {
    wCPU += sla.getNumberOfCPUs();
    wnetwork += sla.getNetworkBandwith();
    wMem += sla.getMemory();
});
Run Code Online (Sandbox Code Playgroud)

但是,这不会编译,因为lambda表达式中的变量应该是final.

java collections sum java-8 java-stream

6
推荐指数
2
解决办法
5078
查看次数

Java G1GC突然系统使用率飙升100%

我们正在使用java 1.8.144_b_01.我们遇到一个问题,G1GC系统的使用突然出现例如:1到113,140,这比用户空间cpu的使用率非常高.

那时对象复制时间变得非常高〜正常的10倍,我经常看到以下日志:

2018-03-09T14:55:30.111 + 0530:45966.639:[GC暂停(G1撤离暂停)(年轻)(空间耗尽),2.1706858秒]

在此之后负载平均.开始飙升> 100,当我看到顶部时,我看到所有的cpu都是由sys空间占用的,而且大多数都显示100%.

所有这些突然发生〜每天在AWS上固定一段时间.有时应用程序运行10天没有问题,有时我们每天都会看到问题.使用模式每天都保持完全相同.

我接下来该怎么办?

   [Eden: 2656.0M(13.5G)->0.0B(13.7G) Survivors: 440.0M->592.0M Heap: 14.2G(23.2G)->2547.0M(23.8G)]
 [Times: user=0.00 sys=0.00, real=1.76 secs] 
2018-03-09T14:55:26.647+0530: 45963.175: [GC pause (GCLocker Initiated GC) (young) (initial-mark), 0.1116088 secs]
   [Parallel Time: 97.9 ms, GC Workers: 16]
      [GC Worker Start (ms): Min: 45963178.4, Avg: 45963178.6, Max: 45963178.8, Diff: 0.4]
      [Ext Root Scanning (ms): Min: 5.7, Avg: 6.6, Max: 12.7, Diff: 7.0, Sum: 104.9]
      [Update RS (ms): Min: 40.7, Avg: 47.1, Max: 47.7, Diff: 7.0, Sum: 753.2] …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection load g1gc

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

Query .list和.getResultList之间的区别

最近,如果您使用的是Hibernate 5.2或更高版本,则该Query::list()方法已被弃用.

现在,使用这两种方法有什么区别?

如果有人知道,请举例说明.

java hibernate java-ee

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