Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
MKCLOS
Core Development Platform
corepkgv2
Commits
ced2b094
Commit
ced2b094
authored
5 years ago
by
Akshay Bharambe
Browse files
Options
Downloads
Patches
Plain Diff
Add: Lazy writer for append bucket
1. Add: Lazy writer for append bucket
parent
fb8a9b48
2 merge requests
!159
Mep release 060220
,
!157
Add: Lazywriter support for Normal and append bucket
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
dalmdl/corefdb/bucket.go
+29
-5
dalmdl/corefdb/bucket.go
with
29 additions
and
5 deletions
dalmdl/corefdb/bucket.go
+
29
−
5
View file @
ced2b094
...
@@ -568,8 +568,8 @@ var lazyCallBackFn lazywriter.SaveDataFn = func(bucketId string, data *lazywrite
...
@@ -568,8 +568,8 @@ var lazyCallBackFn lazywriter.SaveDataFn = func(bucketId string, data *lazywrite
dataByte
:=
[]
byte
(
dataObj
.
Get
(
"data"
)
.
String
())
dataByte
:=
[]
byte
(
dataObj
.
Get
(
"data"
)
.
String
())
var
err
error
var
err
error
switch
bucketType
{
switch
bucketType
{
case
BucketTypeSimple
:
//
case BucketTypeSimple:
err
=
filemdl
.
WriteFile
(
data
.
FileName
,
dataByte
,
true
,
true
)
//
err = filemdl.WriteFile(data.FileName, dataByte, true, true)
case
BucketTypeAppend
:
case
BucketTypeAppend
:
_
,
_
,
err
=
filemdl
.
AppendDataToFile
(
data
.
FileName
,
dataByte
,
true
)
_
,
_
,
err
=
filemdl
.
AppendDataToFile
(
data
.
FileName
,
dataByte
,
true
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -588,7 +588,7 @@ var lazyCallBackFn lazywriter.SaveDataFn = func(bucketId string, data *lazywrite
...
@@ -588,7 +588,7 @@ var lazyCallBackFn lazywriter.SaveDataFn = func(bucketId string, data *lazywrite
}
}
func
saveDatInLazyBucket
(
bucket
*
Bucket
,
fp
*
os
.
File
,
data
*
gjson
.
Result
,
secParams
securitymdl
.
FDBSecParams
)
error
{
func
saveDatInLazyBucket
(
bucket
*
Bucket
,
fp
*
os
.
File
,
data
*
gjson
.
Result
,
secParams
securitymdl
.
FDBSecParams
)
error
{
if
bucket
.
BucketType
!
=
BucketTypeSimple
{
if
!
(
bucket
.
BucketType
=
=
BucketTypeSimple
||
bucket
.
BucketType
==
BucketTypeAppend
)
{
return
errormdl
.
Wrap
(
"save to lazy cache operation not allowed on this bucket type: "
+
bucket
.
BucketType
)
return
errormdl
.
Wrap
(
"save to lazy cache operation not allowed on this bucket type: "
+
bucket
.
BucketType
)
}
}
...
@@ -612,7 +612,13 @@ func saveDatInLazyBucket(bucket *Bucket, fp *os.File, data *gjson.Result, secPar
...
@@ -612,7 +612,13 @@ func saveDatInLazyBucket(bucket *Bucket, fp *os.File, data *gjson.Result, secPar
FileName
:
fp
.
Name
(),
FileName
:
fp
.
Name
(),
Identifier
:
fp
.
Name
(),
Identifier
:
fp
.
Name
(),
InterfaceData
:
""
,
InterfaceData
:
""
,
SaveFn
:
(
lazySec
{
secParams
})
.
SaveFnForNormalBucket
,
SaveFn
:
func
()
lazywriter
.
SaveDataFn
{
if
bucket
.
BucketType
==
BucketTypeSimple
{
return
lazyCallBackFn
}
return
(
lazySec
{
secParams
})
.
SaveFnForNormalBucket
}(),
}
}
}
}
...
@@ -625,7 +631,25 @@ func saveDatInLazyBucket(bucket *Bucket, fp *os.File, data *gjson.Result, secPar
...
@@ -625,7 +631,25 @@ func saveDatInLazyBucket(bucket *Bucket, fp *os.File, data *gjson.Result, secPar
case
BucketTypeAppend
:
case
BucketTypeAppend
:
prevDataObj
:=
gjson
.
Parse
(
prevDataStr
)
prevDataObj
:=
gjson
.
Parse
(
prevDataStr
)
prevData
:=
prevDataObj
.
Get
(
"data"
)
.
String
()
prevData
:=
prevDataObj
.
Get
(
"data"
)
.
String
()
updatedData
=
prevData
+
data
.
String
()
+
string
(
lineBreak
)
dataToSave
:=
data
.
String
()
rs
:=
gjson
.
Parse
(
dataToSave
)
if
secParams
.
EnableSecurity
{
// _, fileName := filepath.Split(f.Name())
key
,
err
:=
securitymdl
.
GenSecKeyBytes
(
fp
.
Name
(),
&
rs
)
if
err
!=
nil
{
loggermdl
.
LogError
(
"failed to generate security key for append bucket: "
,
err
)
return
err
}
dataBytes
,
err
:=
encryptWithCompression
([]
byte
(
dataToSave
),
secParams
.
EnableCompression
,
key
)
if
err
!=
nil
{
loggermdl
.
LogError
(
"failed to encrypt data for append bucket: "
,
err
)
return
err
}
dataToSave
=
string
(
dataBytes
)
}
updatedData
=
prevData
+
dataToSave
+
string
(
lineBreak
)
default
:
default
:
return
errormdl
.
Wrap
(
"operation not allowed on this bucket type: "
+
bucket
.
BucketType
)
return
errormdl
.
Wrap
(
"operation not allowed on this bucket type: "
+
bucket
.
BucketType
)
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets