attempts to open the database.  if it gets a locked message, it will wait one second and try
        again.  if it is still locked, it will return an error
        :return: None, None if successful
                 None, error if error

def open(self):
        '''
        attempts to open the database.  if it gets a locked message, it will wait one second and try
        again.  if it is still locked, it will return an error
        :return: None, None if successful
                 None, error if error
        '''
        cycle = 2
        count = 0

        while(True):
            try:
                DB.db = plyvel.DB(DB.dbpath, create_if_missing=True).prefixed_db(bytes(DB.project, 'utf-8'))
                if DB.db:
                    break

            except Exception as e:
                # wait for other program to unlock the db
                count+=1
                time.sleep(1)
                if count >= cycle:
                    return None, "DB error: {}".format(e)

        return None, None