Compare commits

..

No commits in common. "msgMetric" and "trunk" have entirely different histories.

4 changed files with 7 additions and 14 deletions

View File

@ -12,6 +12,7 @@ import (
type counter struct {
startTime time.Time
count uint64
total uint64
}
// Counter providers a threadsafe counter to use for storing long running counts
@ -25,7 +26,7 @@ type Counter interface {
// NewCounter initializes a counter starting at time.Now() and a count of 0 and returns it
func NewCounter() Counter {
c := &counter{startTime: time.Now(), count: 0}
c := &counter{startTime: time.Now(), count: 0, total: 0}
return c
}

View File

@ -62,7 +62,7 @@ func (s *Server) Run(acn connectivity.ACN) error {
log.Infof("cwtch server running on cwtch:%s\n", addressIdentity+".onion:")
s.metricsPack.Start(service, s.config.ConfigDir, s.config.ServerReporting.LogMetricsToFile)
ms, err := storage.InitializeSqliteMessageStore("cwtch.messages", s.metricsPack.MessageCounter)
ms, err := storage.InitializeSqliteMessageStore("cwtch.messages")
if err != nil {
return fmt.Errorf("could not open database: %v", err)
}

View File

@ -2,7 +2,6 @@ package storage
import (
"cwtch.im/cwtch/protocol/groups"
"cwtch.im/cwtch/server/metrics"
"database/sql"
"encoding/base64"
"fmt"
@ -19,8 +18,7 @@ type MessageStoreInterface interface {
// SqliteMessageStore is an sqlite3 backed message store
type SqliteMessageStore struct {
messageCounter metrics.Counter
database *sql.DB
database *sql.DB
// Some prepared queries...
preparedInsertStatement *sql.Stmt // A Stmt is safe for concurrent use by multiple goroutines.
@ -36,7 +34,7 @@ func (s *SqliteMessageStore) Close() {
// AddMessage implements the MessageStoreInterface AddMessage for sqlite message store
func (s *SqliteMessageStore) AddMessage(message groups.EncryptedGroupMessage) {
s.messageCounter.Add(1)
// ignore this clearly invalid message...
if len(message.Signature) == 0 {
return
@ -107,7 +105,7 @@ func (s *SqliteMessageStore) compileRows(rows *sql.Rows) []*groups.EncryptedGrou
// InitializeSqliteMessageStore creates a database `dbfile` with the necessary tables (if it doesn't already exist)
// and returns an open database
func InitializeSqliteMessageStore(dbfile string, messageCounter metrics.Counter) (*SqliteMessageStore, error) {
func InitializeSqliteMessageStore(dbfile string) (*SqliteMessageStore, error) {
db, err := sql.Open("sqlite3", dbfile)
if err != nil {
log.Errorf("database %v cannot be created or opened %v", dbfile, err)
@ -123,7 +121,6 @@ func InitializeSqliteMessageStore(dbfile string, messageCounter metrics.Counter)
log.Infof("Database Initialized")
slms := new(SqliteMessageStore)
slms.database = db
slms.messageCounter = messageCounter
sqlStmt = `INSERT INTO messages(signature, ciphertext) values (?,?);`
stmt, err := slms.database.Prepare(sqlStmt)

View File

@ -2,7 +2,6 @@ package storage
import (
"cwtch.im/cwtch/protocol/groups"
"cwtch.im/cwtch/server/metrics"
"encoding/binary"
"git.openprivacy.ca/openprivacy/log"
"os"
@ -14,8 +13,7 @@ func TestMessageStore(t *testing.T) {
filename := "../testcwtchmessages.db"
os.Remove(filename)
log.SetLevel(log.LevelDebug)
counter := metrics.NewCounter()
db, err := InitializeSqliteMessageStore(filename, counter)
db, err := InitializeSqliteMessageStore(filename)
if err != nil {
t.Fatalf("Error: %v", err)
}
@ -39,9 +37,6 @@ func TestMessageStore(t *testing.T) {
db.AddMessage(message)
}
t.Logf("Time to Insert: %v", time.Since(start))
if counter.Count() != numMessages {
t.Errorf("Counter should be at %v was %v", numMessages, counter.Count())
}
// Wait for inserts to complete..
fetchedMessages := db.FetchMessages()