无法使Star-Schema DBMS基准数据生成器正常运行 [英] Can't manage to get the Star-Schema DBMS benchmark data generator to run properly

查看:217
本文介绍了无法使Star-Schema DBMS基准数据生成器正常运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一种常用的(?)DBMS基准称为SSB,星标-架构基准测试。要运行它,您需要生成自己的架构,即其中包含数据的表。好吧,有一个生成器程序可以在各种各样的地方找到(在github上):

One of the commonly (?) used DBMS benchmarks is called SSB, the Star-Schema Benchmark. To run it, you need to generate your schema, i.e. your tables with the data in them. Well, there's a generator program you can find in all sorts of places (on github):

  • https://github.com/rxin/ssb-dbgen
  • https://code.google.com/p/gpudb/source/checkout (then under tests/ssb/dbgen or something)
  • https://github.com/electrum/ssb-dbgen/

以及其他位置。我不确定它们的代码是否完全相同,但是我似乎在遇到同样的问题。我使用的是Linux 64位系统(如果有帮助,请使用Kubuntu 14.04);并且正在尝试从该软件包中构建并运行`dbgen'程序。

and possibly elsewhere. I'm not sure those all have exactly the same code, but I seem to be experiencing the same problem with them. I'm using a Linux 64-bit system (Kubuntu 14.04 if that helps); and am trying to build and run the `dbgen' program from that package.

构建时,我会收到与类型/大小相关的警告:

When building, I get type/size-related warnings:

me@myhost:~/src/ssb-dbgen$ make
... etc. etc. ...
gcc -O -DDBNAME=\"dss\" -DLINUX -DDB2 -DSSBM   -c -o varsub.o varsub.c
rnd.c: In function גrow_stopג:
rnd.c:60:6: warning: format ג%dג expects argument of type גintג, but argument 4 has type גlong intג [-Wformat=]
      i, Seed[i].usage);
      ^
driver.c: In function גpartialג:
driver.c:606:4: warning: format ג%dג expects argument of type גintג, but argument 4 has type גlong intג [-Wformat=]
... etc. etc. ...

然后,我确保所有正确的文件都到位,尝试生成我的表,仅获取其中两个!我尝试显式生成LINEORDER表,并遇到一个奇怪的失败:

Then, I make sure all the right files are in place, try to generate my tables, and only get two of them! I try to explicitly generate the LINEORDER table, and get a strange failure:

eyal@vivaldi:~/src/ssb-dbgen$ ls
bcd2.c      build.c    driver.c    HISTORY         makefile_win   print.c  rnd.c                      speed_seed.o      varsub.c
bcd2.h      build.o    driver.o    history.html    mkf.macos      print.o  rnd.h                      ssb-dbgen-master  varsub.o
bcd2.o      CHANGES    dss.ddl     load_stub.c     permute.c      qgen     rnd.o                      text.c
bm_utils.c  config.h   dss.h       load_stub.o     permute.h      qgen.c   rxin-ssb-dbgen-master.zip  text.o
bm_utils.o  dbgen      dss.ri      Makefile        permute.o      qgen.o   shared.h                   tpcd.h
BUGS        dists.dss  dsstypes.h  makefile.suite  PORTING.NOTES  README   speed_seed.c               TPCH_README
me@myhost:~/src/ssb-dbgen$ ./dbgen -vfF -s 1
SSBM (Star Schema Benchmark) Population Generator (Version 1.0.0)
Copyright Transaction Processing Performance Council 1994 - 2000
Generating data for suppliers table [pid: 32303]done.
Generating data for customers table [pid: 32303]done.
Generating data for (null) [pid: 32303]done.
Generating data for (null) [pid: 32303]done.
Generating data for (null) [pid: 32303]done.
Generating data for (null) [pid: 32303]done.
me@myhost:~/src/ssb-dbgen$ ls *.tbl
customer.tbl  supplier.tbl
me@myhost:~/src/ssb-dbgen$ ./dbgen -vfF -s 1 -T l
SSBM (Star Schema Benchmark) Population Generator (Version 1.0.0)
Copyright Transaction Processing Performance Council 1994 - 2000
Generating data for lineorder table [pid: 32305]*** buffer overflow detected ***: ./dbgen terminated
======= Backtrace: =========
... etc. etc. ...
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fcea1b79ec5]
./dbgen[0x401219]
======= Memory map: ========
... etc. etc. ...



<现在,如果我切换到32位Linux系统,则不会收到任何这些警告(尽管有两个关于指针到非指针转换的警告);但是再次运行该生成只产生两个表。现在,可以制作其他单独的表格了,但它们根本不对应,我想...

Now, if I switch to a 32-bit Linux system, I don't get any of these warnings (although there two warnings about pointer-to-non-pointer conversion); but running the generation again produces only two tables. Now, other individual tables can be produced - but they don't correspond to one another at all, I would think...

有人遇到过类似的问题吗?难道我做错了什么?我是否以某种方式使用了错误的来源?

Has anyone encountered a similar problem? Am I doing something wrong? Am I using the wrong sources somehow?

(这几乎是
SSB dbgen Linux-分段错误
...但是当他们遇到其他问题时,我无法接管其他人的问题比我的问题还大。此外,那个人没有答案...)

推荐答案

所以,最终,我结束了在GitHub上调查ssb-dbgen的所有版本,并创建统一的存储库:

So, eventually, I ended up surveying all versions of ssb-dbgen on GitHub, and creating a unified repository:

https://github.com/eyalroz/ssb-dbgen/

此存储库:


  1. 并入所有这些版本的bug的修复,以及其他一些版本。特别是,由于Linux和Windows(用于64位计算机)上的 int 大小不同,格式不匹配为已解决

  2. 将构建切换为使用CMake,而不需要手动编辑 Makefile s。具体来说,支持在Windows和MacOS上构建。在理论上支持在更多奇特的系统上构建。

  3. 已对提交进行CI生成测试,以确保至少该建筑物不会损坏。

  1. incorporates fixes for all bugs fixed in any of those versions, and a few others. In particular, the format mismatch due to different int sizes on Linux and Windows for 64-bit machines is resolved.
  2. Switches the build to using CMake, rather than needing to manually edit Makefiles. Specifically, building on Windows and MacOS is supported. Building on more exotic systems is theoretically supported.
  3. has CI build testing of commits to make sure that at least the building doesn't break.

这篇关于无法使Star-Schema DBMS基准数据生成器正常运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