logicblox
play

LogicBloX P lat f o r m and L anguage : a T uto r ial Todd J. - PowerPoint PPT Presentation

LogicBloX P lat f o r m and L anguage : a T uto r ial Todd J. Green Molham Aref Shan Shan Huang Grigoris Karvounarakis Todd Veldhuizen Datalog 2.0 Vienna September


  1. LogicBloX P lat f o r m and L anguage : a T uto r ial Todd ¡J. ¡Green ¡ Molham ¡Aref ¡ ¡ ¡Shan ¡Shan ¡Huang ¡ Grigoris ¡Karvounarakis ¡ ¡Todd ¡Veldhuizen ¡ Datalog ¡2.0 ¡Vienna ¡ September ¡12, ¡2012 ¡ Molham Aref

  2. 1. Vision ¡ 2. Language ¡ 3. RunHme ¡

  3. en • ter • prise soft • ware \ ˈ en-t ə (r)- ˌ pr ī z ˈ s ȯ ft- ˌ wer\ ¡ • SoIware ¡somebody ¡pays ¡you ¡to ¡use ¡ – AccounHng, ¡sales, ¡supply-­‑chain, ¡customer-­‑relaHonship ¡ management, ¡etc... ¡ • Expensive ¡ ¡ ¡ – $244B ¡(’10) ¡-­‑> ¡$267B ¡(’11) ¡-­‑> ¡$288B ¡(’12) ¡ • Doesn’t ¡work ¡ – Most ¡enterprise ¡decisions ¡sHll ¡made ¡with ¡Excel ¡ 3

  4. Enterprise ¡Decision ¡AutomaHon ¡Nightmare ¡ Bookkeeping ¡ BI ¡ Planning ¡ View ¡ PRESENT FUTURE PAST App ¡ Data ¡ 4

  5. Enterprise ¡Decision ¡AutomaHon ¡Nightmare ¡ Bookkeeping ¡ BI ¡ Planning ¡ View ¡ App ¡ Data ¡ 5

  6. Enterprise ¡Decision ¡AutomaHon ¡Nightmare ¡ Bookkeeping ¡ BI ¡ Planning ¡ User ¡ ¡ User ¡ ¡ User ¡ ¡ View ¡ Interface ¡ Interface ¡ Interface ¡ BI ¡App ¡ Applica.on ¡ App ¡ Server ¡ Server ¡ Planning ¡ Database ¡ Data ¡ OLTP ¡ ¡ OLAP ¡ Database ¡ Database ¡ 6

  7. Enterprise ¡Decision ¡AutomaHon ¡Nightmare ¡ Bookkeeping ¡ BI ¡ Planning ¡ User ¡ ¡ User ¡ ¡ User ¡ ¡ View ¡ Interface ¡ Interface ¡ Interface ¡ BI ¡App ¡ Applica.on ¡ App ¡ Server ¡ Server ¡ Planning ¡ Database ¡ Data ¡ OLTP ¡ ¡ OLAP ¡ Database ¡ Database ¡ ETL ETL 7

  8. IT ¡Landscape ¡– ¡Supply ¡Chain ¡(2% ¡of ¡footprint) ¡ Fulfill Demand Current Information Exchange Auto Receipt Schedule Shipment Manifest Destination PO Receipts DDS Franklin EXETER ASN Anti-Dealer ASN <Current> Receipts Shipment <Current> Transfer Scan Information <Target> <Current> Schedules Transfer On-Hand Inventory Transfer I01 - ASN RTV Transfers Purchase Orders Active SKUs Scheduling Store to DC Forecast PO Dates i2 TMS <Current> PO Receipts RTV Errors E3 Shipment Manifest <Target> Transfer Receipts Rapistan Genco Portal Inventory Adjustment Yantra AAS <Current> Receipts <Target> PO Receipts Active Assortment OMS Cycle Counts Intl Shipment i2 SCEM Allocations Forecast <Current> Status <Target> Inventory Adjustment <Current> Bridgepoint Delivery Schedule ASN’s <Current> Ladder PO’s Inventory Availability <Current> Receipt Schedule Cycle Counts Purchase Orders Transfer Cambell- I06 WMS Shipment Manifest Allocator Purchase Orders PO Receipts PO Receipts Staffworks Transfers Transfer Transfer Receipts I01 - Store Transfers <Current> Inventory Adjustment Retek RMS <Current> <Current> Receiving Location & SKU (v9) <Current> Location & SKU Star Repair Cambell Time & Attendance Transfer Receipts <Current> Inventory Adjustments <Current> <Current> Purchase Orders Purchase Orders PO and PO Receipts Inventory I02 - Transfer I07 – Dataflex Purchase RSS Star-In-Home <Current> Inventory Transfer Orders RMS I05 – <Current> RTV Request <Current> <Target> Inventory <Current> Dynamic <Current> Analytics Inventory Backstock- <Current> Mainframe I03 - RTV tool I35 – Early Inventory Adjustments <Current> ASN Warning <Current> System <Current> D <Current> W VPM Transfer <Current> VST Inventory Adjustments I04 – Home Delivery <Target> I10 – Cycle <Current> I09 – Cycle Physical I13 – Auto Counts Customer Order Optimized Delivery Route Inventory Replenishment <Current> Purchase Orders <Current> <Current> Texlon Customer PO Acknowledgement Order Mgmt <Target> Electronic (CO server) RIMMS Subscription Vendors Capture <Current> <Target> <Current>

  9. (Not ¡that ¡we ¡advocate ¡overthrowing ¡capitalist ¡states ¡and ¡ replacing ¡them ¡with ¡Stalinist ¡regimes, ¡but…) ¡ “If ¡you ¡tremble ¡with ¡indignaHon ¡at ¡ every ¡injusHce, ¡then ¡you ¡are ¡a ¡ comrade ¡of ¡mine.” ¡ Che ¡Guevara ¡ 9

  10. The ¡LogicBlox ¡Vision ¡ • Forget ¡the ¡hairball. ¡ ¡The ¡hairball ¡is ¡dumb. ¡ • Minimize ¡moving ¡parts, ¡minimize ¡glue ¡ – Unify ¡the ¡programming ¡model ¡and ¡ ¡ – Unify ¡the ¡execuHon ¡environment ¡ – Simplify ¡aggressively ¡ • FoundaHon: ¡(extended) ¡Datalog ¡ 10

  11. The ¡LogicBlox ¡Vision ¡ Bookkeeping ¡ BI ¡ Planning ¡ User ¡ ¡ User ¡ ¡ User ¡ ¡ View ¡ Interface ¡ Interface ¡ Interface ¡ BI ¡App ¡ Planning ¡App ¡ ApplicaHon ¡ App ¡ Server ¡ Server ¡ Server ¡ Data ¡ Planning ¡ OLTP ¡ ¡ OLAP ¡ Database ¡ Database ¡ Database ¡ 11

  12. The ¡LogicBlox ¡Vision ¡ Bookkeeping ¡ BI ¡ Planning ¡ User ¡ ¡ User ¡ ¡ View ¡ Interface ¡ Interface ¡ LogicBlox ¡ BI ¡App ¡ Planning ¡App ¡ App ¡ language ¡ ¡ Server ¡ Server ¡ runHme ¡ Data ¡ Planning ¡ OLAP ¡ Database ¡ Database ¡ 12

  13. The ¡LogicBlox ¡Vision ¡ Bookkeeping ¡ BI ¡ Planning ¡ User ¡ ¡ View ¡ Interface ¡ LogicBlox ¡ LogicBlox ¡ Planning ¡App ¡ App ¡ language ¡ ¡ language ¡ ¡ Server ¡ runHme ¡ runHme ¡ Data ¡ Planning ¡ Database ¡ 13

  14. The ¡LogicBlox ¡Vision ¡ Bookkeeping ¡ BI ¡ Planning ¡ View ¡ LogicBlox ¡ LogicBlox ¡ LogicBlox ¡ App ¡ language ¡ ¡ language ¡ ¡ language ¡ ¡ runHme ¡ runHme ¡ runHme ¡ Data ¡ 14

  15. The ¡LogicBlox ¡Vision ¡ Bookkeeping ¡ BI ¡ Planning ¡ Rendering ¡ View ¡ LogicBlox ¡ App ¡ language ¡ ¡ runHme ¡ Data ¡ 15

  16. a r e you CRAZY?!? ( nai v e ? delusional ?) 16

  17. Some ¡Clients ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡ Client ¡Logo ¡

  18. “The ¡more ¡ambiHous ¡plan ¡may ¡have ¡ more ¡chances ¡of ¡success...” ¡ ¡ George ¡Pólya ¡ 18

  19. 1. Vision ¡ 2. Language ¡ 3. RunHme ¡

  20. Why ¡Datalog? ¡ ¡No ¡ a ¡Priori ¡Bias ¡ • Usability ¡ – DeclaraHve ¡and ¡disorderly ¡ – Skinnable ¡– ¡give ¡people ¡the ¡syntax ¡they ¡like ¡ • Expressivity ¡ – Well-­‑understood ¡expressivity ¡with ¡ “ controllable ” ¡power ¡ • Safety ¡ – Turing-­‑completeness ¡considered ¡harmful ¡ – ACID ¡transacHons ¡with ¡full ¡serializability ¡ • Performance ¡ – AutomaHc ¡opHmizaHon, ¡incremental ¡evaluaHon, ¡parallelizaHon ¡ • Elegance ¡ – SQL ¡lexer+parser: ¡>14,000 ¡LOC; ¡Blox ¡lexer+parser: ¡< ¡1000 ¡LOC ¡ • Very ¡large ¡body ¡of ¡mostly ¡un-­‑commercialized ¡research ¡

  21. Core ¡Blox ¡Language: ¡ ¡ StaHcally-­‑Typed, ¡StraHfied ¡Datalog ¬ /* ¡EDB ¡predicates ¡and ¡facts ¡*/ ¡ a(X) ¡-­‑> ¡string(X). ¡ b(X,Y) ¡-­‑> ¡string(X), ¡string(Y). ¡ a(“apple”). ¡ int[8], ¡ b(“apple”, ¡“banana”). ¡ uint[32], ¡ ¡ float[64], ¡ /* ¡IDB ¡predicates ¡*/ ¡ decimal[128], ¡ c(X) ¡<-­‑ ¡a(X). ¡ boolean, ¡ c(Y) ¡<-­‑ ¡b(X,Y), ¡c(X), ¡ ¡ datetime, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡!b(Y,X). ¡ etc ¡ 21

  22. Blox: ¡Integrity ¡Constraints ¡ /* ¡An ¡EDB ¡predicate ¡foo ¡*/ ¡ foo(X,Y) ¡-­‑> ¡int[64](X), ¡datetime(Y). ¡ ¡ /* ¡A ¡constraint ¡stating ¡that ¡foo ¡is ¡ functional. ¡ ¡(Unlike ¡types, ¡constraints ¡are ¡ enforced ¡at ¡runtime.) ¡*/ ¡ foo(X,Y), ¡foo(X,Z) ¡-­‑> ¡Y=Z. ¡ ¡ /* ¡Equivalent ¡sugared ¡declaration ¡*/ ¡ foo[X]=Y ¡-­‑> ¡int[64](X), ¡datetime(Y). ¡ ¡ 22

  23. Blox: ¡Facts ¡and ¡Updates ¡ /* ¡EDB ¡facts, ¡static ¡declaration ¡*/ ¡ a(“apple”). ¡ b(“apple”, ¡“banana”). ¡ ¡ /* ¡EDB ¡facts, ¡dynamic ¡insertion/retraction*/ ¡ +c(“hello, ¡world”). ¡ -­‑d[1234] ¡= ¡true. ¡ 23

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend