mirror of
https://bitbucket.org/s_l_teichmann/mtsatellite
synced 2025-02-02 11:10:20 +01:00
Backed out changeset 2f388b07f19a (no measurable effect)
This commit is contained in:
parent
65119c1ee4
commit
c067fc0618
@ -6,7 +6,6 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
"sync"
|
|
||||||
|
|
||||||
"bitbucket.org/s_l_teichmann/mtsatellite/common"
|
"bitbucket.org/s_l_teichmann/mtsatellite/common"
|
||||||
|
|
||||||
@ -22,9 +21,6 @@ type LevelDBBackend struct {
|
|||||||
decoder common.KeyTranscoder
|
decoder common.KeyTranscoder
|
||||||
|
|
||||||
changeTracker *changeTracker
|
changeTracker *changeTracker
|
||||||
|
|
||||||
priorityCond *sync.Cond
|
|
||||||
priority int
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type LevelDBSession struct {
|
type LevelDBSession struct {
|
||||||
@ -75,7 +71,6 @@ func NewLeveDBBackend(
|
|||||||
encoder: encoder,
|
encoder: encoder,
|
||||||
decoder: decoder,
|
decoder: decoder,
|
||||||
changeTracker: changeTracker,
|
changeTracker: changeTracker,
|
||||||
priorityCond: sync.NewCond(new(sync.Mutex)),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if !interleaved {
|
if !interleaved {
|
||||||
@ -88,28 +83,6 @@ func NewLeveDBBackend(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ldb *LevelDBBackend) suspend() {
|
|
||||||
ldb.priorityCond.L.Lock()
|
|
||||||
for ldb.priority > 0 {
|
|
||||||
ldb.priorityCond.Wait()
|
|
||||||
}
|
|
||||||
ldb.priorityCond.L.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ldb *LevelDBBackend) grab() {
|
|
||||||
ldb.priorityCond.L.Lock()
|
|
||||||
ldb.priority++
|
|
||||||
ldb.priorityCond.L.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ldb *LevelDBBackend) ungrab() {
|
|
||||||
ldb.priorityCond.L.Lock()
|
|
||||||
if ldb.priority--; ldb.priority <= 0 {
|
|
||||||
ldb.priorityCond.Broadcast()
|
|
||||||
}
|
|
||||||
ldb.priorityCond.L.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ldb *LevelDBBackend) buildCoverage() error {
|
func (ldb *LevelDBBackend) buildCoverage() error {
|
||||||
log.Println("INFO: Start building coverage index (this may take some time)...")
|
log.Println("INFO: Start building coverage index (this may take some time)...")
|
||||||
|
|
||||||
@ -180,8 +153,6 @@ func (ldbs *LevelDBSession) Fetch(hash, key []byte) (value []byte, err error) {
|
|||||||
if key, err = ldbs.backend.decoder(key); err != nil {
|
if key, err = ldbs.backend.decoder(key); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ldbs.backend.grab()
|
|
||||||
defer ldbs.backend.ungrab()
|
|
||||||
ro := leveldb.NewReadOptions()
|
ro := leveldb.NewReadOptions()
|
||||||
value, err = ldbs.backend.db.Get(ro, key)
|
value, err = ldbs.backend.db.Get(ro, key)
|
||||||
//if err != nil {
|
//if err != nil {
|
||||||
@ -213,8 +184,6 @@ func (ldbs *LevelDBSession) Store(hash, key, value []byte) (exists bool, err err
|
|||||||
if key, err = ldbs.backend.decoder(key); err != nil {
|
if key, err = ldbs.backend.decoder(key); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ldbs.backend.grab()
|
|
||||||
defer ldbs.backend.ungrab()
|
|
||||||
if exists, err = keyExists(ldbs.backend.db, key); err != nil {
|
if exists, err = keyExists(ldbs.backend.db, key); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -356,7 +325,6 @@ func (ldbs *LevelDBSession) plainSpatialQuery(
|
|||||||
for _, r := range ldbs.backend.coverage.Query(c1, c2) {
|
for _, r := range ldbs.backend.coverage.Query(c1, c2) {
|
||||||
a.Z, b.Z = int16(r.Z), int16(r.Z)
|
a.Z, b.Z = int16(r.Z), int16(r.Z)
|
||||||
a.X, b.X = int16(r.X1), int16(r.X2)
|
a.X, b.X = int16(r.X1), int16(r.X2)
|
||||||
ldbs.backend.suspend()
|
|
||||||
for a.Y = r.Y2; a.Y >= r.Y1; a.Y-- {
|
for a.Y = r.Y2; a.Y >= r.Y1; a.Y-- {
|
||||||
b.Y = a.Y
|
b.Y = a.Y
|
||||||
// The keys in the database are stored and ordered as strings
|
// The keys in the database are stored and ordered as strings
|
||||||
@ -447,7 +415,6 @@ func (ldbs *LevelDBSession) interleavedSpatialQuery(
|
|||||||
it.Next()
|
it.Next()
|
||||||
} else {
|
} else {
|
||||||
next := common.BigMin(zmin, zmax, zcode)
|
next := common.BigMin(zmin, zmax, zcode)
|
||||||
ldbs.backend.suspend()
|
|
||||||
//log.Printf("seeking to: %d\n", next)
|
//log.Printf("seeking to: %d\n", next)
|
||||||
it.Seek(common.ToBigEndian(next))
|
it.Seek(common.ToBigEndian(next))
|
||||||
//log.Printf("seeking done: %d\n", next)
|
//log.Printf("seeking done: %d\n", next)
|
||||||
|
Loading…
Reference in New Issue
Block a user