Shared posts

29 May 18:45

Checkpoint process for memory-optimized tables in SQL 2016 and implications on the log

by Denzil Ribeiro

Reviewed by: Alejandro Saenz, Jos de Bruijn; Joe Sack, Mike Weiner,Kun Cheng, Raghavendra TK

A durable memory-optimized table (created as SCHEMA_AND_DATA) will have it’s transactions recorded into the transaction log so that on failure, recovery is possible. This logging ensures the durability of the transactions. Unlike disk-based tables, memory-optimized tables do not use WAL ( write-ahead logging) protocol, transactions are written to the log only on a commit and dirty data is never written to disk.

The checkpoint process is a background process used by SQL Server to ensure that in the event of a crash, the time it takes to recover isn’t very long.

Checkpoints for disk-based tables

A checkpoint for disk-based tables will result in flushing dirty pages to disk and in the simple recovery model the log will also be truncated. For disk-based tables, the database engine supports automatic, indirect and manual checkpoints. Automatic checkpoints for disk-based tables are based on the recovery interval configuration option. In addition, with SQL Server 2016, the default on newly created databases is to have “indirect” checkpoint enabled which shortens that recovery time period.

Checkpoints for memory optimized tables

For memory-optimized tables, the checkpoint process flushes both the data streams that contain all new versions of records and the delta stream that contains deleted versions of records to data and delta files. Each pair of data/delta files constitutes a checkpoint file pair or CFP and these files have the extensions .hkckp. All the data/delta files are written to sequentially or as streaming IO rather than random IO. To prevent the files from growing indefinitely , the checkpoint process will also do a “merge” if it is possible to merge subsequent checkpoint file pairs that have been closed.

Data and Delta files

Checkpoint behavior differences with memory-optimized tables

Checkpoint for memory optimized tables is done by a background worker thread in the In-Memory OLTP engine which is separate than the checkpoint thread for disk-based tables. Automatic checkpoint for memory-optimized tables will execute based on the following condition:

  • If the log has produced 1.5 GB since the last checkpoint, this will trigger the Engine to checkpoint memory optimized tables.

This difference in behavior in checkpoint can cause confusion with regards when the log is purged when you have memory optimized tables. For disk based tables, the log is truncated on a log backup for full recovery model or an automatic checkpoint for a database in simple recovery mode. This changes when we have a memory optimized table, a transaction log backup doesn’t necessarily truncate the log until the thresholds specified above are met.

Of course, at any time though, a manual checkpoint command can be issued.

Also, with SQL Server 2016 there is a special case, based on the conditions below, which will vary the checkpoint characteristics for memory-optimized tables. This is referred to as the “Large checkpoint” process, which is enabled on larger machines if all of the following conditions are true

  • The server has 16 or more logical processors
  • The server has 128GB or greater memory.
  • The server is capable of greater than 200MB/sec I/O measured for the IO subsystem of that database.

Details on this behavior are provided below in the section titled Large checkpoint for memory-optimized tables

Memory-optimized table checkpoint behavior example

Here is an example that shows what happens with checkpoints on memory-optimized tables. In summary we will:

  • Create a database
  • Establish the log chain by taking a backup
  • Populate some data and commit, thereby growing the log
  • Take a log backup

The expectation is that after the log backup, the log space used will be minimal unless there is some open transaction/ un-replicated transaction, or some other factors that prevents the log from being purged.

Example:

CREATE DATABASE [InMemoryOLTP]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'IMOLTP', FILENAME = N'c:\temp\InMemoryOLTP.mdf'), 
 FILEGROUP [IMOLTP_InMemory] CONTAINS MEMORY_OPTIMIZED_DATA  DEFAULT
( NAME = N'IMOLTP_InMemory', FILENAME = N'c:\temp\InMemoryOLTP')
 LOG ON 
( NAME = N'IMOLTP_log', FILENAME = N'c:\temp\InMemoryOLTP_log.ldf')
 GO

USE InMemoryOLTP
GO
CREATE TABLE dbo.SalesOrder_MemOpt
(
 order_id int identity not null,
 order_date datetime not null,
 order_status tinyint not null,
 amount float not null,
 Constraint PK_SalesOrderID PRIMARY KEY NONCLUSTERED HASH (order_id) WITH (BUCKET_COUNT = 10000)
) WITH ( MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)
GO
-- Create Natively compiled procedure to speed up inserts.
CREATE PROCEDURE [dbo].[InsertSalesOrder_Native_Batch] 
@order_status tinyint = 1,
@amount float = 100,
@OrderNum int = 100
  WITH 
    NATIVE_COMPILATION, 
    SCHEMABINDING, 
    EXECUTE AS OWNER
AS 
BEGIN ATOMIC 
  WITH (TRANSACTION  ISOLATION LEVEL = SNAPSHOT,LANGUAGE = 'us_english')
	declare @counter int = 1
	WHILE @counter <= @OrderNum
	BEGIN
	   INSERT INTO dbo.SalesOrder_MemOpt values(getdate(),@order_status,@amount)
	   SET @counter= @counter+1
	END
END
GO

-- Create backup to start chain, don't need the backups
 CHECKPOINT
 go
 BACKUP DATABASE InMemoryOLTP to disk = 'c:\temp\test.bak' WITH INIT,COMPRESSION
 BACKUP LOG InMemoryOLTP to disk = 'c:\temp\test.bak' WITH COMPRESSION
 GO
-- Check Log Space used column for DB
 DBCC SQLPERF(logspace)
 GO

-- Check Log Space, file checkpoint stats, file states
	-- Do we have any reason why the log can't be purged?
	SELECT log_reuse_wait_desc,* 
	FROM sys.databases
	WHERE name = 'InMemoryOLTP'
	GO
	-- What percentage of the log is used for this DB?
	DBCC sqlperf(logspace)
	GO
	-- How much log is generated since last checkpoint?
	SELECT log_bytes_since_last_close /(1024*1024) as Log_bytes_since_last_close_mb,time_since_last_close_in_ms, current_checkpoint_id,* 
	FROM sys.dm_db_xtp_checkpoint_stats
	GO
	-- Have checkpoint files been flushed?
	SELECT  state_desc, 
       file_type_desc, 
       count(state_desc) count, 
       sum(file_size_in_bytes)/(1024*1024) file_size_in_mb_bytes,
	   Avg(file_size_in_bytes)/(1024*1024) Avgfile_size_in_mb_bytes
	FROM sys.dm_db_xtp_checkpoint_files
	GROUP BY state_desc, file_type_desc
	ORDER BY file_size_in_mb_bytes desc

DMV outputs

-- This proc inserts 900K rows 20 times
-- Attempt to grow the log to ~ 1GB
BEGIN TRAN
EXEC dbo.[InsertSalesOrder_Native_Batch]  1,100,900000
DELETE FROM dbo.SalesOrder_MemOpt WITH(SNAPSHOT)
COMMIT
GO 20
-- Backup the log
-- Do you expect the log to be purged?
BACKUP LOG InMemoryOLTP TO DISK = 'c:\temp\test.bak' WITH INIT,COMPRESSION
GO

As shown below, we have ~ 1GB of Log generated since last checkpoint, and after the backup log, the log spaced used % is still at 51%, and there is 1 active data file only which indicates the data/delta file stream has not been flushed to disk given this was a new database.

DMV output
Now when we issue a manual checkpoint, the active files go up to 5 as data/delta files are flushed, and log bytes since last checkpoint go to 0. However, the log spaced used is still at 51% as we are in full recovery model and a backup log will free that up.

-- Manual checkpoint
CHECKPOINT
GO

DMV output

After the backup the Log space used drops to minimal amount as expected.

-- Backup to Free up the log
BACKUP LOG InMemoryOLTP to DISK = 'c:\temp\test.bak' WITH INIT, COMPRESSION
GO

DMV output

Had we waited until 1.5 GB of Log was filled up, no manual checkpoint would have to be issued and the log would be purged based on the size based threshold.

