import java.io.Fileimport java.util.Random
import com.sparsity.sparksee.gdb._
object PlainSparksee { val dbName = "HelloSparksee" val dbFolder = "/etc/sparksee" val databaseFile = "%s/%s.gdb".format(dbFolder, dbName) val dbRecoveryLog = "%s/%s.recoverylog.log".format(dbFolder, dbName) val dbCacheStatsLog = "%s/%s.cachestats.log".format(dbFolder, dbName) private val graphTypes = GraphEntitiesTypes
def main(args: Array[String]): Unit = {
try { for (i <- 1 to 20) { println("\n\t\t\t####Run %d ..".format(i)) run() } } catch { case e: Exception => println("... when SPARKSEE explodes... takes down the world...this will never happen") } }
def initGraphSchema(g: Graph) = { try { graphTypes.SUBJECT = findNodeType(SubjectTypes.POI, g) graphTypes.SUBJECT_NAME = findAttributeOfType(graphTypes.SUBJECT, SubjectAttributes.NAME, DataType.String, AttributeKind.Indexed, g)
graphTypes.EDGE_WITH = findEdgeType(VerbTypes.WITH, g) graphTypes.EDGE_WITH_DATE = findAttributeOfType(graphTypes.EDGE_WITH, VerbAttributes.DATE, DataType.Timestamp, AttributeKind.Indexed, g) graphTypes.EDGE_WITH_NAME = findAttributeOfType(graphTypes.EDGE_WITH, VerbAttributes.NAME, DataType.String, AttributeKind.Indexed, g) graphTypes.EDGE_WITH_ACTION = findAttributeOfType(graphTypes.EDGE_WITH, VerbAttributes.ACTION, DataType.String, AttributeKind.Indexed, g) println(graphTypes.toString) } catch { case e: Exception => println("!!! Error while loading the database types . %s ".format(e.getMessage)) e.printStackTrace() throw e } }
def findNodeType(name: String, g: Graph): Int = { val res = g.findType(name) if (res < 1) g.newNodeType(name) else res }
def findEdgeType(name: String, g: Graph): Int = { val res = g.findType(name) if (res < 1) g.newEdgeType(name, false, false) else res }
def findAttributeOfType(typeId: Int, name: String, valType: DataType, attKind: AttributeKind, g: Graph): Int = { val res = g.findAttribute(typeId, name) if (res < 1) g.newAttribute(typeId, name, valType, attKind) else res }
def run() { val folder = new java.io.File(dbFolder) if (!folder.exists()) folder.mkdirs()
val cfg = new SparkseeConfig() cfg.setRecoveryEnabled(true) cfg.setLogLevel(LogLevel.Debug) cfg.setRecoveryLogFile(dbRecoveryLog) cfg.setCacheStatisticsEnabled(true) cfg.setCacheStatisticsFile(dbCacheStatsLog) cfg.setPoolFrameSize(10)
val sparksee = new Sparksee(cfg) val file = new File(databaseFile) val db = if (file.exists() && file.isFile) sparksee.open(databaseFile, false)
else { val tmpDir = new java.io.File(databaseFile.substring(0, databaseFile.lastIndexOf("/"))) if (!tmpDir.exists) tmpDir.mkdir() sparksee.create(databaseFile, "HelloSparksee") } //////////////////////////// val s = db.newSession() val gh = s.getGraph initGraphSchema(gh)
println("#### Nodes : %,d\t\tEdges : %,d".format(gh.countNodes(), gh.countEdges())) //////////////////////////// println("\tSleeping 2k") Thread.sleep(2000)
// System.out.println("%s\t-\tExtracting entities ...".format(new Date())) // var lines = EntityGraph.loadLinesFromFile(inputUrlData) // val entities = EntityGraph.extractEntities(lines).toList
val rand = new Random(System.currentTimeMillis()) val sb = new StringBuilder() for (i <- 1 to 100000) sb.append("%f - %d".format(rand.nextFloat(), rand.nextLong())) sb.clear()
println("\tSleeping 2k") Thread.sleep(2000) // System.out.println("%s\t-\tCreating Edges between nodes ...".format(new Date()))
println("\tSleeping 2k") Thread.sleep(2000) // System.out.println("%s\t-\tWriting nodes to DB ...".format(new Date()))
println("\tSleeping 2k") Thread.sleep(2000) //////////////////////////////// s.close() db.close() sparksee.close() }
}
object GraphEntitiesTypes { var SUBJECT = -1 var SUBJECT_NAME = -1
var EDGE_WITH = -1 var EDGE_WITH_DATE = -1 var EDGE_WITH_NAME = -1 var EDGE_WITH_ACTION = -1
override def toString: String = { "S:% d | SN: %d ||| EW: %d | EWD: %d | EWN: %d | EWA: %d".format(SUBJECT, SUBJECT_NAME, EDGE_WITH, EDGE_WITH_DATE, EDGE_WITH_NAME, EDGE_WITH_ACTION) }}
object SubjectTypes { val POI = "POI"}
object SubjectAttributes { val NAME = "POI_NAME"}
object VerbTypes { val WITH = "WITH"}
object VerbAttributes { val NAME = "WITH_NAME" val DATE = "WITH_DATE" val ACTION = "WITH_ACTION"}
**** CRITICAL ERROR (SIGNAL NUM 10)
------- Begin of call stack ------
1 libsystem_platform.dylib 0x00007fff8b4df5aa _sigtramp + 26
2 libjvm.dylib 0x0000000105415188 VMOperationQueue_lock + 0
-------- End of call stack -------
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGBUS (0xa) at pc=0x00007fff91e5ba1a, pid=20843, tid=1287
#
# JRE version: Java(TM) SE Runtime Environment (7.0_71-b14) (build 1.7.0_71-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.71-b01 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C[thread 6403 also had an error] [libsystem_kernel.dylib+0x11a1a]
mach_msg_trap+0xa
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/vparaschiv/work/webpage-crawler-nlp-enricher/hs_err_pid20843.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
**** CRITICAL ERROR (SIGNAL NUM 6)
------- Begin of call stack ------
1 libsystem_platform.dylib 0x00007fff8b4df5aa _sigtramp + 26
2 ??? 0x00000000544a889f 0x0 + 1414170783
3 libsystem_c.dylib 0x00007fff91167b1a abort + 125
4 libjvm.dylib 0x00000001050207cf _ZN2os5abortEb + 25
5 libjvm.dylib 0x000000010512c2a8 _ZN7VMError14report_and_dieEv + 2308
6 libjvm.dylib 0x0000000105022169 JVM_handle_bsd_signal + 1083
7 libsystem_platform.dylib 0x00007fff8b4df5aa _sigtramp + 26
8 DesktopServicesPriv 0x00007fff93a35000 __dso_handle + 0
9 CoreFoundation 0x00007fff92697f15 __CFRunLoopServiceMachPort + 181
10 CoreFoundation 0x00007fff92697539 __CFRunLoopRun + 1161
11 CoreFoundation 0x00007fff92696e75 CFRunLoopRunSpecific + 309
12 java 0x00000001042393b0 CreateExecutionEnvironment + 871
13 java 0x0000000104233b5c JLI_Launch + 1952
14 java 0x000000010423970d main + 101
15 java 0x00000001042333b4 start + 52
java version "1.8.0_45"
sparkseejava 5.2.0
Running my app with "-Xcheck:jni" option revealed this:
Warning: SIGILL handler expected:libjvm.dylib+0x46c108 found:libsparksee.dylib+0x5c040
Signal Handlers:
SIGSEGV: [libjvm.dylib+0x46c108], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO
SIGBUS: [libsparksee.dylib+0x5c040], sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGFPE: [libsparksee.dylib+0x5c040], sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGPIPE: [libjvm.dylib+0x46c108], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.dylib+0x46c108], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libsparksee.dylib+0x5c040], sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.dylib+0x46bc26], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGINT: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGTERM: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGQUIT: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
Warning: SIGFPE handler expected:libjvm.dylib+0x46c108 found:libsparksee.dylib+0x5c040
Signal Handlers:
SIGSEGV: [libjvm.dylib+0x46c108], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO
SIGBUS: [libsparksee.dylib+0x5c040], sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGFPE: [libsparksee.dylib+0x5c040], sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGPIPE: [libjvm.dylib+0x46c108], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.dylib+0x46c108], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libsparksee.dylib+0x5c040], sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.dylib+0x46bc26], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGINT: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGTERM: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGQUIT: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
Warning: SIGBUS handler expected:libjvm.dylib+0x46c108 found:libsparksee.dylib+0x5c040
Signal Handlers:
SIGSEGV: [libjvm.dylib+0x46c108], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO
SIGBUS: [libsparksee.dylib+0x5c040], sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGFPE: [libsparksee.dylib+0x5c040], sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGPIPE: [libjvm.dylib+0x46c108], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.dylib+0x46c108], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libsparksee.dylib+0x5c040], sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.dylib+0x46bc26], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGINT: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGTERM: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGQUIT: [libjvm.dylib+0x46a1f9], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
## A fatal error has been detected by the Java Runtime Environment:#
# SIGBUS (0xa) at pc=0x00007fff865fb4de, pid=25342, tid=1299## JRE version: Java(TM) SE Runtime Environment (8.0_45-b14) (build 1.8.0_45-b14)# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.45-b02 mixed mode bsd-amd64 compressed oops)# Problematic frame:# C [libsystem_kernel.dylib+0x114de] mach_msg_trap+0xa#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again## An error report file with more information is saved as:
# /Users/.../hs_err_pid25342.log[thread 23299 also had an error]
**** CRITICAL ERROR (SIGNAL NUM 10)
------- Begin of call stack ------1 libsystem_platform.dylib 0x00007fff8c04bf1a _sigtramp + 26
-------- End of call stack -------## If you would like to submit a bug report, please visit:
#**** CRITICAL ERROR (SIGNAL NUM 6)------- Begin of call stack ------
1 libsystem_platform.dylib 0x00007fff8c04bf1a _sigtramp + 262 ??? 0x00007fff5b495ed0 0x0 + 1407347249230883 libsystem_c.dylib 0x00007fff8c61db53 abort + 1294 libjvm.dylib 0x0000000105e6e22f _ZN2os5abortEb + 255 libjvm.dylib 0x0000000105f8ec8c _ZN7VMError14report_and_dieEv + 22506 libjvm.dylib 0x0000000105e6fe5a JVM_handle_bsd_signal + 11317 libjvm.dylib 0x0000000105e6c137 _Z13signalHandleriP9__siginfoPv + 478 libsystem_platform.dylib 0x00007fff8c04bf1a _sigtramp + 269 ??? 0x0000000104786200 0x0 + 436996556810 CoreFoundation 0x00007fff8aaf0eb4 __CFRunLoopServiceMachPort + 21211 CoreFoundation 0x00007fff8aaf037b __CFRunLoopRun + 137112 CoreFoundation 0x00007fff8aaefbd8 CFRunLoopRunSpecific + 29613 java 0x000000010476b490 CreateExecutionEnvironment + 87114 java 0x000000010476721c JLI_Launch + 195215 java 0x000000010476d4ed main + 10116 java 0x0000000104766a74 start + 5217 ??? 0x0000000000000015 0x0 + 21
-------- End of call stack -------