Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
Questdb
提交
06cb9443
Q
Questdb
项目概览
jobily
/
Questdb
11 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
Questdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
06cb9443
编写于
10月 29, 2021
作者:
A
Alex Pelagenko
提交者:
GitHub
10月 29, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(cairo): 6.1 migration issues (#1494)
上级
9b3651f2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
1 deletion
+28
-1
core/src/main/java/io/questdb/cairo/mig/Mig607.java
core/src/main/java/io/questdb/cairo/mig/Mig607.java
+25
-0
core/src/main/java/io/questdb/cairo/mig/Mig608.java
core/src/main/java/io/questdb/cairo/mig/Mig608.java
+3
-1
未找到文件。
core/src/main/java/io/questdb/cairo/mig/Mig607.java
浏览文件 @
06cb9443
...
...
@@ -42,6 +42,8 @@ final class Mig607 {
path
.
trimTo
(
plen
).
concat
(
META_FILE_NAME
).
$
();
long
metaFileSize
;
long
txFileSize
;
try
(
MemoryMARW
metaMem
=
migrationContext
.
getRwMemory
())
{
metaMem
.
of
(
ff
,
path
,
ff
.
getPageSize
(),
ff
.
length
(
path
),
MemoryTag
.
NATIVE_DEFAULT
);
final
int
columnCount
=
metaMem
.
getInt
(
0
);
...
...
@@ -143,7 +145,30 @@ final class Mig607 {
denseSymbolCount
++;
}
}
txFileSize
=
txMem
.
getAppendOffset
();
}
metaFileSize
=
metaMem
.
getAppendOffset
();
}
// This migration when written originally used implementation of MemoryMARW which truncated files to size on close
// MemoryMARW now truncate to page size. To test old migrations here we simulate the migration as it is originally released
// So trim TX and META files to their sizes
path
.
trimTo
(
plen
).
concat
(
META_FILE_NAME
).
$
();
trimFile
(
ff
,
path
,
metaFileSize
);
path
.
trimTo
(
plen
).
concat
(
TXN_FILE_NAME
).
$
();
trimFile
(
ff
,
path
,
txFileSize
);
}
private
static
void
trimFile
(
FilesFacade
ff
,
Path
path
,
long
size
)
{
long
fd
=
TableUtils
.
openFileRWOrFail
(
ff
,
path
);
if
(!
ff
.
truncate
(
fd
,
size
))
{
// This should never happens on migration but better to be on safe side anyway
throw
CairoException
.
instance
(
ff
.
errno
()).
put
(
"Cannot trim to size [file="
).
put
(
path
).
put
(
']'
);
}
if
(!
ff
.
close
(
fd
))
{
// This should never happens on migration but better to be on safe side anyway
throw
CairoException
.
instance
(
ff
.
errno
()).
put
(
"Cannot close [file="
).
put
(
path
).
put
(
']'
);
}
}
...
...
core/src/main/java/io/questdb/cairo/mig/Mig608.java
浏览文件 @
06cb9443
...
...
@@ -85,7 +85,7 @@ final class Mig608 {
o
=
offset
+
thatMetaColumnDataSize
*
(
columnCount
-
1
);
long
o2
=
offset
+
thisMetaColumnDataSize
*
(
columnCount
-
1
);
final
Rnd
rnd
=
SharedRandom
.
getRandom
(
migrationContext
.
getConfiguration
());
while
(
o
>
offset
)
{
while
(
o
>
=
offset
)
{
rwMem
.
putInt
(
o2
,
rwMem
.
getInt
(
o
));
// type
rwMem
.
putLong
(
o2
+
4
,
rwMem
.
getInt
(
o
+
4
));
// flags
rwMem
.
putInt
(
o2
+
12
,
rwMem
.
getInt
(
o
+
12
));
// index block capacity
...
...
@@ -93,6 +93,7 @@ final class Mig608 {
o
-=
thatMetaColumnDataSize
;
o2
-=
thisMetaColumnDataSize
;
}
rwMem
.
jumpTo
(
newNameOffset
+
nameSegmentLen
);
}
// update _txn file
...
...
@@ -119,6 +120,7 @@ final class Mig608 {
long
thatSize
=
thatTxOffsetMapWriterCount
+
4
+
symbolCount
*
8L
+
4L
+
partitionTableSize
;
long
thisSize
=
thisTxOffsetMapWriterCount
+
4
+
symbolCount
*
8L
+
4L
+
partitionTableSize
;
txMem
.
extend
(
thisSize
);
txMem
.
jumpTo
(
thisSize
);
Vect
.
memmove
(
txMem
.
addressOf
(
thisTxOffsetMapWriterCount
),
txMem
.
addressOf
(
thatTxOffsetMapWriterCount
),
thatSize
-
thatTxOffsetMapWriterCount
);
// zero out reserved area
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录