Sparql 大师:当我得到';检查点已删除**MB重新映射的页面,留下*MB';

Sparql 大师:当我得到';检查点已删除**MB重新映射的页面,留下*MB';,sparql,freebase,virtuoso,Sparql,Freebase,Virtuoso,我正在将freebase文件加载到virtuoso中。我有88个文件夹。每个文件夹包含4个文件。我这样划分文件是因为我只有8GB的RAM 艺术大师 消息 检查点删除了628MB的重新映射页面,剩下31MB。持续时间31.21秒。若要节省此时间,请在ini文件中增加MaxCheckpointRemap和/或将Unremap配额设置为0 问题: 为什么我会收到这个信息?它会影响加载过程和数据库的构建吗 更新 艺术大师 这最好的解释是在中,但简而言之: virtuoso.ini文件中的Max

我正在将freebase文件加载到virtuoso中。我有88个文件夹。每个文件夹包含4个文件。我这样划分文件是因为我只有8GB的RAM


艺术大师
消息 检查点删除了628MB的重新映射页面,剩下31MB。持续时间31.21秒。若要节省此时间,请在ini文件中增加MaxCheckpointRemap和/或将Unremap配额设置为0


问题: 为什么我会收到这个信息?它会影响加载过程和数据库的构建吗


更新
艺术大师
这最好的解释是在中,但简而言之:

virtuoso.ini文件中的MaxCheckpointRemap参数控制 许多页面可能存储在其逻辑页面以外的页面上


这意味着增加参数将节省您在检查点上的工作(和时间),但会减少数据局部性功能(插入在一起的数据会保存在一起)。

我想我应该提到的一些奇怪的事情:您的
virtuoso.ini
包含一个古老的注释片段。如果您有一个当前的virtuoso版本,您应该使用一个更新的默认ini文件并对其进行修改。如果没有:更新virtuoso!您似乎将
[数据库]
部分的
NumberOfBuffers
的重要设置与
MaxCheckpointRemap
混淆了!在bash脚本中,运行
rdf\u loader\u run()
88次。实际上,您应该只能运行循环中的所有
ld\u dir
行,因为它们只注册要加载的文件,然后运行
rdf\u loader\u run
一次!这应该快得多。更重要的是:您可以运行
ld\u dir\u all
并完全摆脱循环。在对文件进行流处理时,您不必将其拆分为适合内存的块。因此,只要您的
virtuoso.ini
设置正确,virtuoso应该自己处理所有这些!你能检查一下更新吗。请让我知道它是否正确看起来更好,即使我不知道你从哪里得到的想法,手动禁用和重新启用索引给你带来了任何好处。通常,
rdf\u loader\u run()
函数会执行必要的操作以使导入顺利进行。检查点不会“清除”RAM(空闲RAM是浪费的RAM)。检查点强制将数据库状态写入磁盘上的单个一致映像中,清空事务日志等(),在大容量导入期间,您可能不希望每分钟都这样做。从手动禁用和重新启用索引中您可以获得任何好处。伙计,你很好,谢了
#!/bin/bash
for i in {1..88}
do
  isql 1111 dba dba exec="ld_dir('/data/data/${i}', '*.nt', 'http://freebase.com');"
  isql 1111 dba dba exec="rdf_loader_run();" 
  isql 1111 dba dba exec="checkpoint;"
  isql 1111 dba dba exec="commit WORK;"
  isql 1111 dba dba exec="checkpoint;"
  isql 1111 dba dba exec="delete from DB.DBA.load_list;"
done
# each buffer caches a 8K page of data and occupies approx. 8700 bytes of memory
# it's suggested to set this value to 65 % of ram for a db only server
# so if you have 32 GB of ram: 32*1000^3*0.65/8700 = 2390804
# default is 2000 which will use 16 MB ram
[Database]
MaxCheckpointRemap = 150000 (I have 8GB of RAM)
[TempDatabase]
MaxCheckpointRemap      = 2000
NumberOfBuffers          = 170000
MaxDirtyBuffers          = 130000
    #!/bin/bash
   
    #clear list
    isql 1111 dba dba exec="delete from DB.DBA.load_list;"
    #load data
    isql 1111 dba dba exec="ld_dir('/data/data, '*.gz', 'http://freebase.com');"
    isql 1111 dba dba exec="set isolation='uncommitted';"
    isql 1111 dba dba exec="rdf_loader_run();" 
    #checkpoint
    isql 1111 dba dba exec="checkpoint;"
    isql 1111 dba dba exec="commit WORK;"
    isql 1111 dba dba exec="checkpoint;"
MaxCheckpointRemap       = 150000 (8GB RAM)
# Uncomment next two lines if there is 4 GB system memory free
NumberOfBuffers          = 340000
MaxDirtyBuffers          = 250000
# I have 6 cores
ThreadsPerQuery         = 4
AsyncQueueMaxThreads        = 10
#NO THREADS LEFT IN THE QUEUE
ThreadCleanupInterval       = 0
ThreadThreshold         = 0
#check point every 30 minutes.
CheckpointInterval      = 30