Large checkpoint for memory-optimized tables

Large checkpoints were designed for high throughput systems with very high log generation rates of up-to 1GB/sec. The purpose is to ensure that the checkpoint process would not be continually executing and would scale efficiently.

In the SQL error log, you will see messages indicating that we have detected that is a larger machine and as such by default “Large checkpoints” are used.

 2016-04-29 21:03:58.080               Server   SQL Server detected 4 sockets with 8 cores per socket and 16 logical processors per socket, 64 total logical processors; using 64 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
…
2016-04-29 21:03:58.080               Server   Detected 1048541 MB of RAM. This is an informational message; no user action is required.
…
2016-04-29 21:04:00.110               Server   In-Memory OLTP initialized on highend machine.

 

With Large checkpoints enabled, there are the following behavior changes:

  • Data files created are now 1GB and delta files are 128MB instead of the smaller 128MB/16MB sizes.
  • Automatic checkpoints are executed when 12 GB of the log is filled up since the last checkpoint.

Given this new behavior with SQL Server 2016, there are a few scenarios to consider where large checkpoints do have ramifications:

  • In particular, on test systems where a workload may be executed and then paused at some point (not continuous workload running) you may notice that on small databases you can have 5GB of FREE files pre-created on disk and 12GB of log not cleared even after a log backup.
  • There is the potential big increase in the recovery time if a crash occurs with lots of log between checkpoints. In the case of Large checkpoints, there could be up to 12GB of produced log between checkpoints that may need to be recovered on a failure.

The primary design point of large checkpoints was for the very high throughput systems with high log generation rate. If your average Log generation rate is less than 300MB/sec outside of short spikes, you do not need Large Checkpoints. There will be a fix in CU1 which change the default behavior to small checkpoints and enable Large checkpoints only under a trace flag. When CU1 is released I will update this to reflect that information as well as it will be documented officially.

 

 

29 May 18:45

Power BI Enterprise Content Sharing

by Prologika - Teo Lachev

I taught Power BI to a large organization this week. Naturally, they were interested in sharing content across multiple departments and even entire organization. Let’s revisit the sharing options available in Power BI which I summarize in the following table.

052316_0116_PowerBIEnte1.png

  • Simple sharing – This is the only option available in Power BI Free. It allows sharing real-only dashboards and underlying reports to a small audience, such as with your boss or with a few coworkers. The content author would typically invite recipients by email. Recipients can’t change the shared dashboards and reports that someone else shared with them.
  • Groups – Power BI groups (workspaces) are based on Office 365 unified groups. Anyone with a Power BI Pro subscription can create a group and add other users to the group. In the process of creating a group, the group owner specifies the group privacy level (private or public) and content access (edit or read-only). Groups are great to share content with members of a team, such as Sales, Finance, or a project. Public groups might seem like a convenient way to share content across the entire organization but they aren’t really “public” because a user still needs to add himself to the group. Once the group is created (give it some 30 minutes to become discoverable), the user can find the group in Outlook and add himself as a member of the group. So, public groups are public to the extent of allowing end users to gain membership without an administrator formally approving them. However, to share content across the entire organization, you probably won’t want to add every user to the group, especially considering that Power BI groups don’t currently support membership via AD groups or distribution lists.
  • Organizational content pack – Similar to service content packs, organizational content packs allow the author to package and distribute content to any user or group (distribution and AD groups are supported) who’s interested in the content pack. Organizational content packs are discoverable in the Power BI Content Pack Library (in powerbi.com, click Get Data ð Organization). Content packs are designed for broader content delivery. By default, the content pack is read-only but users can create personal write copies of packaged dashboards and reports. So content packs are flexible.

To recap, if you need to distribute content across multiple departments or entire organization, organizational content packs should be the way to go.

24 May 20:51

Microsoft Urged to Open Source Classic Visual Basic

by EditorDavid
"On the 25th anniversary of classic Visual Basic, return it to its programmers..." reads the plea at UserVoice.com from Sue Gee -- drawing 85 upvotes. "The new Microsoft claims to back open source, why not in this case? There is no need for Microsoft to do any more work on the code base - simply open source it and allow the community to keep it alive." In an essay at i-programmer.info, Gee shares a video of young Bill Gates building an app with Visual Basic in 1991, and complains that in the 25 years since Microsoft has open sourced .NET Core and the .NET Compiler Platform Roslyn, "but it has explicitly refused to open source VB6." She notes that Friday Visual Basic's program manager announced a "Visual Basic Silver Anniversary Celebratiathon," promising he's reaching out to the VB team members from the last 25 years for a behind-the-scenes retrospective, and adding "this is a party, so feel free to be interactive." "What the post glosses over is that this history was blighted by the fork in the road that was .NET and that many Visual Basic fans are highly unsatisfied that the programming environment they cherished is lost to them..." writes Gee. "Vote for the proposal not because you want to use VB6 or that you think it is worth having -- Vote for it because a company like Microsoft should not take a language away from its users."

Share on Google+

Read more of this story at Slashdot.

20 May 18:00

SQL Server best practice: grant permissions to per-service SID

by Haidong Ji

Since Windows Server 2008/Windows Vista, from SQL Server 2008 onward, SQL Server installation process automatically generates per-service security identifier (SID). Whenever possible, it is recommended to grant rights to this service SID for security reasons, instead of your SQL Server’s startup account, which typically is domain user account.

For example, for performance reasons, I always want to SQL Server to have the following rights: Instant File Initialization and Lock Pages in Memory. The former enables instantaneous data (not log) file growth; whereas the later prevents Windows system from paging SQL Server data to virtual memory on disk.

Those rights can be granted via the Local Security Policy application, secpol.msc. Navigate to Security Settings -> Local Policies -> User Rights Assignment, you’ll find them there. Please note that Instant File Initialization is actually called “Perform volume maintenance tasks”.

Before service SID was introduced, I always granted those rights to SQL Server’s startup account. In my case it was typically a domain\user account. With the introduction of service SID, SQL Server’s resource access rights is the sum of both its startup account and service SID. Therefore it is recommended to grant rights to service SID, for obvious security reasons.

To prove that’s the case, let’s conduct the following experiment. For default instance of SQL Server, its service SID is NT Service\MSSQLSERVER. For named instance, its service SID is NT Service\MSSQL$InstanceName. Please note instant file initialization, once enabled, only works for SQL Server data files, not logs.

1. Assume your SQL Server instance is running under a domain\user account without “Perform volume maintenance tasks”;
2. Run the following code:

dbcc traceon(3004,3605,-1)
go
 
create database TestDb
go
 
exec sp_readerrorlog
go
 
drop database TestDb
go
 
dbcc traceoff(3004,3605,-1)
go

Pay attention to the output of “exec sp_readerrorlog”. You should see something similar to this:

2016-05-19 23:39:35.830 spid51 Zeroing C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\TestDb.mdf from page 0 to 1024 (0x0 to 0x800000)
2016-05-19 23:39:35.890 spid51 Zeroing completed on C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\TestDb.mdf (elapsed = 66 ms)

3. Now using secpol.msc, grant your service SID, in my case, NT Service\MSSQLSERVER, the right of “Perform volume maintenance tasks”;
4. Restart SQL Server instance;
5. Repeat step 2, you shouldn’t see entry similar to the one listed above in the error log, indicating that SQL Server has the combined rights of its startup account and its service SID.

By the way, this also applies to data and log folder permissions. Only grant data and log folder permissions to service SID, not its startup account. I have automated that process here.

Happy learning!

20 May 17:43

5 Signs You Don’t Get Big Data

by A.R. Guess

by Angela Guess Bernard Marr recently wrote in Forbes, “I’ll admit it: Big Data is not my favorite term.  It really trivializes and summarizes the trend too far, creating misconceptions and misperceptions of what this incredible shift in our technology, culture and world actually is. Despite the fact that I bill myself as a “big […]

