/images/avatar.jpg
杂七杂八的,随手记录。

Coping with the TCP TIME-WAIT state on busy Linux servers

本文为摘录(或转载),侵删,原文为: https://vincent.bernat.ch/en/blog/2014-tcp-time-wait-state-linux#summary

1 TL;DR

  • 不用启用 net.ipv4.tcp_tw_recycle , 该选项已在 Linux4.12 废弃
  • 多数情况下, TIME-WAIT 状态的 socket 无害

2 About the TIME-WAIT state

2.1 TCP state diagram

http://tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF-2.htm

Data Structures in PG

Table of Contents

1 Hash & TapeSet

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

class LogicalTapeSet {
    + BufFile pfile
    + SharedFileSet fileset
    + int worker
    + long nBlocksAllocated
    + long nBlocksWritten
    + long nHoleBlocks
    + bool forgetFreeSpace
    + long freeBlocks
    + long nFreeBlocks
    + Size freeBlocksLen
    + bool enable_prealloc
}

class LogicalTape {
    + LogicalTapeSet tapeSet
    + bool writing
    + bool frozen
    + bool dirty
    + long firstBlockNumber
    + long curBlockNumber
    + long nextBlockNumber
    + long offsetBlockNumber
    + char buffer
    + int buffer_size
    + int max_size
    + int pos
    + int nbytes
    + long prealloc
    + int nprealloc
    + int prealloc_size
}



class BufFile {
    + int numFiles
    + File files
    + bool isInterXact
    + bool dirty
    + bool readOnly
    + FileSet fileset
    + const name
    + ResourceOwner resowner
    + int curFile
    + off_t curOffset
    + int pos
    + int nbytes
    + PGAlignedBlock buffer
}

LogicalTapeSet *-- BufFile

class HashAggSpill {
+ int npartitions
+ LogicalTape partitions
+ int64 ntuples
+ uint32 mask
+ int shift
+ hyperLogLogState hll_card
}


HashAggSpill *-- LogicalTape

LogicalTape - LogicalTapeSet

2 Slot & tuple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87

class TupleTableSlot {
  + NodeTag type
  + int tts_flags
  + AttrNumber tts_nvalid
  + const tts_ops
  + TupleDesc tts_tupleDescriptor
  + int tts_values
  + int tts_isnull
  + int tts_mcxt
  + ItemPointerData tts_tid
  + int tts_tableOid
}




class MinimalTupleData {
  + int t_len
  + char mt_padding
  + int t_infomask2
  + int t_infomask
  + int t_hoff
  + int t_bits
}


class HeapTupleHeaderData {
  + union t_choice
  + ItemPointerData t_ctid
  + int t_infomask2
  + int t_infomask
  + int t_hoff
  + int t_bits
}

class union {
  + HeapTupleFields t_heap
  + DatumTupleFields t_datum
}


HeapTupleHeaderData *-- union

class MinimalTupleTableSlot {
  + TupleTableSlot base
  + HeapTuple tuple
  + MinimalTuple mintuple
  + HeapTupleData minhdr
  + int off
}

class HeapTupleData {
  + int t_len
  + ItemPointerData t_self
  + int t_tableOid
  + HeapTupleHeader t_data
}


class VirtualTupleTableSlot {
  + TupleTableSlot base
  + char data
}

class HeapTupleTableSlot {
  + TupleTableSlot base
  + HeapTuple tuple
  + int off
  + HeapTupleData tupdata
}

class BufferHeapTupleTableSlot {
  + HeapTupleTableSlot base
  + Buffer buffer
}


TupleTableSlot <|-- MinimalTupleTableSlot
TupleTableSlot <|-- VirtualTupleTableSlot
TupleTableSlot <|-- HeapTupleTableSlot
HeapTupleTableSlot <|-- BufferHeapTupleTableSlot


MinimalTupleTableSlot *-- MinimalTupleData
HeapTupleTableSlot *-- HeapTupleData
HeapTupleData *-- HeapTupleHeaderData

Design Trade-offs for a Robust Dynamic Hybrid Hash Join

本文为摘录(或转载),侵删,原文为: attachments/pdf/f/p2257-jahangiri.pdf

1 ABSTRACT

  • 探索分片数量对 HHJ 性能的影响
  • propose a new lower bound for number of partitions
  • design and evaluate different partition insertion techniques to maximize memory utilization with the lest CPU cost

2 INTRODUCTION

  • HHJ: Hybrid Hash Join

google chrome in hyprland

1 google chrome in hyprland

Hyprland is cool, but it may not work smoothly on default Google Chrome. The borders appear distorted and blurry.

To resolve this issue, simply open the Chrome settings, navigate to appearance (chrome://settings/appearance), and enable “Use system title bar and borders.” Afterwards, restart the browser.

2 Weird crash when running chrome with: –gtk-version=4

This happens when use GTK theme as shown in above screenshot. Use classic them as a worksaround…

gp shared snapshot

Table of Contents

本文为摘录(或转载),侵删,原文为: ../../../Work/pg_gpdb/src/backend/utils/time/sharedsnapshot.c

在 Greenplum 中,作为切片计划的一部分,许多 PostgreSQL 进程(qExecs,QE)在单个段数据库上运行,作为同一用户 SQL 语句的一部分。属于特定用户在特定段数据库上的所有 qExecs 需要具有一致的可见性。为此,使用了一种称为“共享本地快照”(Shared Local Snapshot)的思想。共享内存数据结构 SharedSnapshotSlot 在特定数据库实例上的会话的统一流程(gang processes)之间共享会话和事务信息。这些流程被称为 SegMate 进程组。