counters
This commit is contained in:
parent
c3ff3602d0
commit
eb96ec3677
29
zimmer.js
29
zimmer.js
|
@ -69,8 +69,6 @@ var out // output file writer
|
||||||
var indexerDb
|
var indexerDb
|
||||||
var dirQueue
|
var dirQueue
|
||||||
|
|
||||||
var articleCount = 0
|
|
||||||
|
|
||||||
let preProcessed = false
|
let preProcessed = false
|
||||||
|
|
||||||
var mainPage = {}
|
var mainPage = {}
|
||||||
|
@ -93,8 +91,8 @@ var header = {
|
||||||
versionMajor: 5,
|
versionMajor: 5,
|
||||||
versionMinor: 0,
|
versionMinor: 0,
|
||||||
uuid: uuidv4( {}, Buffer.alloc( 16 )), // integer 8 16 unique id of this zim file
|
uuid: uuidv4( {}, Buffer.alloc( 16 )), // integer 8 16 unique id of this zim file
|
||||||
articleCount: null, // integer 24 4 total number of articles
|
articleCount: 0, // integer 24 4 total number of articles
|
||||||
clusterCount: null, // integer 28 4 total number of clusters
|
clusterCount: 0, // integer 28 4 total number of clusters
|
||||||
urlPtrPos: null, // integer 32 8 position of the directory pointerlist ordered by URL
|
urlPtrPos: null, // integer 32 8 position of the directory pointerlist ordered by URL
|
||||||
titlePtrPos: null, // integer 40 8 position of the directory pointerlist ordered by Title
|
titlePtrPos: null, // integer 40 8 position of the directory pointerlist ordered by Title
|
||||||
clusterPtrPos: null, // integer 48 8 position of the cluster pointer list
|
clusterPtrPos: null, // integer 48 8 position of the cluster pointer list
|
||||||
|
@ -325,8 +323,8 @@ var ClusterSizeThreshold = 4 * 1024 * 1024
|
||||||
// ClusterSizeThreshold = 2 * 1024
|
// ClusterSizeThreshold = 2 * 1024
|
||||||
|
|
||||||
class Cluster {
|
class Cluster {
|
||||||
constructor ( id, compressible ) {
|
constructor ( compressible ) {
|
||||||
this.id = id
|
this.id = header.clusterCount ++
|
||||||
this.compressible = compressible
|
this.compressible = compressible
|
||||||
this.blobs = []
|
this.blobs = []
|
||||||
this.size = 0
|
this.size = 0
|
||||||
|
@ -407,9 +405,8 @@ class Cluster {
|
||||||
// ClusterWriter
|
// ClusterWriter
|
||||||
//
|
//
|
||||||
var ClusterWriter = {
|
var ClusterWriter = {
|
||||||
count: 2,
|
true: new Cluster( true ), // compressible cluster
|
||||||
true: new Cluster( 0, true ), // compressible cluster
|
false: new Cluster( false ), // uncompressible cluster
|
||||||
false: new Cluster( 1, false ), // uncompressible cluster
|
|
||||||
pool: genericPool.createPool(
|
pool: genericPool.createPool(
|
||||||
{
|
{
|
||||||
create () { return Promise.resolve( Symbol() ) },
|
create () { return Promise.resolve( Symbol() ) },
|
||||||
|
@ -427,7 +424,7 @@ var ClusterWriter = {
|
||||||
var blobNum = cluster.append( data )
|
var blobNum = cluster.append( data )
|
||||||
|
|
||||||
if ( blobNum === false ) { // store to a new cluster
|
if ( blobNum === false ) { // store to a new cluster
|
||||||
ClusterWriter[ compressible ] = new Cluster( ClusterWriter.count ++, compressible )
|
ClusterWriter[ compressible ] = new Cluster( compressible )
|
||||||
const ready = ClusterWriter.pool.acquire()
|
const ready = ClusterWriter.pool.acquire()
|
||||||
|
|
||||||
ready.then( token => cluster.save()
|
ready.then( token => cluster.save()
|
||||||
|
@ -470,7 +467,7 @@ var ClusterWriter = {
|
||||||
ORDER BY id
|
ORDER BY id
|
||||||
;
|
;
|
||||||
`,
|
`,
|
||||||
8, 'offset', ClusterWriter.count, 'storeClusterIndex'
|
8, 'offset', header.clusterCount, 'storeClusterIndex'
|
||||||
)
|
)
|
||||||
.then( offset => header.clusterPtrPos = offset )
|
.then( offset => header.clusterPtrPos = offset )
|
||||||
},
|
},
|
||||||
|
@ -574,7 +571,7 @@ class Item {
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
}
|
}
|
||||||
|
|
||||||
articleCount++
|
header.articleCount++
|
||||||
|
|
||||||
const isRedirect = redirectTarget != null // redirect dirEntry is shorter in 4 bytes
|
const isRedirect = redirectTarget != null // redirect dirEntry is shorter in 4 bytes
|
||||||
var buf = Buffer.allocUnsafe( isRedirect ? 12 : 16 )
|
var buf = Buffer.allocUnsafe( isRedirect ? 12 : 16 )
|
||||||
|
@ -1286,7 +1283,7 @@ function storeUrlIndex () {
|
||||||
USING (id)
|
USING (id)
|
||||||
ORDER BY urlSorted.rowid
|
ORDER BY urlSorted.rowid
|
||||||
;`,
|
;`,
|
||||||
8, 'offset', articleCount, 'storeUrlIndex'
|
8, 'offset', header.articleCount, 'storeUrlIndex'
|
||||||
)
|
)
|
||||||
.then( offset => header.urlPtrPos = offset )
|
.then( offset => header.urlPtrPos = offset )
|
||||||
}
|
}
|
||||||
|
@ -1310,7 +1307,7 @@ function storeTitleIndex () {
|
||||||
'USING (id) ' +
|
'USING (id) ' +
|
||||||
'ORDER BY titleKey ' +
|
'ORDER BY titleKey ' +
|
||||||
';',
|
';',
|
||||||
4, 'articleNumber', articleCount, 'storeTitleIndex'
|
4, 'articleNumber', header.articleCount, 'storeTitleIndex'
|
||||||
)
|
)
|
||||||
.then( offset => header.titlePtrPos = offset )
|
.then( offset => header.titlePtrPos = offset )
|
||||||
}
|
}
|
||||||
|
@ -1338,11 +1335,9 @@ function getMimeTypes () {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getHeader () {
|
function getHeader () {
|
||||||
header.articleCount = articleCount
|
|
||||||
header.clusterCount = ClusterWriter.count
|
|
||||||
header.mainPage = mainPage.target || header.mainPage
|
header.mainPage = mainPage.target || header.mainPage
|
||||||
|
|
||||||
//~ log( 'Header', 'articleCount', articleCount, 'clusterCount', ClusterWriter.count, 'mainPage', mainPage )
|
//~ log( 'Header', 'articleCount', header.articleCount, 'clusterCount', header.clusterCount, 'mainPage', mainPage )
|
||||||
log( 'Header', header )
|
log( 'Header', header )
|
||||||
|
|
||||||
var buf = Buffer.alloc( headerLength )
|
var buf = Buffer.alloc( headerLength )
|
||||||
|
|
Loading…
Reference in New Issue
Block a user