The post 5 Signs You Don’t Get Big Data appeared first on DATAVERSITY.

20 May 17:43

The Internals of WITH ENCRYPTION

by Paul White

It is pretty easy for a SQL Server administrator to recover the text of stored procedures, views, functions, and triggers protected using WITH ENCRYPTION. Many articles have been written about this, and several commercial tools are available. The basic outline of the common method is to:

  1. Obtain the encrypted form (A) using the Dedicated Administrator Connection.
  2. Start a transaction.
  3. Replace the object definition with known text (B) of at least the same length as the original.
  4. Obtain the encrypted form for the known text (C).
  5. Roll back the transaction to leave the target object in its initial state.
  6. Obtain the unencrypted original by applying an exclusive-or to each character: A XOR (B XOR C)

That is all pretty straightforward, but seems a bit like magic: It does not explain much about how and why it works. This article covers that aspect for those of you that find these sorts of details interesting, and provides an alternative method for decryption that is more illustrative of the process.

The Stream Cipher

The underlying encryption algorithm SQL Server uses for module encryption is the RC4™ stream cipher. An outline of the encryption process is:

  1. Initialize the RC4 cipher with a cryptographic key.
  2. Generate a pseudorandom stream of bytes.
  3. Combine the module plain text with the byte stream using exclusive-or.

We can see this process occurring using a debugger and public symbols. For example, the stack trace below shows SQL Server initializing the RC4 key while preparing to encrypt the module text:

Key init trace

This next one shows SQL Server encrypting the text using the RC4 pseudorandom byte stream:

PRNG trace

Like most stream ciphers, the process of decryption is the same as encryption, making use of the fact that exclusive-or is reversible (A XOR B XOR B = A).

The use of a stream cipher is the reason exclusive-or is used in the method described at the start of the article. There is nothing inherently unsafe about using exclusive-or, provided that a secure encryption method is used, the initialization key is kept secret, and the key is not reused.

RC4 is not particularly strong, but that is not the main issue here. That said, it is worth noting that encryption using RC4 is being gradually removed from SQL Server, and is deprecated (or disabled, depending on version and database compatibility level) for user operations like creating a symmetric key.

The RC4 Initialization Key

SQL Server uses three pieces of information to generate the key used to initialize the RC4 stream cipher:

  1. The database family GUID.

    This can be obtained most easily by querying sys.database_recovery_status. It is also visible in undocumented commands like DBCC DBINFO and DBCC DBTABLE.

  2. The target module's object ID.

    This is just the familiar object ID. Note that not all modules that allow encryption are schema-scoped. You will need to use metadata views (sys.triggers or sys.server_triggers) to get the object ID for DDL and server-scoped triggers, rather than sys.objects or OBJECT_ID, since these only work with schema-scoped objects.

  3. The target module's sub-object ID.

    This is the procedure number for numbered stored procedures. It is 1 for an unnumbered stored procedure, and zero in all other cases.

Using the debugger again, we can see the family GUID being retrieved during key initialization:

Family GUID

The database family GUID is typed uniqueidentifier, object ID is integer, and sub-object ID is smallint.

Each part of the key must be converted to a specific binary format. For the database family GUID, converting the uniqueidentifier type to binary(16) produces the correct binary representation. The two IDs must be converted to binary in little-endian representation (least significant byte first).

Note: Be very careful not to accidentally provide the GUID as a string! It must be typed uniqueidentifier.

The code snippet below shows correct conversion operations for some sample values:

DECLARE 
    @family_guid binary(16) = CONVERT(binary(16), {guid 'B1FC892E-5824-4FD3-AC48-FBCD91D57763'}),
    @objid binary(4) = CONVERT(binary(4), REVERSE(CONVERT(binary(4), 800266156))),
    @subobjid binary(2) = CONVERT(binary(2), REVERSE(CONVERT(binary(2), 0)));

The final step to generate the RC4 initialization key is to concatenate the three binary values above into a single binary(22), and compute the SHA-1 hash of the result:

DECLARE 
    @RC4key binary(20) = HASHBYTES('SHA1', @family_guid + @objid + @subobjid);

For the sample data given above, the final initialization key is:

0x6C914908E041A08DD8766A0CFEDC113585D69AF8

The contribution of the target module's object ID and sub-object ID to the SHA-1 hash are hard to see in a single debugger screenshot, but the interested reader can refer to the disassembly of a portion of initspkey below:

