Skip to content

Commit 80dd6da

Browse files
authored
Merge pull request #10 from omec-project/dev-chunk-fix
cursor.Decode() will not give _id value but stream returns also fields
2 parents 731cfa4 + 374065b commit 80dd6da

File tree

5 files changed

+29
-21
lines changed

5 files changed

+29
-21
lines changed

drsm/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func (d *Drsm) ReleaseInt32ID(id int32) error {
8484
chunk, found := d.localChunkTbl[chunkId]
8585
if found == true {
8686
chunk.ReleaseIntID(id)
87-
logger.AppLog.Debugf("ID Released: ", id)
87+
logger.AppLog.Debugln("ID Released: ", id)
8888
return nil
8989
} else {
9090
chunk, found := d.scanChunks[chunkId]

drsm/chunk.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func (d *Drsm) GetNewChunk() (*chunk, error) {
4141
// Let's confirm if this gets updated in DB
4242
docId := fmt.Sprintf("chunkid-%d", cn)
4343
filter := bson.M{"_id": docId}
44-
update := bson.M{"_id": docId, "type": "chunk", "podId": d.clientId.PodName, "podIp": d.clientId.PodIp}
44+
update := bson.M{"_id": docId, "chunkId": docId, "type": "chunk", "podId": d.clientId.PodName, "podIp": d.clientId.PodIp}
4545
inserted := d.mongo.RestfulAPIPostOnly(d.sharedPoolName, filter, update)
4646
if inserted != true {
4747
log.Printf("Adding chunk %v failed. Retry again ", cn)
@@ -97,6 +97,7 @@ func (c *chunk) ReleaseIntID(id int32) {
9797
}
9898

9999
func getChunIdFromDocId(id string) int32 {
100+
log.Printf("id received: %v value", id)
100101
z := strings.Split(id, "-")
101102
if len(z) == 2 && z[0] == "chunkid" {
102103
cid, _ := strconv.ParseInt(z[1], 10, 32)

drsm/claim.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ package drsm
55

66
import (
77
"fmt"
8+
9+
"github.com/omec-project/util/logger"
810
"go.mongodb.org/mongo-driver/bson"
911
)
1012

@@ -13,12 +15,12 @@ func (d *Drsm) podDownDetected() {
1315
for {
1416
select {
1517
case p := <-d.podDown:
16-
fmt.Println("Pod Down detected ", p)
18+
logger.AppLog.Infoln("Pod Down detected ", p)
1719
// Given Pod find out current Chunks owned by this POD
1820
pd := d.podMap[p]
1921
for k, _ := range pd.podChunks {
2022
c, found := d.globalChunkTbl[k]
21-
fmt.Printf("Found : %v chunk : %v ", found, c)
23+
logger.AppLog.Debugf("Found : %v chunk : %v ", found, c)
2224
go c.claimChunk(d)
2325
}
2426
}
@@ -27,22 +29,22 @@ func (d *Drsm) podDownDetected() {
2729

2830
func (c *chunk) claimChunk(d *Drsm) {
2931
if d.mode != ResourceClient {
30-
fmt.Println("claimChunk ignored demux mode ")
32+
logger.AppLog.Infof("claimChunk ignored demux mode ")
3133
return
3234
}
3335
// try to claim. If success then notification will update owner.
34-
fmt.Println("claimChunk started")
36+
logger.AppLog.Debugf("claimChunk started")
3537
docId := fmt.Sprintf("chunkid-%d", c.Id)
3638
update := bson.M{"_id": docId, "type": "chunk", "podId": d.clientId.PodName, "podIp": d.clientId.PodIp}
3739
filter := bson.M{"_id": docId, "podId": c.Owner.PodName}
3840
updated := d.mongo.RestfulAPIPutOnly(d.sharedPoolName, filter, update)
3941
if updated == nil {
4042
// TODO : don't add to local pool yet. We can add it only if scan is done.
41-
fmt.Println("claimChunk success ")
43+
logger.AppLog.Debugf("claimChunk success")
4244
c.Owner.PodName = d.clientId.PodName
4345
c.Owner.PodIp = d.clientId.PodIp
4446
go c.scanChunk(d)
4547
} else {
46-
fmt.Println("claimChunk failure ")
48+
logger.AppLog.Debugf("claimChunk failure ")
4749
}
4850
}

drsm/scan.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,19 @@
44
package drsm
55

66
import (
7-
"log"
87
"time"
98

109
"github.com/omec-project/util/logger"
1110
)
1211

1312
func (c *chunk) scanChunk(d *Drsm) {
1413
if d.mode == ResourceDemux {
15-
logger.AppLog.Debugf("Don't perform scan task when demux mode is ON")
14+
logger.AppLog.Infof("Don't perform scan task when demux mode is ON")
1615
return
1716
}
1817

1918
if c.Owner.PodName != d.clientId.PodName {
20-
logger.AppLog.Debugf("Don't perform scan task if Chunk is not owned by us")
19+
logger.AppLog.Infof("Don't perform scan task if Chunk is not owned by us")
2120
return
2221
}
2322
c.State = Scanning
@@ -32,7 +31,7 @@ func (c *chunk) scanChunk(d *Drsm) {
3231
for {
3332
select {
3433
case <-ticker.C:
35-
log.Printf("Lets scan one by one id for %v , chunk details %v ", c.Id, c)
34+
logger.AppLog.Debugf("Lets scan one by one id for %v , chunk details %v ", c.Id, c)
3635
// TODO : find candidate and then scan that Id.
3736
// once all Ids are scanned then we can start using this block
3837
if c.resourceValidCb != nil {
@@ -51,13 +50,13 @@ func (c *chunk) scanChunk(d *Drsm) {
5150
c.State = Owned
5251
d.localChunkTbl[c.Id] = c
5352
delete(d.scanChunks, c.Id)
54-
log.Printf("Scan complete for Chunk %v", c.Id)
53+
logger.AppLog.Debugf("Scan complete for Chunk %v", c.Id)
5554
return
5655
}
5756
}
5857
//no one is writing on stopScan for now. We will use it eventually
5958
case <-c.stopScan:
60-
log.Printf("Received Stop Scan. Closing scan for %v", c.Id)
59+
logger.AppLog.Debugf("Received Stop Scan. Closing scan for %v", c.Id)
6160
return
6261
}
6362
}

drsm/updates.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ type UpdatedDesc struct {
2525
}
2626

2727
type FullStream struct {
28-
Id string `bson:"_id,omitempty"`
28+
Id string `bson:"_id"`
29+
ChunkId string `bson:"chunkId"`
2930
PodId string `bson:"podId,omitempty"`
3031
PodIp string `bson:"podIp,omitempty"`
3132
ExpireAt time.Time `bson:"expireAt,omitempty"`
@@ -160,7 +161,7 @@ func iterateChangeStream(d *Drsm, routineCtx context.Context, stream *mongo.Chan
160161
cp.Owner.PodIp = s.Update.UpdFields.PodIp
161162
podD := d.podMap[owner]
162163
podD.podChunks[c] = cp // add chunk to pod
163-
log.Printf("pod to chunk map %v ", podD.podChunks)
164+
logger.AppLog.Infof("Stream(Update): pod to chunk map %v ", podD.podChunks)
164165
}
165166
case "delete":
166167
logger.AppLog.Debugf("delete operations")
@@ -169,7 +170,7 @@ func iterateChangeStream(d *Drsm, routineCtx context.Context, stream *mongo.Chan
169170
// delete olnly gets document id
170171
pod, found := d.podMap[s.DId.Id]
171172
if pod != nil {
172-
log.Printf("Pod %v and found %v. Chunks owned by crashed pod = %v ", pod, found, pod.podChunks)
173+
logger.AppLog.Infof("Stream(Delete): Pod %v and found %v. Chunks owned by crashed pod = %v ", pod, found, pod.podChunks)
173174
d.podDown <- s.DId.Id
174175
}
175176
}
@@ -201,7 +202,7 @@ func (d *Drsm) punchLiveness() {
201202

202203
_, err := d.mongo.PutOneCustomDataStructure(d.sharedPoolName, filter, update)
203204
if err != nil {
204-
logger.AppLog.Debugf("put data failed : ", err)
205+
logger.AppLog.Errorf("put data failed : ", err)
205206
// TODO : should we panic ?
206207
continue
207208
}
@@ -219,12 +220,13 @@ func (d *Drsm) checkAllChunks() {
219220
case <-ticker.C:
220221
filter := bson.M{"type": "chunk"}
221222
result, err := d.mongo.RestfulAPIGetMany(d.sharedPoolName, filter)
223+
log.Printf("chunk entry: %v", result)
222224
if err == nil && result != nil {
223225
for _, v := range result {
224226
var s FullStream
225227
bsonBytes, _ := bson.Marshal(v)
226228
bson.Unmarshal(bsonBytes, &s)
227-
log.Printf("Individual bson Element %v ", s)
229+
logger.AppLog.Infof("Individual Chunk bson Element %v ", s)
228230
d.addChunk(&s)
229231
}
230232
}
@@ -240,6 +242,10 @@ func (d *Drsm) addChunk(full *FullStream) {
240242
pod = d.addPod(full)
241243
}
242244
did := full.Id
245+
if did == "" {
246+
did = full.ChunkId
247+
}
248+
logger.AppLog.Infof("received Chunk Doc: %v", full)
243249
cid := getChunIdFromDocId(did)
244250
o := PodId{PodName: full.PodId, PodIp: full.PodIp}
245251
c := &chunk{Id: cid, Owner: o}
@@ -248,14 +254,14 @@ func (d *Drsm) addChunk(full *FullStream) {
248254
pod.podChunks[cid] = c
249255
d.globalChunkTbl[cid] = c
250256

251-
log.Printf("Chunk id %v, pod.podChunks %v ", cid, pod.podChunks)
257+
logger.AppLog.Infof("Chunk id %v, podChunks %v ", cid, pod.podChunks)
252258
}
253259

254260
func (d *Drsm) addPod(full *FullStream) *podData {
255261
podI := PodId{PodName: full.PodId, PodIp: full.PodIp}
256262
pod := &podData{PodId: podI}
257263
pod.podChunks = make(map[int32]*chunk)
258264
d.podMap[full.PodId] = pod
259-
log.Printf("Keepalive insert d.podMaps %+v", d.podMap)
265+
logger.AppLog.Infof("Keepalive insert d.podMaps %+v", d.podMap)
260266
return pod
261267
}

0 commit comments

Comments
 (0)