Skip to content
This repository was archived by the owner on May 24, 2024. It is now read-only.

Commit 2967014

Browse files
reduce memory usage in large repos (#94)
Signed-off-by: Ayman <enkhalifapro@gmail.com> Co-authored-by: Ayman <enkhalifapro@gmail.com>
1 parent 5d74d8a commit 2967014

File tree

3 files changed

+47
-5
lines changed

3 files changed

+47
-5
lines changed

cmd/git/git.go

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3453,7 +3453,7 @@ func (j *DSGit) createYearCacheFile(cache []CommitCache, path string) error {
34533453
if err != nil {
34543454
return err
34553455
}
3456-
3456+
cachedCommits = make(map[string]CommitCache)
34573457
err = j.cacheProvider.UpdateMultiPartFileByKey(j.endpoint, cacheFile)
34583458
if err != nil {
34593459
return err
@@ -3463,7 +3463,7 @@ func (j *DSGit) createYearCacheFile(cache []CommitCache, path string) error {
34633463
if err != nil {
34643464
return err
34653465
}
3466-
3466+
loadCacheToMemory(records)
34673467
if len(nextYearCache) > 0 {
34683468
CurrentCacheYear = nextYearCache[0].CommitDate.Year()
34693469
if err = j.createYearCacheFile(nextYearCache, path); err != nil {
@@ -3684,6 +3684,48 @@ func (j *DSGit) getYearCache(lastSync string) {
36843684
}
36853685
}
36863686

3687+
func loadCacheToMemory(records [][]string) {
3688+
lastSync := os.Getenv("LAST_SYNC")
3689+
for i, record := range records {
3690+
if i == 0 {
3691+
continue
3692+
}
3693+
orphaned, err := strconv.ParseBool(record[5])
3694+
if err != nil {
3695+
orphaned = false
3696+
}
3697+
if lastSync != "" {
3698+
orphaned = true
3699+
}
3700+
3701+
var fromDL bool
3702+
if len(record) > 6 {
3703+
fromDL, err = strconv.ParseBool(record[6])
3704+
if err != nil {
3705+
fromDL = false
3706+
}
3707+
}
3708+
3709+
var content string
3710+
if len(record) > 7 {
3711+
if record[7] != "" {
3712+
content = record[7]
3713+
}
3714+
}
3715+
3716+
cachedCommits[record[4]] = CommitCache{
3717+
Timestamp: record[0],
3718+
EntityID: record[1],
3719+
SourceEntityID: record[2],
3720+
FileLocation: record[3],
3721+
Hash: record[4],
3722+
Orphaned: orphaned,
3723+
FromDL: fromDL,
3724+
Content: content,
3725+
}
3726+
}
3727+
}
3728+
36873729
func isCommitCreated(id string) bool {
36883730
_, ok := cachedCommits[id]
36893731
return ok

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/LF-Engineering/insights-datasource-git
33
go 1.17
44

55
require (
6-
github.com/LF-Engineering/insights-datasource-shared v1.5.30-0.20230408041536-83d398cfb211
6+
github.com/LF-Engineering/insights-datasource-shared v1.5.30-0.20230410030513-945f1d5a92a4
77
github.com/LF-Engineering/lfx-event-schema v0.1.37
88
github.com/aws/aws-lambda-go v1.27.1
99
github.com/aws/aws-sdk-go v1.42.25

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
2-
github.com/LF-Engineering/insights-datasource-shared v1.5.30-0.20230408041536-83d398cfb211 h1:Km27TFC9d8JJSE7IWkcOOVv6v3HqonsyOe0JK1F4p1Q=
3-
github.com/LF-Engineering/insights-datasource-shared v1.5.30-0.20230408041536-83d398cfb211/go.mod h1:9DmFQbC8nnm1C7k+/tDo3Rmqzzx7AzmhPBlFouXaBZ8=
2+
github.com/LF-Engineering/insights-datasource-shared v1.5.30-0.20230410030513-945f1d5a92a4 h1:q9DZVrh19QzM0s6EEbAHFkf51Ubw4jw5g1qlKASlHvc=
3+
github.com/LF-Engineering/insights-datasource-shared v1.5.30-0.20230410030513-945f1d5a92a4/go.mod h1:9DmFQbC8nnm1C7k+/tDo3Rmqzzx7AzmhPBlFouXaBZ8=
44
github.com/LF-Engineering/lfx-event-schema v0.1.14/go.mod h1:CfFIZ4mwzo88umf5+KxDQEzqlVkPG7Vx8eLK2oDfWIs=
55
github.com/LF-Engineering/lfx-event-schema v0.1.37 h1:ny46D2NdCXokvJZ01GJcw2RfQM64ousJjaYsrRj5zzg=
66
github.com/LF-Engineering/lfx-event-schema v0.1.37/go.mod h1:CfFIZ4mwzo88umf5+KxDQEzqlVkPG7Vx8eLK2oDfWIs=

0 commit comments

Comments
 (0)