call    sqllang!A_SHAInit
lea     rdx,[rsp+40h]
lea     rcx,[rsp+50h]
mov     r8d,10h
call    sqllang!A_SHAUpdate
lea     rdx,[rsp+24h]
lea     rcx,[rsp+50h]
mov     r8d,4
call    sqllang!A_SHAUpdate
lea     rdx,[rsp+20h]
lea     rcx,[rsp+50h]
mov     r8d,2
call    sqllang!A_SHAUpdate
lea     rdx,[rsp+0D0h]
lea     rcx,[rsp+50h]
call    sqllang!A_SHAFinal
lea     r8,[rsp+0D0h]
mov     edx,14h
mov     rcx,rbx
call    sqllang!rc4_key (00007fff`89672090)

The SHAInit and SHAUpdate calls add components to the SHA hash, which is eventually computed by a call to SHAFinal.

The SHAInit call contributes 10h bytes (16 decimal) stored at [rsp+40h], which is the family GUID. The first SHAUpdate call adds 4 bytes (as indicated in the r8d register), stored at [rsp+24h], which is the object ID. The second SHAUpdate call adds 2 bytes, stored at [rsp+20h], which is the subobjid.

The final instructions pass the computed SHA-1 hash to the RC4 key initialization routine rc4_key. The length of the hash is stored in register edx: 14h (20 decimal) bytes, which is the defined hash length for SHA and SHA-1 (160 bits).

The RC4 Implementation

The core RC4 algorithm is well-known, and relatively simple. It would be better implemented in a .Net language for efficiency and performance reasons, but there is a T-SQL implementation below.

These two T-SQL functions implement the RC4 key-scheduling algorithm and pseudorandom number generator, and were originally written by SQL Server MVP Peter Larsson. I have a made some minor modifications to improve performance a little, and allow LOB-length binaries to be encoded and decoded. This part of the process could be replaced by any standard RC4 implementation.

/*
** RC4 functions
** Based on http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=76258
** by Peter Larsson (SwePeso)
*/
IF OBJECT_ID(N'dbo.fnEncDecRc4', N'FN') IS NOT NULL
    DROP FUNCTION dbo.fnEncDecRc4;
GO
IF OBJECT_ID(N'dbo.fnInitRc4', N'TF') IS NOT NULL
    DROP FUNCTION dbo.fnInitRc4;
GO
CREATE FUNCTION dbo.fnInitRc4
    (@Pwd varbinary(256))
RETURNS @Box table
    (
        i tinyint PRIMARY KEY, 
        v tinyint NOT NULL
    )
WITH SCHEMABINDING
AS
BEGIN
    DECLARE @Key table
    (
        i tinyint PRIMARY KEY,
        v tinyint NOT NULL
    );
 
    DECLARE
        @Index smallint = 0,
        @PwdLen tinyint = DATALENGTH(@Pwd);
 
    WHILE @Index <= 255
    BEGIN
        INSERT @Key
            (i, v)
        VALUES
            (@Index, CONVERT(tinyint, SUBSTRING(@Pwd, @Index % @PwdLen + 1, 1)));
 
        INSERT @Box (i, v)
        VALUES (@Index, @Index);
 
        SET @Index += 1;
    END;
 
    DECLARE
        @t tinyint = NULL,
        @b smallint = 0;
 
    SET @Index = 0;
 
    WHILE @Index <= 255
    BEGIN
        SELECT @b = (@b + b.v + k.v) % 256
        FROM @Box AS b
        JOIN @Key AS k
            ON k.i = b.i
        WHERE b.i = @Index;
 
        SELECT @t = b.v
        FROM @Box AS b
        WHERE b.i = @Index;
 
        UPDATE b1
        SET b1.v = (SELECT b2.v FROM @Box AS b2 WHERE b2.i = @b)
        FROM @Box AS b1
        WHERE b1.i = @Index;
 
        UPDATE @Box
        SET v = @t
        WHERE i = @b;
 
        SET @Index += 1;
    END;
 
    RETURN;
END;
GO
CREATE FUNCTION dbo.fnEncDecRc4
(
    @Pwd varbinary(256),
    @Text varbinary(MAX)
)
RETURNS varbinary(MAX)
WITH 
    SCHEMABINDING, 
    RETURNS NULL ON NULL INPUT
AS
BEGIN
    DECLARE @Box AS table 
    (
        i tinyint PRIMARY KEY, 
        v tinyint NOT NULL
    );
 
    INSERT @Box
        (i, v)
    SELECT
        FIR.i, FIR.v
    FROM dbo.fnInitRc4(@Pwd) AS FIR;
 
    DECLARE
        @Index integer = 1,
        @i smallint = 0,
        @j smallint = 0,
        @t tinyint = NULL,
        @k smallint = NULL,
        @CipherBy tinyint = NULL,
        @Cipher varbinary(MAX) = 0x;
 
    WHILE @Index <= DATALENGTH(@Text)
    BEGIN
        SET @i = (@i + 1) % 256;
 
        SELECT
            @j = (@j + b.v) % 256,
            @t = b.v
        FROM @Box AS b
        WHERE b.i = @i;
 
        UPDATE b
        SET b.v = (SELECT w.v FROM @Box AS w WHERE w.i = @j)
        FROM @Box AS b
        WHERE b.i = @i;
 
        UPDATE @Box
        SET v = @t
        WHERE i = @j;
 
        SELECT @k = b.v
        FROM @Box AS b
        WHERE b.i = @i;
 
        SELECT @k = (@k + b.v) % 256
        FROM @Box AS b
        WHERE b.i = @j;
 
        SELECT @k = b.v
        FROM @Box AS b
        WHERE b.i = @k;
 
        SELECT
            @CipherBy = CONVERT(tinyint, SUBSTRING(@Text, @Index, 1)) ^ @k,
            @Cipher = @Cipher + CONVERT(binary(1), @CipherBy);
 
        SET @Index += 1;
    END;
 
    RETURN @Cipher;
END;
GO

The Encrypted Module Text

The easiest way for a SQL Server administrator to get this is to read the varbinary(max) value stored in the imageval column of sys.sysobjvalues, which is only accessible via the Dedicated Administrator Connection (DAC).

This is the same idea as the routine method described in the introduction, though we add a filter on valclass = 1. This internal table is also a convenient place to get the subobjid. Otherwise, we would need to check sys.numbered_procedures when the target object is a procedure, use 1 for an unnumbered procedure, or zero for anything else, as described previously.

It is possible to avoid using the DAC by reading the imageval from sys.sysobjvalues directly, using multiple DBCC PAGE calls. This involves a bit more work to locate the pages from metadata, follow the imageval LOB chain, and read the target binary data from each page. The latter step is a lot easier to do in a programming language other than T-SQL. Note that DBCC PAGE will work, even though the base object is not normally readable from a non-DAC connection. If the page is not in memory, it will be read in from persistent storage as normal.

The extra effort to avoid the DAC requirement pays off by allowing multiple users to use the decrypting process concurrently. I will use the DAC approach in this article for simplicity and space reasons.

Worked Example

The following code creates a test encrypted scalar function:

CREATE FUNCTION dbo.FS()
RETURNS varchar(255)
WITH ENCRYPTION, SCHEMABINDING AS
BEGIN
    RETURN 
    (
        SELECT 'My code is so awesome is needs to be encrypted!'
    );
END;

The complete decryption implementation is below. The only parameter that needs changing to work for other objects is the initial value of @objectid set in the first DECLARE statement.

-- *** DAC connection required! ***
-- Make sure the target database is the context
USE Sandpit;
 
DECLARE
    -- Note: OBJECT_ID only works for schema-scoped objects
    @objectid integer = OBJECT_ID(N'dbo.FS', N'FN'),
    @family_guid binary(16),
    @objid binary(4),
    @subobjid binary(2),
    @imageval varbinary(MAX),
    @RC4key binary(20);
 
-- Find the database family GUID
SELECT @family_guid = CONVERT(binary(16), DRS.family_guid)
FROM sys.database_recovery_status AS DRS
WHERE DRS.database_id = DB_ID();
 
-- Convert object ID to little-endian binary(4)
SET @objid = CONVERT(binary(4), REVERSE(CONVERT(binary(4), @objectid)));
 
SELECT
    -- Read the encrypted value
    @imageval = SOV.imageval,
    -- Get the subobjid and convert to little-endian binary
    @subobjid = CONVERT(binary(2), REVERSE(CONVERT(binary(2), SOV.subobjid)))
FROM sys.sysobjvalues AS SOV
WHERE 
    SOV.[objid] = @objectid
    AND SOV.valclass = 1;
 
-- Compute the RC4 initialization key
SET @RC4key = HASHBYTES('SHA1', @family_guid + @objid + @subobjid);
 
-- Apply the standard RC4 algorithm and
-- convert the result back to nvarchar
PRINT CONVERT
    (
        nvarchar(MAX),
        dbo.fnEncDecRc4
        (
            @RC4key,
            @imageval
        )
    );

Note the final conversion to nvarchar because module text is typed as nvarchar(max).

The output is:

SSMS Messages Tab Output

Conclusion

The reasons the method described in the introduction works are:

  • SQL Server uses the RC4 stream cipher to reversibly exclusive-or the source text.
  • The RC4 key depends only on the database family guid, object id, and subobjid.
  • Temporarily replacing the module text means the same (SHA-1 hashed) RC4 key is generated.
  • With the same key, the same RC4 stream is generated, allowing exclusive-or decryption.

Users that do not have access to system tables, database files, or other admin-level access, cannot retrieve encrypted module text. Since SQL Server itself needs to be able to decrypt the module, there is no way to prevent suitably privileged users from doing the same.

The post The Internals of WITH ENCRYPTION appeared first on SQLPerformance.com.

20 May 17:40

New Surveillance System May Let Cops Use All Of The Cameras

by BeauHD
An anonymous reader quotes a report from Wired: [Computer scientists have created a way of letting law enforcement tap any camera that isn't password protected so they can determine where to send help or how to respond to a crime.] The system, which is just a proof of concept, alarms privacy advocates who worry that prudent surveillance could easily lead to government overreach, or worse, unauthorized use. It relies upon two tools developed independently at Purdue. The Visual Analytics Law Enforcement Toolkit superimposes the rate and location of crimes and the location of police surveillance cameras. CAM2 reveals the location and orientation of public network cameras, like the one outside your apartment. You could do the same thing with a search engine like Shodan, but CAM2 makes the job far easier, which is the scary part. Aggregating all these individual feeds makes it potentially much more invasive. [Purdue limits access to registered users, and the terms of service for CAM2 state "you agree not to use the platform to determine the identity of any specific individuals contained in any video or video stream." A reasonable step to ensure privacy, but difficult to enforce (though the team promises the system will have strict security if it ever goes online). Beyond the specter of universal government surveillance lies the risk of someone hacking the system.] EFF discovered that anyone could access more than 100 "secure" automated license plate readers last year.

Share on Google+

Read more of this story at Slashdot.

20 May 00:40

Goodbye vSphere Client for Windows (C#) – Hello…

by emcweb@emc.com
EMC logo

Goodbye vSphere Client for Windows (C#) – Hello HTML5


Goodbye vSphere Client for Windows (C#) – Hello…

Today we have two important announcements. First, the C# client (AKA Desktop Client/thick client/vSphere Client for Windows) will not be available for the next version of vSphere. Current versions of vSphere (6.0, 5.5) will not be affected, as those will follow the standard support period. You’ve heard this from us in the past, but we’ve been waiting for a sufficient replacement before finally moving forward. Second, we want to talk about the recent vSphere HTML5 Web Client Fling, user adoption, and VMware’s focus on bringing a great user experience. Like the Embedded Host Client Fling (which made it into vSphere in 6.0U2), we plan on bringing this product into a supported release soon.


VMware Social Media Advocacy
20 May 00:40

Teamwork is the Key to Developing SQL Source Control

by A.R. Guess

by Angela Guess A recent article out of Redgate Software reports, “The long-awaited release of SQL Server Management Studio (SSMS) 2016 is approaching, bringing with it a more modern look and feel, more features, and more advantages for users. Redgate Software has been working closely with Microsoft to make sure the latest version of one […]

The post Teamwork is the Key to Developing SQL Source Control appeared first on DATAVERSITY.

20 May 00:39

SQL Server 2016 general availability and discovery day

by SQLMaster

Tweet


In another few days time SQL Server 2016 (RTM) will be available for the users and officially supported within the production environments. 2016 version is the first database born in the cloud, a new innovation in the world of data platform.

There are many exciting announcemnts happend within SQL Server world, such as SQL Server 2016 Developer Edition  will be a free download. Here is the document that you can pin up to know features by edition and compare them based on your requirement. If you have noticed or not, there is no Business Intelligence edition in SQL Server 2016, as the plan is to enable customers transition to get similar BI capabilities with available editions and Standard Edition will have basic HA capabilities (2 node single database failover including primary and non-readable synchronous replica and few more, see features by edition link above)

On that note I have an exciting news about first of its kind of event happening in the Scotland to discover possibilities from SQL Server, learn from industry experts, participate in hackathon-type competition in a group with exciting grand prize ($250 worth) and grab Microsoft swag too. So do not forget to register and share the excitement across your network

The event link:

.

Resources

New SQL Server 2016 performance benchmarks :Lenovo published a new #1 TPC-H 30 TB world record3 using SQL Server 2016 and Windows Server 2016 on Lenovo System x3950 X6

Series of whitepapers:

 

 

 

20 May 00:29

Computers and Warrants: Some Senators Oppose Justice Plan

by manishs
A group of bipartisan senators introduced a bill on Thursday that blocks a pending judicial rule change allowing U.S judges to issue search warrants for remote access to computers in any jurisdiction, even overseas. Associated Press reports: Justice Department officials say that requirement is not practical in complex computer crime cases where investigators don't know the physical location of the device they want to search. In instances when cybercriminals operate on networks that conceal their identity and location, the government wants to ensure that any magistrate in a judicial district where a crime may have occurred can sign off on a search warrant that gives investigators remote access to the computer. The Obama administration says that authority is especially critical in cases involving botnets, which are networks of computers infected with a virus that spill across those districts. As it now stands, federal officials say, they might have to apply for nearly identical warrants in 94 different courthouses to disrupt a botnet.The U.S. Justice Department has pushed for the rule change since 2013. It has assumed it as a "procedural tweak" needed to modernize the criminal code to pursue sophisticated 21st century criminals, reports Reuters. Congress has until Dec 1 to vote to reject, amend or postpone the changes to Rule 41 of the federal rules of criminal procedure. If lawmakers fail to act, the change will automatically take effect, a scenario seen as likely given the short timeline. ZDNet has more details.

Share on Google+

Read more of this story at Slashdot.

19 May 23:13

Improving Customer Experience with Machine Learning

by A.R. Guess

by Angela Guess Grace Peters recently wrote in HPCwire, “Thanks to machine learning, the page you see when you log-on to Amazon.com is likely very different from the one I see. Advertising, product recommendations, and special deals are all tailored to our unique customer profiles based on historical browsing trends and buying behavior. Online retailers […]

The post Improving Customer Experience with Machine Learning appeared first on DATAVERSITY.

18 May 16:54

Four Reasons Why Big Data Analytics in the Cloud Makes Sense Now

by Raghu Thiagarajan

Click to learn more about author Raghu Thiagarajan. Business Intelligence (BI) and analytics have, perhaps rightfully, been slower to take off in the cloud than other software categories. Customer Relationship Manager (CRM) was an early mover, driven by Salesforce, and since then we’ve seen other applications like payroll and expense reporting go heavily toward the cloud. […]

The post Four Reasons Why Big Data Analytics in the Cloud Makes Sense Now appeared first on DATAVERSITY.

18 May 16:53

Migrate from on-prem SQL server to Azure VM IaaS

by James Serra

Hopefully you went through my presentations Should I move my database to the cloud?Introducing Azure SQL Database and Implement SQL Server on an Azure VM and are convinced to move your databases to the cloud.  If you are going to migrate to Azure SQL Database and want more info on how to copy your SQL Server databases from on-prem to Azure SQL database (PaaS), check out Migrate from on-prem SQL server to Azure SQL Database.  If you want to copy data from on-prem to SQL Server in an Azure VM (IaaS), check out the number of migration methods below:

  • Use the Deploy a SQL Server Database to a Microsoft Azure VM wizard. Recommended method for migrating an on-premises user database when the compressed database backup file is less than 1 TB.  Fastest and simplest method, use whenever possible to migrate to a new or existing SQL Server instance in an Azure virtual machine.  Use on SQL Server 2005 or greater to SQL Server 2014 or greater.  But note this method is for only the classic deployment model
  • Perform on-premises backup using compression and manually copy the backup file into the Azure virtual machine and then do a restore (only if you cannot use the above wizard or the database backup size is larger than 1 TB).  Use on SQL Server 2005 or greater to SQL Server 2005 or greater
  • Perform a backup to URL and restore into the Azure virtual machine from the URL.  Use on SQL Server 2012 SP1 CU2 or greater to SQL Server 2012 SP1 CU2 or greater
  • Detach and then copy the data and log files to Azure blob storage and then attach to SQL Server in Azure VM from URL.  Use on SQL Server 2005 or greater to SQL Server 2014 or greater
  • Convert on-premises physical machine to Hyper-V VHD, upload to Azure Blob storage, and then deploy as new VM using uploaded VHD.  Use when bringing your own SQL Server license, when migrating a database that you will run on an older version of SQL Server, or when migrating system and user databases together as part of the migration of database dependent on other user databases and/or system databases.  Use on SQL Server 2005 or greater to SQL Server 2005 or greater
  • Ship hard drive using Windows Import/Export Service.  Use when manual copy method is too slow, such as with very large databases.  Use on SQL Server 2005 or greater to SQL Server 2005 or greater
  • If you have an AlwaysOn deployment on-premises and want to minimize downtime, use the Add Azure Replica Wizard to create a replica in Azure and then failover, pointing users to the Azure database instance.  Use on SQL Server 2012 or greater to SQL Server 2012 or greater
  • If you do not have an AlwaysOn deployment on-premises and want to minimize downtime, use SQL Server transactional replication to configure the Azure SQL Server instance as a subscriber and then disable replication, pointing users to the Azure database instance.  Use on SQL Server 2005 or greater to SQL Server 2005 or greater
  • Others: Data-tier Application, T-SQL scripts, SQL Server Import and Export Wizard, SSIS, Copy Database Wizard

More info:

Migrate a SQL Server database to SQL Server in an Azure VM

SQL Server 2014 Hybrid Cloud Scenarios: Migrating On-Premises SQL Server to Windows Azure Virtual Machines

How To Move or Migrate SQL Server Workload to Azure SQL Database Cloud Services or Azure VM – All version of SQL Server – Step-By-Step

Free ebook: Microsoft Azure Essentials Migrating SQL Server Databases to Azure

18 May 08:30

The Case for Self-Service, Distributed BI

by A.R. Guess

by Angela Guess Hugo Moreno recently wrote in Forbes, “The fact that corporations around the world are embracing business intelligence (BI) should come as no surprise. As you’d imagine, the advanced analytics developed by world-class BI practitioners leads to deeper insight and significantly enhanced performance. But decidedly newsworthy is the degree to which the most […]

The post The Case for Self-Service, Distributed BI appeared first on DATAVERSITY.

18 May 07:02

ISS Completes 100,000th Orbit of Earth

by BeauHD
An anonymous reader quotes a report from Phys.Org: The International Space Station, the space laboratory that showcases cooperation between Russia and the United States, on Monday orbited Earth for the 100,000th time, Russian mission control said. Traveling at an altitude of about 250 miles (400 kilometers) and a speed of about 17,500 miles (28,000 kilometers) per hour, the space station circles the Earth once every 90 minutes. The ISS has now traveled 2.6 billion miles "or about the distance of 10 round trips to Mars," NASA said on the station's official Twitter feed. From two modules, it has grown to 15 modules, occupying a space the size of a football pitch and represents around $100 billion in investment. "Such a long lifespan of the ISS proves that mankind has the necessary technologies for constant presence in orbit, that we have the potential for further space exploration," said Matyushin.

Share on Google+

Read more of this story at Slashdot.

18 May 06:59

Getting Lost Along the Big Data Road

by A.R. Guess

by Angela Guess Randy Lea of Teradata recently wrote in Forbes, “The word easy is not often associated with big data, but there is at least one pretty easy answer when it comes to the question of why companies embark on big data deployments: money, whether it is making it or saving it. What may […]

The post Getting Lost Along the Big Data Road appeared first on DATAVERSITY.

18 May 06:54

Tintri Announces New Scale-Out Storage Platform

by emcweb@emc.com
EMC logo

I’ve had a few briefings with Tintri now, and talked about Tintri’s T5040 here. Today they announced a few enhancements to their product line, including:

  • Nine new Tintri VMstore T5000 all flash models with capacity expansion capabilities;
  • VM Scale-out software;
  • Tintri Analytics for predictive capacity and performance planning; and
  • Two new Tintri Cloud offerings.

 

Scale-out Storage Platform

You might be familiar with the T5040, T5060 and T5080 models, with the Tintri VMstore T5000 all-flash series being introduced in August 2015. All three models have been updated with new capacity options ranging from 17 TB to 308 TB. These systems use the latest in 3D NAND technology and high density drives to offer organizations both higher capacity and lower $/GB.

Tintri03_NewModels

The new models have the following characteristics:

  • Federated pool of storage. You can now treat multiple Tintri VMstores—both all-flash and hybrid-flash nodes—as a pool of storage. This makes management, planning and resource allocation a lot simpler. You can have up to 32 VMstores in a pool.
  • Scalability and performance. The storage platform is designed to scale to more than one million VMs. Tintri tell me that the  “[s]eparation of control flow from data flow ensures low latency and scalability to a very large number of storage nodes”.
  • This allows you to scale from small to very large with new and existing, all flash and hybrid, partially or fully populated systems.
  • The VM Scale-out software works across any standard high performance Ethernet network, eliminating the need for proprietary interconnects. The VM Scale-out software automatically provides best placement recommendation for VMs.
  • Scale compute and storage independently. Loose coupling of storage and compute provides customers with maximum flexibility to scale these elements independently. I think this is Tintri’s way of saying they’re not (yet) heading down the hyperconverged path.

 

VM Scale-out Software

Tintri’s new VM Scale-out Software (*included with Tintri Global Center Advanced license) provides the following capabilities:

  • Predictive analytics derived from one million statistics collected every 10 minutes from 30 days of history, accounting for peak loads instead of average loads, providing (according to Tintri) for the most accurate predictions. Deep workload analysis identifies VMs that are growing rapidly and applies sophisticated algorithms to model the growth ahead and avoid resource constraints.
  • Least-cost optimization based on multi-dimensional modelling. Control algorithm constantly optimizes across the thousands of VMs in each pool of VMstores, taking into account space savings, resources required by each VM, and the cost in time and data to move VMs, and makes the least-cost recommendation for VM migration that optimizes the pool.
  • Retain VM policy settings and stats. When a VM is moved, not only are the snapshots moved with the VM, the stastistics,  protection and QoS policies migrate as well using efficient compressed and deduplicated replication protocol.
  • Supports all major hypervisors.

Tintri04_ScaleOut

You can check out a YouTube video on Tintri VM Scale-out (covering optimal VM distribution) here.

 

Tintri Analytics
Tintri has always offered real-time, VM-level analytics as part of its Tintri Operating System and Tintri Global Center management system. This has now been expanded to include a SaaS offering of predictive analytics that provides organizations with the ability to model both capacity and performance requirements. Powered by big data engines such as Apache Spark and Elastic Search, Tintri Analytics is capable of analyzing stats from 500,000 VMs over several years in one second.  By mining the rich VM-level metadata, Tintri Analytics provides customers with information about their environment to help them make better decisions about applications’ behaviours and storage needs.

Tintri Analytics is a SaaS tool that allows you to model storage needs up to 6 months into the future based on up to 3 years of historical data.

Tintri01_Analytics

Here is a shot of the dashboard. You can see a few things here, including:

  • Your live resource usage for your entire footprint up to 32 VMstores;
  • Average consumption per VM (bottom left); and
  • The types of applications that are your largest consumers of Capacity, Performance and Working Set (bottom center).

Tintri02_Analytics

Here you can see exactly how your usage of capacity, performance and working set have been trending over time. You can see also when you can expect to run out of these resources (and which is on the critical path). It also provides the ability to change the timeframe to alter the projections, or drill into specific application types to understand their impact on your footprint.

There are a number of videos covering Tintri Analytics that I think are worth checking out:

 

Tintri Cloud Suites

Tintri have also come up with a new packaging model called “Tintri Cloud”. Aimed at folks still keen on private cloud deployments, Tintri Cloud combines the Tintri Scale-out platform and the all-flash VMstores.

Customers can start with a single Tintri VMstore T5040 with 17 TB of effective capacity and scale out to the Tintri Foundation Cloud with 1.2 PB in as few as 8 rack units. Or they can grow all the way to the Tintri Ultimate Cloud, which delivers a 10 PB cloud-ready storage infrastructure for up to 160,000 VMs, delivering over 6.4 million IOPS in 64 RU for less than $1/GB effective. Both the Foundation Cloud and Ultimate Cloud include Tintri’s complete set of software offerings for storage management, VM-level analytics, VM Scale-out, replication, QoS, and lifecycle management.

 

Further Reading and Thoughts

There’s another video covering setting policies on groups of VMs in Tintri Global Center here. You might also like to check out the Tintri Product Launch webinar.

Tintri have made quite a big deal about their “VM-aware” storage in the past, and haven’t been afraid to call out the bigger players on their approach to VM-centric storage. While I think they’ve missed the mark with some of their comments, I’ve enjoyed the approach they’ve taken with their own products. I’ve also certainly been impressed with the demonstrations I’ve been given on the capability built into the arrays and available via Global Center. Deploying workload to the public cloud isn’t for everyone, and Tintri are doing a bang-up job of going for those who still want to run their VM storage decoupled from their compute and in their own data centre. I love the analytics capability, and the UI looks to be fairly straightforward and informative. Trending still seems to be a thing that companies are struggling with, so if a dashboard can help them with further insight then it can’t be a bad thing.

18 May 06:51

Data Tales #8: Database on a Diet (Part 3)

by Greg Low

Hi Folks,

My series of articles for SQL Server Magazine continues. Last time, I continued a short series about a large database that needed to go on a diet. Last time, I look at the internals of row and page compression, to see what happens when they are used. We saw the significant differences in how ROW and PAGE compression are implemented. So how do you decide what to use?

This time, we look at when ROW and PAGE compression make sense, and provide detailed guidance on how to decide which should be used for which tables and indexes, or even for which partitions of which tables and indexes. A blended approach is usually the appropriate outcome.

http://sqlmag.com/sql-server/data-tales-8-case-database-diet-part-3

Enjoy!

18 May 02:34

Theoretical Breakthrough Made In Random Number Generation

by BeauHD
msm1267 quotes a report from Threatpost: Two University of Texas academics have made what some experts believe is a breakthrough in random number generation that could have longstanding implications for cryptography and computer security. David Zuckerman, a computer science professor, and Eshan Chattopadhyay, a graduate student, published a paper in March that will be presented in June at the Symposium on Theory of Computing. The paper describes how the academics devised a method for the generation of high quality random numbers. The work is theoretical, but Zuckerman said down the road it could lead to a number of practical advances in cryptography, scientific polling, and the study of other complex environments such as the climate. "We show that if you have two low-quality random sources -- lower quality sources are much easier to come by -- two sources that are independent and have no correlations between them, you can combine them in a way to produce a high-quality random number," Zuckerman said. "People have been trying to do this for quite some time. Previous methods required the low-quality sources to be not that low, but more moderately high quality. We improved it dramatically." The technical details are described in the academics' paper "Explicit Two-Source Extractors and Resilient Functions."

Share on Google+

Read more of this story at Slashdot.

18 May 02:32

Iraq Shuts Down Internet In Entire Country To Prevent Exam Cheating

by BeauHD
An anonymous reader writes: The Iraqi government has ordered ISPs to shut down Internet access in the entire country to prevent exam cheating for Iraq's official exams for secondary and high schools. This is the second year in a row when Iraq does this, after the same thing happened in 2015. Companies like Akamai and Dyn also noted the government's poor decision on Twitter. It appears that Iraqi officials never heard of signal jammers and video cameras to combat exam cheating. The country's Internet went dark May 14-16th, between 05:00 AM and 08:00 AM GMT. An Iraqi ISP leaked on Facebook the content of an email it received from state officials.

Share on Google+

Read more of this story at Slashdot.

16 May 13:49

Anders Hejlsberg on Modern Compiler Construction

by Lachezar Arabadzhiev

Originally published on Channel 9


The way this story starts is pretty interesting: one day in the lunch room in building 25 I happened to have a chat with the great Anders Hejlsberg about compilers (yeah, it was pretty cool). One thing he mentioned (in passing I might add) was that there is a huge gap between the way compilers are taught in school and the way compilers are implemented nowadays. I mentioned (again in passing) that we should do a whiteboard on the topic for Channel 9. He agreed!

In this video Anders a great foundation of compiler construction by describing the traditional methodologies that have been used in the last 30 or so years. He then uses that foundation to describe modern tooling needs and how compilers have adapted to meet increasing demands. The discussion was not only enlightening but also went a long way to show how Microsoft is taking great care to meet the modern needs of a wide array of developers. I hope you enjoy the discussion as much as I did!

15 May 16:43

Oracle V. Google Being Decided By Clueless Judge and Jury

by EditorDavid
theodp writes: The problem with Oracle v. Google," explains Motherboard's Sarah Jeong, "is that everyone actually affected by the case knows what an API is, but the whole affair is being decided by people who don't, from the normals in the jury box to the normals at the Supreme Court." Which has Google's witnesses "really, really worried that the jury does not understand nerd shit." Jeong writes, "Eric Schmidt sought to describe APIs and languages using power plugs as an analogy. Jonathan Schwartz tried his hand at explaining with 'breakfast menus,' only to have Judge William Alsup respond witheringly, 'I don't know what the witness just said. The thing about the breakfast menu makes no sense.' "Schwartz's second attempt at the breakfast menu analogy went much better, as he explained that although two different restaurants could have hamburgers on the menu, the actual hamburgers themselves were different -- the terms on the menu were an API, and the hamburgers were implementations." And Schwarz's explanation that the acronym GNU stands for 'GNU is Not Unix' drew the following exchange: "The G part stands for GNU?" Alsup asked in disbelief. "Yes," said Schwartz on the stand. "That doesn't make any sense," said the 71-year-old Clinton appointee.

Share on Google+

Read more of this story at Slashdot.

15 May 16:42

Amazon and Microsoft Directors Charged in Prostitution Sting

by EditorDavid
An anonymous reader writes: A director from Microsoft and a former Amazon director have been charged with promoting prostitution after an investigation into Seattle-area sex trafficking, according to a local news report. Investigators say the director of worldwide health for Microsoft submitted over 70 reviews of prostitutes that he had allegedly hired since April 2012, according to the report, while the director of software development at Amazon, who worked on Fire TV, "allegedly hired prostitutes at least 29 times through The Review Board and TheLeague.Net, according to court documents." Both men have pleaded not guilty and are free on $75,000 bail, part of a group of 19 people now facing criminal charges. "These defendants, we allege, were absolutely devoted to the commercial sexual exploitation of vulnerable, powerless immigrant women," King County Prosecutors said in January, adding that the women, who were forced into prostitution to pay off debts to organized crime bosses in Asia, are not being charged. Last January a Seattle newspaper reported that one alleged brothel owner "previously had made his living off illegal marijuana grows, but moved into prostitution when the drug was legalized."

Share on Google+

Read more of this story at Slashdot.

15 May 16:42

Fascinating EMC World 2016 vLab stats

by emcweb@emc.com
EMC logo

I’m always curious about what people are interested in – and they vote with their feet and their dollars.  One measure is the hands-on-labs at events like EMC World, VMworld and others.

So – here are the Hands-on-Labs stats from EMC World 2016 (thanks to the EOS2 vLab team!) – and remember – these are all available to you post-EMC world (see this post here)

 

image

No surprise that Unity and VxRail figured highly, but really glad to see Recoverpoint for VMs up there (a great product, completely under-rated, not enough people know about it).

The fascinating one is Docker, Mesos and ScaleIO – check that out!!

 

image

… and continued…

image

We also do guided labs – again, notice the pattern of what people are interested in…

image

Thanks everyone for participating!!!

14 May 21:08

Police Reveal Tactics For Fighting Botnets

by EditorDavid
Botnet herders have sophisticated "disaster recovery" plans, according to speakers at a recent cybersecurity conference, with many splitting their botnets into smaller herds, making them more resilient. In addition, kierny writes: Researchers say these backup botnets are tough to detect, until gangs have already spooled them up and put them to use in major campaigns... "What we're seeing is the bad guys are starting to learn from this," said Steven Wilson, head of the European Cybercrime Center at Europol -- the EU's law enforcement agency... Wilson said authorities are now gathering tremendous amounts of data by "sink-holing" -- forcibly redirecting the infected endpoints onto servers controlled by law enforcement. And he also reports that authorities have also successfully mined the blockchains of bitcoin transactions for information. Eamonn Keane, A detective from a cybercrime unit with the Scotland Police, added that authorities are also infiltrating dark net forums to bust bitcoin-using criminals. "Are law enforcement in there? Absolutely... We have a mandate to protect you in the real world; increasingly it's moving into the online environment."

Share on Google+

Read more of this story at Slashdot.

14 May 20:52

EMC World at your fingertips in vLab

by emcweb@emc.com
EMC logo

EMC vLab is an at scale online lab environment – and powers a pick part how we train, enable our field, our services teams, but also our partners and customers.   It’s insane what’s behind this – but it’s a great tool.   FYI – the vLab Flex (“build your own labs”) capability is ramping up – and takes this to a whole new level.

HEASDS UP – vLAB is going to be going thru a big update the week of May 25th for a big upgrade, so just a heads up that week, availability will not be predictable.

vLab also powers the hands-on labs at EMC World.   As part of that – it means that after EMC World – all that stuff moves into vLab’s catalog!

The team that runs this (Engineering Operations, Services & Solutions aka EOS2), is pleased to announce the availability of new vLabs from EMC World 2016.

Seen for the first time at the vLab Experience, many of these labs were available in Guided vLab as well as Self-Service Hands-on-Lab format at EMC World and enabled customers and partners to experience the power and value of EMC’s latest exciting product and solution releases first-hand.  We’re sure your customers will want to get hands-on as well, so check out these labs today.  Find more information on each lab on our ECN Community by clicking the links below.

Core Technologies Division (CTD)

  • Blazing Backup to the Cloud with NetWorker and CloudBoost - In this lab, we step through how EMC NetWorker incorporates CloudBoost support for long term retention to cloud including how DP Search brings intelligent search to data recovery!
  • Modern Copy Data Management with VMAX3 and Data Domain - This lab will introduce the user to EMC's revolutionary new modern copy data management solution, Enterprise Copy Data Management, or eCDM. This Hands-On Lab provides an overview on copy data management to meet compliance objectives for tenants' protection plans leveraging their assets on both primary and protection storage.
  • Software-defined data protection with DD VE and Avamar - This lab highlights the ease of deployment, flexibility, and simple management of the Data Domain Virtual Edition.  In this Lab, we highlight DDVE's usage by leveraging its tight integration with Avamar for fast VMware backup and restore.
  • VNX2 Storage Administration and VMware vSphere Integration - In this lab, you will explore a VNX2 system and experience Unisphere’s simplicity and intuitiveness. You will provision both block and file storage resources. You’ll also use VMware API’s and the VSI plugin to explore VNX2’s deep integration with vSphere.
  • Unity - VMware vSphere Integration and Awareness - This lab will explore the new EMC Unity platform and its deep VMware integration including VAAI, VASA, VVol's, and it's built-in VM-aware capabilities. Who knew managing virtual server storage could be this simple?
  • Unity - Simplified Storage Management and Administration * Most Popular vLab at show! * - See how simple storage can be!  Our new EMC Unity system with a radically simple interface and Proactive Assist capabilities will set the new standard for simplicity in the midrange.  Come take a look at the future of storage.
  • Unity -  Configuring Snapshots and Replication - What good is storage if it's not protected?  Test drive the powerful built-in snapshots and replication technology within the new EMC Unity storage system with built-in Unified Snapshots and Replication.

Emerging Technologies Division (ETD)

  • Deployment and Management of ScaleIO 2.0 - Features and functionality are explored with version 2.0 of ScaleIO. See how easy it is to deploy and use ScaleIO via GUI, CLI and more. Learn the architecture and terminology that will allow you to become a ScaleIO expert.
  • Isilon InsightIQ 4.0 Demo and Deep-Dive of Common Use Cases - Explore available Data Insights of the Isilon environment (performance, reports, and file system) using InsightIQ 4.0.
  • Isilon OneFS CloudPools - Configuration and Tiering to ECS - This lab provides hands-on experience in setting up Cloudpools with ECS as a cloud archive target. It covers methods of archiving data and accessing the archived data. It also dives into the failover capabilities of CloudPools using two Isilon Clusters.
  • ViPR Controller 2.4 - Automating Delivery of Storage Services - You will learn how to ingest existing brownfield environments into ViPR Controller in order to manage them moving forward. You’ll provision block storage with SRDF and RecoverPoint protection and migrate block storage. You will use API and REST interfaces.
  • Docker, Mesos, and ScaleIO for your Persistent Applications - Building a container strategy and choosing the right platform for your applications is a challenge in a diverse open source world. Learn how ScaleIO and Mesos/Marathon can be complimentary to expand the benefits that containers bring to your infrastructure.
  • Experience Smart Multipurpose Shared Global Storage with ECS - ECS 2.2 vLab offers the opportunity to perform new tenant configuration, object data ingest using S3 protocol, Metadata search using SPARK SQL and S3 client applications, as well as NFS access to objects  from a windows environment.

Converged Platform Division (CPD)

  • VxRack Manager UI orientation: Explore the Features, Functions, and User Interface of a Simulated VxRack to gain a functional understanding of the VxRack Manager UI.
  • Experience VxRail: The VxRail Appliance is a hyper-converged appliance exclusively from EMC/VCE and VMware. This lab demonstrates how simple and fast is to deploy a fully virtualized SDDC with VxRail, and the benefits that can be extracted from VxRail Manager 
  • Enterprise Hybrid Cloud v3.5 for Business and IT Agility - Built from an integrated solution stack consisting of: VMware vRealize Suite; VMware vSphere 6; VMware NSX; EMC storage; EMC Avamar 7.1; EMC ViPR 2.4; over 40K hours’ worth of EMC-engineered integrated automation; and Puppet Enterprise.
  • Virtustream xStream with App Director Service Module for SAP - In this lab you will learn how a cloud service provider can deliver IT as a Service to a customer in a hybrid cloud deployment model.
  • Native Hybrid Cloud (NHC) v1.0 Engineered Solution - The Lab walks through a Native Hybrid Cloud engineered solution which provides developers, operators  and business managers with a Cloud Native platform built on an elastic IaaS for deployment and management of cloud native applications, including performance and capacity management, as well as financial insight.

Enterprise Content Division (ECD)

So…Accessing the Demo Systems

For those of you with existing vLab accounts, these demos will be available for reservation via your Library. If you do not have a vLab account please register at https://portal.demoemc.com. If you are not an EMC Presales System Engineer and don’t have access to one and would like to take this lab for personal learning, please contact vLab Support (vLabSupport@emc.com) for assistance.

Visit our ECN community, vLab Interact, to view all available labs.

HAVE FUN!

13 May 02:03

Government Spy Truck Is Disguised As A Google Street View Car

by BeauHD
An anonymous reader writes: Matt Blaze, a University of Pennsylvania computer and information science professor, discovered a SUV "tucked away in the shadows of the Philadelphia Convention Center's tunnel" that was labeled as a Google Maps Street View car. It had two high-powered license plate reader cameras mounted on top, meaning it had to belong to a government agency. The Philadelphia Police Department had admitted it owns the truck after the report from Motherboard was published. "Unless the Philadelphia Fire Department of Streets Department are using automated license plate recognition (ALPR), this strongly suggests the city's police department is trawling city streets under the auspices of Google while snapping thousands of license plate images per minute," says Motherboard. ALPR can photograph thousands of license plate images per minute and track and store a person's travel habits without a warrant. Google spokesperson Susan Cadrecha commented on the report, "We can confirm this is not a Google Maps car, and that we are currently looking into the matter." The Philadelphia Police Department since responded to the report: "We have been informed that this unmarked vehicle belongs to the police department; however, the placement of any particular decal on the vehicle was not approved through any chain of command. With that being said, once this was brought to our attention, it was ordered that the decals be removed immediately."

Share on Google+

Read more of this story at Slashdot.

12 May 20:12

Guy Who Didn't Invent Email Sues Gawker For Pointing Out He Didn't Invent Email

by manishs
Mike Masnick, reporting for TechDirt: Oh boy. Remember Shiva Ayyadurai? The guy who has gone to great lengths to claim that he "invented email," when the reality is that he appears to have (likely independently) written an early implementation of email long after others had actually "invented email." In the past we've called out examples where gullible press have fallen for his easily debunked claims, but he keeps popping back up. The mainstream press repeated his bogus claims about inventing email after he married a TV star. And, most recently, he decided to scream at the press for memorializing Ray Tomlinson -- someone who actually did have a hand in creating email -- upon his death. [...] We, of course, have not been alone in debunking his claims. Back in 2012, a few weeks after we first debunked them, Gawker's Sam Biddle did a long and thorough takedown of Ayyadurai's claims. Apparently that story really angers Ayyadurai, and I'm guessing that seeing Hulk Hogan win his crazy lawsuit against Gawker helped Ayyadurai to decide to sue Gawker as well.

Share on Google+

Read more of this story at Slashdot.

12 May 17:46

The Recording for Biml Academy - Lesson 2 - Use Biml with SSIS Design Patterns is Available!

by andyleonard
The recording for Biml Academy - Lesson 2 - Use Biml with SSIS Design Patterns is now available! Registration is required. Remember Biml Academy is running all week! Two more free ~1-hour sessions are headed your way: Tomorrow - Biml Academy – Lesson...(read more)